<?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>Forem: Tanishq</title>
    <description>The latest articles on Forem by Tanishq (@codedbytan).</description>
    <link>https://forem.com/codedbytan</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%2F3768283%2F31668ce5-3403-4d35-afd2-c1a54279ac91.png</url>
      <title>Forem: Tanishq</title>
      <link>https://forem.com/codedbytan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/codedbytan"/>
    <language>en</language>
    <item>
      <title>How I Shipped 3 Production SaaS Backends in 30 Days Using Claude Code (Without Context Loss Destroying Everything)</title>
      <dc:creator>Tanishq</dc:creator>
      <pubDate>Sat, 14 Feb 2026 19:08:30 +0000</pubDate>
      <link>https://forem.com/codedbytan/how-i-shipped-3-production-saas-backends-in-30-days-using-claude-code-without-context-loss-2fnm</link>
      <guid>https://forem.com/codedbytan/how-i-shipped-3-production-saas-backends-in-30-days-using-claude-code-without-context-loss-2fnm</guid>
      <description>&lt;p&gt;I've been using Claude Code for the last 4 months to build SaaS backends. Love it. Until I don't.&lt;/p&gt;

&lt;p&gt;You know the pattern. Day 1: Claude writes beautiful auth logic. You're impressed. Day 3: Ask it to add Stripe webhooks. Day 5: Auth is broken. No idea what changed. Day 7: Context window full. Start new session. Day 8: "Wait, what database schema are we using again?"&lt;/p&gt;

&lt;p&gt;Every. Single. Time.&lt;/p&gt;

&lt;p&gt;I'd spend more time re-explaining my project than actually building it. The "brilliant colleague with amnesia" metaphor is painfully accurate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Context Loss Problem Nobody's Solving
&lt;/h2&gt;

&lt;p&gt;Here's what I kept hitting:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mid-session drift.&lt;/strong&gt; Claude would start with async/await, then randomly switch to .then() chains 200 lines later. Why? Context degradation. The model "forgets" earlier patterns as the conversation grows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Schema amnesia.&lt;/strong&gt; I'd define a users table with specific columns in message 5. By message 40, Claude's suggesting queries for columns that don't exist.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Security regression.&lt;/strong&gt; RLS policies carefully set up in Phase 1? Completely ignored when adding features in Phase 3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Groundhog Day effect.&lt;/strong&gt; Close laptop Friday. Open Monday. Spend 30 minutes re-explaining the entire project before Claude can write a single line.&lt;/p&gt;

