Skip to module content
Module 16 ยท ~16 min

Coding Agents for Non-Devs, Level 2

Lovable/Cursor + Supabase: from "AI organized my files" to "AI built our tool."

Reading progress
0/5 ยท 0%

The big idea

๐Ÿ’กKey idea
The leap from a first-tier coding agent that organizes your files to a second-tier agent that builds a working internal application is mostly about scope discipline, not new skills. Lovable, Supabase, and Cursor let a non-developer describe an app into existence, but only a tightly scoped one-job tool with a simple data model actually ships and stays maintainable.
Quick check
1 question ยท instant feedback
0/1
  1. The Level-2 leap is:

Deep dive

8/8 open

First-tier coding-agent work โ€” an agent that organizes your files, renames things, or processes a folder of receipts โ€” treats the agent as a very capable operator on top of your existing tools. Level 2 is a different leap entirely: the agent builds a small working application from scratch, with its own data and its own screens.

This isn't about becoming a developer. It's about learning to describe a small piece of software precisely enough that a builder tool can produce it, and precisely enough that you can tell when it's wrong.

Three pieces cover almost every non-dev build. Lovable takes a plain-English description and produces a working app with screens and logic. Supabase is where the data actually lives โ€” think of it as the spreadsheet underneath the app, with real structure. Cursor is for when you want to see or hand-edit the underlying code directly, which becomes useful once you outgrow pure description-based building.

Most small internal tools never need Cursor at all. It's there for the moment you need more control than describing-and-correcting gives you.

The scoping rule that separates shipped tools from abandoned ones: one job, one table-ish data model, five screens or fewer. A candidate tracker's job is pipeline visibility, not email automation, not interview scheduling โ€” those stay in existing tools. The tighter the scope, the more likely the tool actually gets built and actually gets used.

Write the one-job statement in a single sentence before opening Lovable. If you can't state the job in one sentence, the scope isn't ready yet.

Building with Lovable is a loop, not a single generation: describe what you want, click through the result, correct what's wrong, repeat. This is sometimes called vibe-building, but the discipline matters โ€” each correction should be specific ("the stage dropdown should have these five values") rather than vague ("make it better").

Expect several rounds. The loop converges fastest when you test with real data early instead of placeholder text.

Design your table or tables in plain English before generating any screen. For a candidate tracker: candidates, with fields for name, role, stage, source, notes, and next_step_date. Naming the fields and their types up front prevents the single most common failure mode โ€” generating a pretty screen on top of a data model that doesn't actually support the job it's supposed to do.

Once the data model is right, screens follow naturally: a pipeline board, a detail view, and a filtered list are just different views onto the same table.

Before anyone else touches the tool, run a short checklist: who can see all records versus only their own, who can edit versus only view, and what happens if two people edit the same record at once. These questions are easy to skip when you're the only user and expensive to discover later once colleagues depend on the tool.

Test with a second user early โ€” even one colleague using the tool for a day will surface permission gaps that solo testing never will.

Internal tools built this way need light but real maintenance: know how to export your data, keep a backup habit, and recognize the signs you've outgrown the tool โ€” heavier reporting needs, more than a handful of concurrent editors, or logic too complex to describe your way through. None of these are failures; they're signals to graduate to a more purpose-built tool or bring in a developer.

The 80% trap is the one to watch for specifically: generated apps get impressively far, then stall on auth, permissions, or data migrations that a non-dev can't easily debug. Keeping the data model simple is the best insurance against hitting that wall hard.

Not every recurring need justifies a custom tool. If an existing product already does the job โ€” a CRM, a project tracker, a form builder โ€” buying beats building, even for a non-dev empowered by AI. Building makes sense when the job is specific enough that no off-the-shelf tool fits it cleanly and simple enough to stay inside the one-job, five-screen bound.

The honest test: if you can't describe why the existing tools don't fit in one sentence, buy instead of build.

Quick check
1 question ยท instant feedback
0/1
  1. Before generating any UI, define:

Pitfalls & takeaways

Failure modes

  • Scoping a tool with more than one job or more than five screens
  • Generating UI before designing the data model in English
  • Skipping auth and sharing checks before letting anyone else touch the tool
  • Hitting the 80% wall on auth, permissions, or migrations with no debugging plan
  • Building instead of buying when an existing tool already solves the job

Durable takeaways

  • Level 2 is the leap from organizing files to building a small working app with real data behind it
  • Scope discipline โ€” one job, one data model, five screens or fewer โ€” determines whether a generated tool actually ships
  • Design the data model in English before generating any UI, and test with a second user early
Quick check
1 question ยท instant feedback
0/1
  1. The 80% trap is:

Do the work

๐Ÿ‹๏ธProve you learned it

Ship one internal tool this month. Write the one-job statement and the table design in English before generating any screens, build it in Lovable with Supabase as the data layer, have one colleague use it for a week, and run one export of your data as a backup drill. Treat the exercise as complete only once someone other than you has used it.

0 chars
Quick check
1 question ยท instant feedback
0/1
  1. A healthy scope rule is:

Sources

  • ยท Lovable docs (docs.lovable.dev)
  • ยท Supabase docs (supabase.com/docs)
  • ยท Lenny's Newsletter AI issues (lennysnewsletter.com) on non-technical building