DEV Community

Cover image for Stop Asking AI to Write Code. Start Asking It to Design Applications.
Ayush Dubey
Ayush Dubey

Posted on

Stop Asking AI to Write Code. Start Asking It to Design Applications.

Disclosure: I work on Trillo AI. This post explains the problem we're trying to solve and how our approach differs from typical AI coding tools; take the framing with that in mind.

AI coding assistants like Claude Code, GitHub Copilot, Cursor, and Gemini have gotten very good at one thing: turning a prompt into working code. Given a clear spec, they'll generate a function, fix a bug, or scaffold a small app in seconds.

But if you've built enterprise software, you know that writing code is the easy part. The hard part happens before the first line is written:

  • What are the business entities and how do they relate?
  • What's the application architecture?
  • What APIs does this need?
  • What's the auth and authorization model?
  • Where do AI agents run, and what do they need access to?
  • How does this get deployed, monitored, and scaled?

Answering these questions is what actually eats weeks or months on enterprise projects — not typing out functions. And most AI coding tools don't touch this part at all. They wait for you to hand them a fully-formed spec, then generate code against it.

We think that's backwards. This post is about why, and about Trillo AI, which we built around the opposite order of operations: design first, code second.

The bottleneck isn't code generation

Every enterprise has a backlog of ideas waiting to become software — a vendor portal, an internal workflow tool, a logistics dashboard, an AI assistant for support tickets. The path from idea to production usually looks like:

Discovery → Architecture review → Data modeling → API contracts
→ Security review → Compliance check → (finally) development
Enter fullscreen mode Exit fullscreen mode

Even with a great coding assistant, someone still has to do all the steps before "development" — and that's usually where the calendar time actually goes. Speeding up the coding step doesn't move the bottleneck; it just makes you wait faster for the same planning phase.

What "blueprint-first" means, concretely

Instead of generating files, Trillo AI generates a structured application blueprint from a natural-language description — the same kind of intermediate artifact an architect would sketch on a whiteboard before anyone opens an IDE.

For example, given a prompt like:

"Build a vendor management platform where suppliers register, upload compliance documents, get approved, and message procurement teams. Add an AI agent that validates uploaded documents and flags missing information."

Trillo generates a blueprint that includes entities and relationships, business functions, API surface, and agent definitions — something along these lines (simplified):

entities:
  Vendor:
    fields: [name, taxId, status, contactEmail]
    relations: { hasMany: ComplianceDocument }
  ComplianceDocument:
    fields: [fileUrl, docType, status, uploadedAt]
    relations: { belongsTo: Vendor }

functions:
  - submitVendorApplication(vendorInput) -> Vendor
  - uploadComplianceDocument(vendorId, file) -> ComplianceDocument
  - approveVendor(vendorId, reviewerId) -> Vendor

agents:
  DocumentValidatorAgent:
    trigger: on ComplianceDocument.created
    action: validate document, extract required fields
    on_missing_fields: notify(Vendor.contactEmail)

apis:
  - POST /vendors
  - POST /vendors/:id/documents
  - GET /vendors/:id/status
Enter fullscreen mode Exit fullscreen mode

That blueprint — not raw source code — becomes the shared source of truth for the team. It's editable and reviewable before anyone commits to an implementation, which is a much cheaper place to catch a wrong assumption than three sprints into development.

Coding assistants still do the coding

The blueprint doesn't replace Claude Code, Copilot, or Cursor — it feeds them. Once entities, relationships, and business logic are defined, your coding assistant has a real spec to implement against instead of having to infer the data model from a vague prompt. In practice this means fewer mismatched assumptions between what you meant and what the assistant generated.

Production is where most AI-generated apps stall

A prototype that works on localhost and an application that's actually safe to run in production are very different things. The gap between them is usually:

Concern Typically requires
Auth & RBAC Custom implementation or a third-party identity provider
Audit logging Bolted on after the fact, often inconsistently
API hosting & scaling Infra setup, load balancing, deployment pipeline
Agent execution Sandboxing, rate limits, monitoring
Compliance Manual review, usually late in the process

This is the part that quietly consumes more engineering time than the original feature ever did. Trillo pairs the blueprint engine with Trillo AOS (Application Operating System) — a runtime that every generated application deploys onto, so auth, RBAC, audit logging, email/SMS, webhooks, event processing, scheduling, serverless APIs, agent execution, and databases (relational, vector, graph) are already there rather than re-integrated per project. Each app runs in its own sandbox but shares the same underlying platform, security model, and observability — API performance, agent execution traces, event logs, and infra health in one place.

How this differs from low-code platforms and BaaS tools

If you're thinking "isn't this just Retool / Supabase / Amplify with extra steps" — the honest answer is there's overlap, and it's worth being specific about where:

  • Low-code builders (Retool, etc.) are mainly UI-first: you assemble screens against existing data sources. Trillo starts from a data/business model and agent definitions, not a screen builder.
  • BaaS platforms (Supabase, Firebase) give you backend primitives (DB, auth, functions) that you wire together yourself. Trillo's blueprint layer generates the data model, business logic, and agent definitions from a natural-language spec, then deploys onto a platform with those primitives built in — closer to "backend-as-a-service plus the design step" than either alone.
  • AI coding assistants generate code directly from a prompt with no intermediate architecture artifact. Trillo generates the architecture first and hands the coding assistant a spec to implement against.

None of these are strictly better or worse — they solve different parts of the stack. Trillo is aimed specifically at the planning-to-production gap for internal/enterprise tools, not at replacing a general-purpose coding assistant or a consumer app builder.

Where this is going

The workflow we think wins over the next few years looks like:

  1. Describe the business problem in plain language.
  2. Generate an application blueprint (entities, logic, APIs, agents, architecture).
  3. Use an AI coding assistant to implement against that blueprint.
  4. Deploy to a platform that already has auth, compliance, and observability built in.
  5. Monitor and evolve the app from real usage data.

Code generation alone speeds up step 3. The bigger unlock is compressing steps 1, 2, 4, and 5 too — because in enterprise software, the blueprint is usually what determines whether the code becomes a working application or a demo that never ships.


If you want to try the blueprint step on a real prompt, or want to see the AOS deployment side, contact us at https://trillo.ai/contact. Happy to answer questions or dig into specifics in the comments.

Top comments (0)