&lt;p&gt;I tried everything the internet suggested:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✗ Longer prompts with full context (hit token limits, quality degraded anyway)&lt;/li&gt;
&lt;li&gt;✗ Custom instructions (too vague, didn't persist across sessions)
&lt;/li&gt;
&lt;li&gt;✗ Separate chats for each feature (lost the big picture, broke dependencies)&lt;/li&gt;
&lt;li&gt;✗ Manual "memory dumps" (exhausting, error-prone)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing worked. The fundamental issue is that &lt;strong&gt;LLMs have working memory, not long-term memory&lt;/strong&gt;. They're brilliant in the moment, terrible at maintaining state.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Actually Fixed It: Multi-Agent Orchestration
&lt;/h2&gt;

&lt;p&gt;I realized the problem isn't the AI. It's the workflow.&lt;/p&gt;

&lt;p&gt;Human developers don't keep entire codebases in their heads either. They use documentation. Design docs. Database schemas. API specs. &lt;strong&gt;External references that persist.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built a system that orchestrates Claude through specialized agents, each with fresh context windows and specific jobs.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Four Files That Maintain State
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;1. PROJECT.md&lt;/strong&gt; - The vision document&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Problem being solved (plain English)&lt;/li&gt;
&lt;li&gt;Target users and workflows
&lt;/li&gt;
&lt;li&gt;Core value proposition&lt;/li&gt;
&lt;li&gt;Success criteria&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;2. REQUIREMENTS.md&lt;/strong&gt; - Traceable feature definitions&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every requirement has a unique ID (AUTH-01, PAY-02, etc.)&lt;/li&gt;
&lt;li&gt;v1 scope (must have), v2 scope (future), out-of-scope (won't do)&lt;/li&gt;
&lt;li&gt;Acceptance criteria for each&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;3. ROADMAP.md&lt;/strong&gt; - Phased execution plan&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Phase 0: Infrastructure
&lt;/li&gt;
&lt;li&gt;Phase 1: Core feature&lt;/li&gt;
&lt;li&gt;Phase 2: Supporting features&lt;/li&gt;
&lt;li&gt;Phase 3: Polish&lt;/li&gt;
&lt;li&gt;Each requirement mapped to specific phases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;4. STATE.md&lt;/strong&gt; - The living memory&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Completed phases (locked from modification)&lt;/li&gt;
&lt;li&gt;Current phase (only modifiable code)&lt;/li&gt;
&lt;li&gt;Database schema (exact DDL)&lt;/li&gt;
&lt;li&gt;API routes built (paths, methods, business logic)&lt;/li&gt;
&lt;li&gt;Architectural decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These files are &lt;strong&gt;sized to avoid context degradation&lt;/strong&gt; (under 10k tokens each) and serve as a single source of truth for both humans and AI.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Multi-Agent System
&lt;/h3&gt;

&lt;p&gt;Instead of one long Claude conversation, the system spawns &lt;strong&gt;specialized parallel agents&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research agents&lt;/strong&gt; (4 running in parallel before coding):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stack researcher → best technologies for your domain&lt;/li&gt;
&lt;li&gt;Features researcher → table stakes vs differentiators
&lt;/li&gt;
&lt;li&gt;Architecture researcher → system design patterns&lt;/li&gt;
&lt;li&gt;Pitfalls researcher → common mistakes to avoid&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Execution agents&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planner → creates verified task plans&lt;/li&gt;
&lt;li&gt;Executor → runs plans with atomic commits&lt;/li&gt;
&lt;li&gt;Verifier → tests and auto-debugs&lt;/li&gt;
&lt;li&gt;Mapper → analyzes existing codebase&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each agent gets fresh context. No degradation. No drift.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Workflow Cycle
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. INITIALIZE
   Describe vision → AI creates PROJECT.md, REQUIREMENTS.md, ROADMAP.md

2. DISCUSS (each phase)
   Shape implementation preferences before committing

3. PLAN  
   Research domain patterns → create verified execution plan

4. EXECUTE
   Run plans in parallel waves with fresh contexts → atomic git commits

5. VERIFY
   User acceptance testing with automatic debugging

Repeat 2-5 for each phase
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Critical rule:&lt;/strong&gt; Completed phases are locked. The AI can only modify code in the current phase. This prevents the "adding payments breaks auth" problem entirely.&lt;/p&gt;

&lt;h3&gt;
  
  
  Boilerplate-Aware Intelligence
&lt;/h3&gt;

&lt;p&gt;The AI knows what's already built in the boilerplate (auth, Stripe, Razorpay, Supabase, multi-tenancy, emails, admin panel). It only plans what's custom to your domain.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zero time wiring auth to database&lt;/li&gt;
&lt;li&gt;Zero time setting up payment webhooks&lt;/li&gt;
&lt;li&gt;Zero time building admin panels&lt;/li&gt;
&lt;li&gt;Pure focus on your unique business logic&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Results (Why I'm Sharing This)
&lt;/h2&gt;

&lt;p&gt;Last 30 days, I built 3 production SaaS backends using this system:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Analytics Dashboard&lt;/strong&gt; (13 hours total, across 4 sessions)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custom analytics schema (metrics, data_points, aggregations)&lt;/li&gt;
&lt;li&gt;Ingestion API with validation&lt;/li&gt;
&lt;li&gt;Time-series calculations (daily, weekly, monthly)&lt;/li&gt;
&lt;li&gt;CSV export with date filtering&lt;/li&gt;
&lt;li&gt;Now has 8 paying users making $96/month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Feedback Widget&lt;/strong&gt; (11 hours, 3 sessions)  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feedback schema with metadata&lt;/li&gt;
&lt;li&gt;Widget embedding API (iframe + script tag)&lt;/li&gt;
&lt;li&gt;Admin CRUD with filtering&lt;/li&gt;
&lt;li&gt;Email notifications on submission&lt;/li&gt;
&lt;li&gt;Webhook system for integrations&lt;/li&gt;
&lt;li&gt;5 signups in first week&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Content Calendar&lt;/strong&gt; (9 hours, 2 sessions)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Content schema with scheduling&lt;/li&gt;
&lt;li&gt;CRUD API with role-based access&lt;/li&gt;
&lt;li&gt;Publishing logic with timezone handling&lt;/li&gt;
&lt;li&gt;Calendar view backend&lt;/li&gt;
&lt;li&gt;En route to production&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All production-ready. All built with AI orchestration. All using persistent state across weeks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Commands That Run It
&lt;/h2&gt;

&lt;p&gt;After building this system for myself, I packaged it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/propelkit:new-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This master command:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Asks deep questions about your project&lt;/li&gt;
&lt;li&gt;Spawns research agents for your domain&lt;/li&gt;
&lt;li&gt;Creates PROJECT.md, REQUIREMENTS.md, ROADMAP.md&lt;/li&gt;
&lt;li&gt;Generates phased execution plan&lt;/li&gt;
&lt;li&gt;Hands you off to phase-by-phase building&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then for each phase:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/propelkit:discuss-phase 1    &lt;span class="c"&gt;# Shape your preferences&lt;/span&gt;
/propelkit:plan-phase 1       &lt;span class="c"&gt;# Research + create execution plan  &lt;/span&gt;
/propelkit:execute-phase 1    &lt;span class="c"&gt;# Build with parallel agents&lt;/span&gt;
/propelkit:verify-work        &lt;span class="c"&gt;# Test with auto-debugging&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The system maintains STATE.md automatically. Close laptop. Come back days later. Resume exactly where you left off.&lt;/p&gt;

&lt;h2&gt;
  
  
  PropelKit - The Packaged System
&lt;/h2&gt;

&lt;p&gt;After the third project, I productized it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you get:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Production Next.js boilerplate (saves 100+ hours):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auth (email, OAuth, sessions)&lt;/li&gt;
&lt;li&gt;Stripe + Razorpay payments
&lt;/li&gt;
&lt;li&gt;Supabase (PostgreSQL with RLS)&lt;/li&gt;
&lt;li&gt;Multi-tenancy (organizations, teams, roles)&lt;/li&gt;
&lt;li&gt;Credits system (usage-based billing)&lt;/li&gt;
&lt;li&gt;Email templates (8 pre-built)&lt;/li&gt;
&lt;li&gt;Admin panel (user management, analytics)&lt;/li&gt;
&lt;li&gt;26 AI PM commands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; Next.js 16, TypeScript, Supabase, Stripe, Razorpay&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One-time purchase.&lt;/strong&gt; You own the code. Build unlimited products.&lt;/p&gt;

&lt;p&gt;The AI PM uses the exact multi-agent orchestration system described above. Persistent state. Parallel research. Boilerplate-aware. Atomic commits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo:&lt;/strong&gt; &lt;a href="https://propelkit.dev" rel="noopener noreferrer"&gt;propelkit.dev&lt;/a&gt; (watch the AI questioning, research, roadmap generation, and execution)&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Approach Works
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Context engineering&lt;/strong&gt; - Separate files under degradation thresholds, not one massive chat&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Multi-agent orchestration&lt;/strong&gt; - Fresh contexts per agent, no drift accumulation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boilerplate awareness&lt;/strong&gt; - AI knows what exists, only builds what's custom&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Atomic commits&lt;/strong&gt; - One feature per commit, precision rollback&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase locking&lt;/strong&gt; - Completed code stays completed, no random rewrites&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Domain research&lt;/strong&gt; - AI understands your industry before writing code&lt;/p&gt;

&lt;p&gt;This isn't just for PropelKit. The principles work anywhere - you need persistent state files and fresh context windows per task.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What's your experience with AI code context loss? Have you found other systems that work?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>typescript</category>
      <category>productivity</category>
      <category>saas</category>
    </item>
  </channel>
</rss>
