Show HN: Generate Web Interfaces from Data
github.com
github.com
1. That combined with hot reloading just makes me think some jr dev is going to forget to put that there while they're building something locally and burn through their LLM budget without even knowing it.
2. What happens if the cache key changes. Is there any way to migrate from one key to another? Let's say I'm using user ids as the cache key and you need to do a migration that changes the format of the key, is the existing design just gone forever?
3. Does anyone even want a non-deterministic UI? Don't get me wrong, it's a cool for a demo, but I can't think of anything that would annoy me more than coming back to a website and every week it looks different.
Sorry to be a downer, but man, I just really struggle with this. If this is just kind of a cool hobby project then you can ignore #3, but for 1 and 2 I really feel like it'd be a better to do something like have a data attr for the prompt and then have component generation be something a user kicks off through a script or something.
https://developers.googleblog.com/introducing-a2ui-an-open-p...
In the real-world, to me it makes the most sense for client and patient onboarding.
Not usable enough? Just refresh! No, we don’t know how many times you’ll need to do that.
Rails scaffolding takes a data model and automatically generates a UI. The obvious problem with this is that the web development community lives in the stone age and has failed to sufficiently separate layout from content and styling [0].
In scaffolding, the component types are chosen automatically based on the data model, but there is no obvious way to specify their arrangement. This leads to bland UIs that always follow the same layout structure unless you go out of your way to rip out pretty big parts of the scaffolding where layout and content is mixed, which defeats the value proposition.
[0] Introducing layout features to CSS was a mistake. The CSS grid syntax is horrible.
I'm interested in exploring the ideas here for on-the-fly output based on user intent. It reminds me a bit of the schema model I used for the LangView experimental library (https://x.com/rupertmanfredi/status/1653780093712633859).
This is similar to, but not the same as, the approach taken by json-render: https://github.com/vercel-labs/json-render
The latter assumes AI generates the data AND picks the components it will use from your predefined library.
A potential client providing information for a law-firm regarding their grievance.
A patient filling out the medical questionnaire prior to their first visit to a medical practice.
Rather than having a fully deterministic form, you'd be providing them with forms that adapt to their specific issue. The data can then be intelligently stored both as JSON and a more generic record in an RDBMS.
That's just my initial thoughts.
Google has a similar project called A2UI: https://developers.googleblog.com/introducing-a2ui-an-open-p...
With FormKit you'd still be using a predefined deterministic flow where all the conditionals are accounted for in advance. FormKit wouldn't be able to generate a truly non-deterministic UI that changes based upon how the user answers. If you're wanting to sue your neighbor for their tree falling onto your house, an AI powered UI for a law firm could be giving you form fields on what type of tree it was, how old the tree was, hot tall the tree was, how close it was to the property line, and what room in your house the tree landed in... All generated from how the user responded to an initial "what's your grievance?" question.
I'm not advocating for or against this type of approach - I'm just pointing out a few potential use-cases for it since that's what you asked for.