Talk
Give Your Form Fields Superpowers with Signal Forms Metadata
We can easily mark a form field as *required*. But what if we could also mark it as “fillable by AI” or “copyable”?
An AI-fillable field needs a prompt and a button that generates its value. A copyable field needs a button that places its current value on the clipboard. These are two different capabilities, but they pose the same architectural question: how can we make each capability reusable while configuring it naturally for individual fields?
In this live-coding session, I’ll show you how to do it using one of the least talked-about features of Signal Forms: *custom metadata*. We’ll create our own reusable *schema* functions such as fillWithAI(...) and copyable(...), then build a reusable field wrapper that discovers these capabilities and automatically renders the appropriate UI.
The result is a clean, extensible pattern for giving form fields new *superpowers* - directly from the schema.
About Kobi Hari
Kobi Hari is a software architect, Angular consultant, and instructor with over 30 years of experience in frontend development. Throughout his career, he has combined hands-on software development with teaching, mentoring, and helping development teams understand not only how technologies work, but how to think about them.
For the past 12 years, Kobi has also taught at John Bryce College. He has delivered seminars and workshops and spoken at meetups and conferences, sharing his knowledge with developers at every stage of their careers. He has also created train-the-trainer courses focused on instructional delivery techniques and the craft of making complex ideas clear, engaging, and memorable.
Today, Kobi creates in-depth Angular courses taken by thousands of developers worldwide and helps professional teams master modern Angular, signals, reusable component architecture, and reactive programming. At the heart of his work is a childlike passion for technology and an equally strong passion for teaching - and the joy of bringing the two together.