I recently gave a free live talk on how I use AI to design systems. It was well-received, so I’m going to give you guys my exact strategy + prompts to get the best results and avoid the slop in slop out trap.

If you’ve ever asked Cursor (or any AI) to “build a beautiful [my idea for an app]” and ended up with an unfamiliar tech stack, missing integrations you need, no idea where your system will break, and now idea how to deploy, you’ve already felt the problem.

Here is exactly what Cursor gave me with the following prompt “beautiful budget tracking website”.

After reading this, you’ll be able to get something 10x more complete with just a little more effort.

The first thing you should always do is ask yourself questions before you ask AI. Here are some I use as a good starting point:

  1. Who is this for?

  2. What is the one action users take over and over again?

  3. What breaks first?

  4. What needs to be boring and reliable?

  5. What tools am I comfortable with?

Once you’ve answered these, you should have a comprehensive list of requirements (both functional and non-functional). Next, we need to decide how you are going to meet these requirements.

For each of the 4 following, I suggest you buy (or use a free existing solution), not build.

  1. Authentication

  2. Authorization

  3. Payments (Stripe)

  4. User accounts

Some tools I like for these (but feel free to use whatever you know / fits into your tech stack):

  • Clerk – dev-friendly auth + UI components (great for Next.js apps).

  • Auth0 – full-featured hosted auth (social login, enterprise SSO, MFA, rules/actions).

  • AWS Cognito – AWS-native user pools + federation (powerful, sometimes fiddly DX).

  • Firebase Auth – simple auth for mobile/web, especially if you’re already on Firebase.

  • Supabase Auth – good if you’re using Supabase; easy email/password + OAuth.

The CLEAR Framework

Now time for some AI magic. I use the CLEAR prompting framework to get the best results. The following examples are using Cursor which is currently my AI-IDE of choice, but this prompting framework consistently produces better results with every environment I’ve tested it on (Claude Code, Cursor, Augment Code, JetBrains).

C — Concise

Goal: Give only the context that materially affects decisions.

What to include:

  • What you’re building (high level)

  • Who it’s for (ideal customer profile)

  • Key constraints (scale, infra, language)

  • What stage you’re at (design vs implementation)

What to avoid:

  • Vague product vision

  • Marketing language

  • Unnecessary backstory

Example:

You are my senior full-stack engineer + system designer. I’m a Next.js (TypeScript) developer building a budget tracking app for households. This is a small scale project with less than 1,000 concurrent users. Primary users are households up to 10 members. You first goal is to design the system.

budgeting app prompt - context

L — Logical (Make Relationships Explicit)

Goal: Help the model understand how concepts relate and how to think about each concept.

Do this by:

  • Naming the core loop

  • Calling out dependencies

  • Define how you want the model to reason about unknowns

Example:

Defining the core user flows and data model that support household budgeting.

Design a simple, secure architecture that fits Next.js + Supabase.

Prefer boring, reliable choices over complex patterns.

budgeting app prompt - logic

E — Explicit (Define the Output)

Goal: Remove ambiguity about what you want back. Give clear direction and examples where appropriate.

Be specific about:

  • Tech stack & technologies

  • Deployment

  • Formatting

  • Anything else you care about

Example:

Frontend + backend: Next.js (App Router)

Database/Auth: Supabase (I do not want to self-manage DB)

Language: TypeScript preferred (ok if some JS, but default TS)

Deployment on Vercel.

Make sure to include the following in the design:

1. Architecture diagram

2. Data model

3. API/design approach

4. MVP build plan

4. Deployment plan

6. Limits of the system

7. Assumptions

8. Anything else we might need

budgeting app prompt - explicit

A — Adaptive (Expect Iteration)

Goal: Adapt and improve your prompt over time.

Good practices:

  • Change things one at a time

  • Lock decisions incrementally

  • Change constraints as you learn more

Example follow-ups:

  • Remove Stripe and assume manual payments

  • Optimize for cost instead of latency

  • Assume 10× more traffic

Example:

Ask any clarifying questions you need before proceeding with the design.

budgeting app prompt - adaptive

R — Reflective (Review and Refine)

Goal: Force the model to reason about its own decisions.

Ways to do this:

  • Ask why tradeoffs were made

  • Request alternatives

  • Surface risks and assumptions

Example:

Explain why you chose this architecture.
What would you change at 10× scale?
What assumptions are most fragile?

budgeting app prompt - reflective

Putting it all together

Let’s start by looking at my initial prompt:

You are my senior full-stack engineer + system designer. I’m a Next.js (TypeScript) developer building a budget tracking app for households. This is a small scale project with less than 1,000 concurrent users. Primary users are households up to 10 members. You first goal is to design the system.

Defining the core user flows and data model that support household budgeting.

Design a simple, secure architecture that fits Next.js + Supabase.

Prefer boring, reliable choices over complex patterns.

Frontend + backend: Next.js (App Router) Database/Auth: Supabase (I do not want to self-manage DB) Language: TypeScript preferred (ok if some JS, but default TS) Deployment on Vercel.

Make sure to include the following in the design:

Architecture diagram

Data model

API/design approach

MVP build plan

Limits of the system

Assumptions

Anything else we might need

budget tracking app - example prompt

These are just the diagrams generated, we also got a complete plan for the app, and exactly how to setup infrastructure, etc.

Architecture Overview

Data Model

Authentication Flow

Deployment Plan

Do this yourself!

Next time you pull out your favorite AI-enabled editor, try the CLEAR framework and think a little bit before you let AI do everything. Spending an hour planning saves you 100x that amount of time in the long run.

See you next week.
Arjay

Keep reading

No posts found