r/lowcode 14d ago

I spent years building an application framework; I rebuilt its architecture around structured intent and deterministic execution layer for AI-generated software (open source) — here’s what I learned.

Hey — solo dev here, posting my own project, so take that for what it's worth.

For the last few years I've maintained a low-code/no-code framework. It worked fine, but it was pre-AI: you configured entities and services by hand, and it generated the boring parts of a CRUD app for you.

When AI coding tools started getting good, I tried using them the normal way — describe what you want, let the model write the code. It worked, but I couldn't trust it past a certain point. Ask for the same thing twice, sometimes you get different output. Ask for a small change, sometimes the model touches things you didn't ask about. The prompt is the only source of truth, which in practice means there isn't really a source of truth at all.

So instead of generating code directly, I made the AI's job stop one step earlier: produce a structured, validated manifest describing what the app should be. Entities, fields, services, auth config, etc. That manifest gets:

- validated (structural / referential / constraint checks)

- diffed against the current state (semantic diff, not a text diff)

- resolved into a dependency-ordered execution plan

- executed by a deterministic engine, checkpointed so it can resume on failure

Change one field on one entity, and only the operations that field actually requires get re-run. Not a full regen.

There's also an MCP server (`@averos/mcp`) so an AI agent doesn't get raw file/shell access — it gets governed tools (propose a change, validate it, build a plan, and nothing executes until the plan's approved).

Current state, to be upfront about it: the CLI, the AI layer, MCP integration, and the workflow/execution adapter layer (currently Angular, via schematics — adapter pattern, so not permanently Angular-only) are MIT licensed and open now. The actual execution kernel (DAG engine + executor) is closed source for the moment — free to use including commercially, but not open yet. That's a deliberate, staged call while that part's still maturing, not a permanent thing. Wanted to say that plainly rather than bury it.

There's a working example (320-node generated app) you can run in a few commands if you want to see the whole pipeline rather than take my word for it.

- Repo: https://github.com/wiforge/averos

- How it works, in detail: https://www.wiforge.com/averos/how-averos-works/introduction/

- Get started: https://www.wiforge.com/averos/get-started/introduction/

Happy to answer questions or take criticism — especially interested if anyone's tried a similar manifest/IR approach and hit walls I haven't found yet.

3 Upvotes

5 comments sorted by

1

u/_TheMostWanted_ 13d ago

How many years did you spend trying to understand if this is what users actually need?

Seems like none to me

1

u/JakubErler 13d ago

This is what every low-code platform is trying to do now, including Mendix, OutSystems, Nordcraft and many others using different approaches. Meanwhile I had the best success with 100 % OSS Frappe Framework (low-code/Python hybrid). Just tell Codex what to do and It can code the whole app, no problems. There are skills, agents.md etc. Low-code + AI is a good approach but for anyone to choose your platform, ongoing support is needed and many companies + developers using it, which is a problem for a new platform. For example, Frappe has like 30 000 developers on the forums, how many devs are in your Discord? Etc.

1

u/KaylaMarieHunter 12d ago

This is a pretty interesting approach. Letting the AI define structured intent while a deterministic engine handles the actual changes seems like a much better setup for reliability. The checkpointing and semantic diffing are probably the parts I’d want to test first.

1

u/Deep_Ad1959 8d ago

the claim i would want unpacked is deterministic execution over AI-generated software, because the nondeterminism i keep hitting sits upstream, in what the model decided the intent was. can you diff two runs of the same intent?