<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pranav Chandra</title>
    <description>The latest articles on DEV Community by Pranav Chandra (@pcpranav).</description>
    <link>https://dev.to/pcpranav</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F583635%2Fefc638d3-ca51-4f0d-a3c8-e43208fc1cae.png</url>
      <title>DEV Community: Pranav Chandra</title>
      <link>https://dev.to/pcpranav</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pcpranav"/>
    <language>en</language>
    <item>
      <title>I built a 5-phase design system that turns "I have an app idea" into a TDD prompt</title>
      <dc:creator>Pranav Chandra</dc:creator>
      <pubDate>Fri, 01 May 2026 21:14:27 +0000</pubDate>
      <link>https://dev.to/pcpranav/i-built-a-5-phase-design-system-that-turns-i-have-an-app-idea-into-a-tdd-prompt-3do</link>
      <guid>https://dev.to/pcpranav/i-built-a-5-phase-design-system-that-turns-i-have-an-app-idea-into-a-tdd-prompt-3do</guid>
      <description>&lt;p&gt;App Architect walks you from a one-line idea to a production-ready prompt — user flow, page map, system design, spec, and tests. Here's why I built it and how it works.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with "build me an app" prompts
&lt;/h2&gt;

&lt;p&gt;Every developer has done this at least once: you have a vague idea, you open Claude or ChatGPT, you type &lt;em&gt;"build me a habit tracker with social features"&lt;/em&gt;, and forty seconds later you're staring at 600 lines of code that compiles but doesn't actually solve the problem you had in your head.&lt;/p&gt;

&lt;p&gt;The model isn't wrong. Your prompt is.&lt;/p&gt;

&lt;p&gt;There's a missing layer between &lt;strong&gt;"I have an idea"&lt;/strong&gt; and &lt;strong&gt;"here is the code"&lt;/strong&gt; — the layer where a real engineering team would normally spend a week: user flows, page maps, schemas, edge cases, the boring stuff that decides whether the thing actually ships.&lt;/p&gt;

&lt;p&gt;I kept skipping that layer. So I built a tool that refuses to let me skip it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What App Architect does
&lt;/h2&gt;

&lt;p&gt;App Architect is a Claude artifact that takes you through five structured phases. You describe your idea in one sentence; it asks the right follow-up questions; at the end you get a single prompt you can paste into Claude Code (or any capable LLM) to actually build the thing.&lt;/p&gt;

&lt;p&gt;The five phases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;App Flow&lt;/strong&gt; — user journey, tech stack, integrations, edge cases&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Page Map&lt;/strong&gt; — routes, wireframes, layout zones, key interactions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;System Design&lt;/strong&gt; — DB schema, API routes, architecture diagram&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Executive Summary&lt;/strong&gt; — full spec: features, stack, risks, open questions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TDD Prompt&lt;/strong&gt; — a production-ready prompt with unit tests, E2E tests, and CI config baked in&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The output of phase 5 is the artifact. Everything before it exists to make that final prompt non-garbage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why TDD as the final output
&lt;/h2&gt;

&lt;p&gt;Because the failure mode of AI-generated code isn't "it doesn't compile." It's "it compiles, looks reasonable, and silently does the wrong thing in three places."&lt;/p&gt;

&lt;p&gt;If the final prompt asks the LLM to write tests &lt;strong&gt;first&lt;/strong&gt;, then implementation, you get:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clear, executable definition of "done"&lt;/li&gt;
&lt;li&gt;A regression net the moment something else changes&lt;/li&gt;
&lt;li&gt;A way to spot hallucinated APIs early (the test fails before you ship)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need to be a TDD purist to want that.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use it
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open the &lt;a href="https://promptcraft-io.vercel.app" rel="noopener noreferrer"&gt;App Architect&lt;/a&gt; landing page&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Launch&lt;/strong&gt; — it opens as a Claude artifact in your own Claude account (free tier works fine)&lt;/li&gt;
&lt;li&gt;Describe your idea in one or two sentences&lt;/li&gt;
&lt;li&gt;Answer the phase prompts honestly — "I don't know yet" is a valid answer and the tool handles it&lt;/li&gt;
&lt;li&gt;Copy the final TDD prompt and paste it into Claude Code, Cursor, or any agentic dev tool&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's no sign-up on my side. No data collection. Usage runs on your Claude account, billed to you. I don't see any of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd do differently
&lt;/h2&gt;

&lt;p&gt;A few things I'd change if I rebuilt it tomorrow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Persist drafts.&lt;/strong&gt; Right now if you close the tab mid-flow you start over. Local storage would fix it cheaply.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branching flows.&lt;/strong&gt; Some apps don't have a "page map" (CLIs, MCP servers, libraries). The current flow nudges everything toward web apps. A branch at phase 1 would help.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stack templates.&lt;/strong&gt; A "Next.js + Postgres + Drizzle" preset would skip three rounds of follow-up questions for the 60% of users who already know their stack.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'll get there. For now, the v1 covers the painful part: stopping you from prompting before you've thought.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;→ &lt;strong&gt;&lt;a href="https://promptcraft-io.vercel.app" rel="noopener noreferrer"&gt;promptcraft-io.vercel.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you build something with it, I'd genuinely love to see what comes out the other side. Drop a comment.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
