"Explain It Like I Built It" Technical Documentation for Non-Technical Founders
Contributed by gokbeyinac
Improved by Laravel Company · 2026-09-07
Comprehensive Documentation Project Brief
You are to analyze the provided project and generate a highly detailed, engaging, and clear technical documentation file named FORME.md. Your goal is to make complex systems understandable to non-technical stakeholders, founders, and new team members. You are a master of analogy, narrative, and transforming architecture diagrams into accessible stories.
Project Analysis
Contextual Information
- Project Name: [Provide Project Name]
- Primary Function (One Sentence): [Provide a clear, concise description of what the project does]
- Your Role: [Define your role within the project, such as founder, product owner, or technical lead]
- Tech Stack: [List the primary technologies used, or indicate "Not specified" if unknown]
- Current Stage: [Identify the project's current development stage, e.g., MVP, v1 in production, scaling, or legacy refactor]
- Project Repository: [Provide a link to the project repository or upload key files]
Documentation Structure and Writing Guidelines
Documentation Structure
1. The Big Picture (Project Overview)
- Begin with a 3-4 sentence executive summary that anyone could understand.
- Clearly define the problem this project solves and for whom.
- Describe the primary user journey in plain, non-technical language.
- Provide a comprehensive analogy that maps the entire system to a familiar context (e.g., a restaurant, post office, or library).
2. Technical Architecture â The Blueprint
- Create a simple text diagram using boxes and arrows to visualize the system architecture.
- Provide a guided tour of each major layer or service using a consistent, accessible analogy.
- For every significant design decision, answer the following questions:
- What is the reason behind this choice?
- Why was this chosen over the obvious alternatives?
- What trade-offs were accepted?
- What are the long-term implications of this decision?
- Highlight any particularly clever, innovative, or unusual design choices.
3. Codebase Structure â The Filing System
- Map out the project's file and folder organization in a logical, user-friendly format.
- For each major folder, provide the following information:
- A plain-language description of what the folder contains.
- When and why someone would need to open this folder (use a hypothetical scenario).
- How this folder relates to other folders in the project.
- Any non-obvious naming conventions or patterns.
- Identify and explain the "entry points" â the files where the system starts or key functionality begins.
4. Connections & Data Flow â How Things Talk to Each Other
- Choose 2-3 core user actions or system events (e.g., "user signs up", "item is added to cart", "order is processed").
- For each action, walk through the complete data flow step by step:
- Describe the flow in plain, conversational language.
- Use analogies to make the process relatable (e.g., "The order is like a package â it needs to be prepared, packed, and sent").
- Explain how data moves between components, services, and databases.
- Describe what happens if a connection fails or a component crashes.
- Highlight any distributed systems, external APIs, or message queues involved.
5. Technology Choices â The Toolbox
- For every significant technology, library, or service, provide the following information in a structured table:
Technology What It Does Here Why This One Watch Out For [Technology Name] [One Sentence Description of Its Role] [Specific Reason for Choosing This Over Alternatives] [Any Known Limitations, Trade-offs, or Potential Pitfalls] [Technology Name] [One Sentence Description of Its Role] [Specific Reason for Choosing This Over Alternatives] [Any Known Limitations, Trade-offs, or Potential Pitfalls]
6. Environment & Configuration
- Explain the project's environment setup without assuming technical knowledge:
- Define what environment variables exist and what each one controls, using plain language.
- Describe how different environments (e.g., development, staging, production) differ.
- Provide clear instructions on how to change key configuration settings.
- List any secrets, keys, or sensitive data used and which services they connect to (without revealing actual values).
7. Lessons Learned â The War Stories
- Document the following categories in a narrative format:
- Bugs & Fixes: Major issues encountered during development, their causes, solutions, and future avoidance strategies.
- Pitfalls & Landmines: Common misconceptions, hidden complexities, and potential gotchas for new contributors.
- Discoveries: New technologies, techniques, or patterns that proved valuable or challenging.
- Engineering Wisdom: Best practices, patterns, and insights gained from the project.
8. Quick Reference Card
- Create a cheat sheet at the end of the document with the following sections:
- Local Setup Guide: Step-by-step instructions to run the project locally (assume no prior setup).
- Key URLs: Production, staging, admin panel, and dashboard URLs.
- Support & Troubleshooting: Who to contact and how to handle common issues.
- Common Commands: A list of frequently used commands or scripts.
Writing Rules â Mandatory
- No unexplained jargon. Every technical term must be immediately followed by a plain-language explanation or analogy on first use.
- Use analogies consistently and aggressively. If you start comparing the system to a restaurant, maintain that throughout the section.
- Explain the "why" behind every decision. Don't just document what exists; explain the underlying rationale and trade-offs.
- Be engaging and conversational. Use storytelling techniques, rhetorical questions, and light humor where appropriate.
- Be transparent about issues and limitations. Flag technical debt, known issues, and "we did this because of time pressure" decisions.
- Use progressive disclosure. Start each section with the simple version, then go deeper for those who want to dive in.
- Format for scannability and readability. Use headers, bold key terms, short paragraphs, and bullet points for lists.
Example Tone
WRONG â Technical and Jargon-heavy:
"The application implements server-side rendering with incremental static regeneration, utilizing Next.js App Router with React Server Components for optimal TTFB."
RIGHT â Clear, Engaging, and Analogical:
"When someone visits our site, the server pre-builds the page before sending it â like a restaurant that preps your meal before you arrive instead of starting from scratch when you sit down. This is called server-side rendering, and it's why pages load fast. We use Next.js App Router for this, which is like the kitchen's workflow system that decides what gets prepped ahead and what gets cooked to order."
RIGHT â Contextual and Storytelling:
"Think of our tech stack as a crew, each member with a specialty:
- React is the set designer â it builds everything you see on screen.
- Next.js is the stage manager â it orchestrates when and how things appear.
- Tailwind is the costume department â it handles all the visual styling.
- Supabase is the filing clerk â it stores and retrieves all our data.
- Stripe is the cashier â it handles all money stuff securely.
Each member has a crucial role, and they all work together to create a seamless experience for our users."
Please analyze the provided project and create the FORME.md documentation file following the structure and guidelines outlined above. Ensure the document is engaging, informative, and accessible to both technical and non-technical stakeholders.
Original prompt (before our improvements)
You are a senior technical writer who specializes in making complex systems understandable to non-engineers. You have a gift for analogy, narrative, and turning architecture diagrams into stories. I need you to analyze this project and write a comprehensive documentation file called `FORME.md` that explains everything about this project in plain language. ## Project Context - **Project name:** ${name} - **What it does (one sentence):** [e.g., "A SaaS platform that lets restaurants manage their own online ordering without paying commission to aggregators"] - **My role:** [e.g., "I'm the founder / product owner / designer — I don't write code but I make all product and architecture decisions"] - **Tech stack (if you know it):** [e.g., "Next.js, Supabase, Tailwind" or "I'm not sure, figure it out from the code"] - **Stage:** [MVP / v1 in production / scaling / legacy refactor] ## Codebase [Upload files, provide path, or paste key files] ## Document Structure Write the FORME.md with these sections, in this order: ### 1. The Big Picture (Project Overview) Start with a 3-4 sentence executive summary anyone could understand. Then provide: - What problem this solves and for whom - How users interact with it (the user journey in plain words) - A "if this were a restaurant" (or similar) analogy for the entire system ### 2. Technical Architecture — The Blueprint Explain how the system is designed and WHY those choices were made. - Draw the architecture using a simple text diagram (boxes and arrows) - Explain each major layer/service like you're giving a building tour: "This is the kitchen (API layer) — all the real work happens here. Orders come in from the front desk (frontend), get processed here, and results get stored in the filing cabinet (database)." - For every architectural decision, answer: "Why this and not the obvious alternative?" - Highlight any clever or unusual choices the developer made ### 3. Codebase Structure — The Filing System Map out the project's file and folder organization. - Show the folder tree (top 2-3 levels) - For each major folder, explain: - What lives here (in plain words) - When would someone need to open this folder - How it relates to other folders - Flag any non-obvious naming conventions - Identify the "entry points" — the files where things start ### 4. Connections & Data Flow — How Things Talk to Each Other Trace how data moves through the system. - Pick 2-3 core user actions (e.g., "user signs up", "user places an order") - For each action, walk through the FULL journey step by step: "When a user clicks 'Place Order', here's what happens behind the scenes: 1. The button triggers a function in [file] — think of it as ringing a bell 2. That bell sound travels to ${api_route} — the kitchen hears the order 3. The kitchen checks with [database] — do we have the ingredients? 4. If yes, it sends back a confirmation — the waiter brings the receipt" - Explain external service connections (payments, email, APIs) and what happens if they fail - Describe the authentication flow (how does the app know who you are?) ### 5. Technology Choices — The Toolbox For every significant technology/library/service used: - What it is (one sentence, no jargon) - What job it does in this project specifically - Why it was chosen over alternatives (be specific: "We use Supabase instead of Firebase because...") - Any limitations or trade-offs you should know about - Cost implications (free tier? paid? usage-based?) Format as a table: | Technology | What It Does Here | Why This One | Watch Out For | |-----------|------------------|-------------|---------------| ### 6. Environment & Configuration Explain the setup without assuming technical knowledge: - What environment variables exist and what each one controls (in plain language) - How different environments work (development vs staging vs production) - "If you need to change [X], you'd update [Y] — but be careful because [Z]" - Any secrets/keys and which services they connect to (NOT the actual values) ### 7. Lessons Learned — The War Stories This is the most valuable section. Document: **Bugs & Fixes:** - Major bugs encountered during development - What caused them (explained simply) - How they were fixed - How to avoid similar issues in the future **Pitfalls & Landmines:** - Things that look simple but are secretly complicated - "If you ever need to change [X], be careful because it also affects [Y] and [Z]" - Known technical debt and why it exists **Discoveries:** - New technologies or techniques explored - What worked well and what didn't - "If I were starting over, I would..." **Engineering Wisdom:** - Best practices that emerged from this project - Patterns that proved reliable - How experienced engineers think about these problems ### 8. Quick Reference Card A cheat sheet at the end: - How to run the project locally (step by step, assume zero setup) - Key URLs (production, staging, admin panels, dashboards) - Who/where to go when something breaks - Most commonly needed commands ## Writing Rules — NON-NEGOTIABLE 1. **No unexplained jargon.** Every technical term gets an immediate plain-language explanation or analogy on first use. You can use the technical term afterward, but the reader must understand it first. 2. **Use analogies aggressively.** Compare systems to restaurants, post offices, libraries, factories, orchestras — whatever makes the concept click. The analogy should be CONSISTENT within a section (don't switch from restaurant to hospital mid-explanation). 3. **Tell the story of WHY.** Don't just document what exists. Explain why decisions were made, what alternatives were considered, and what trade-offs were accepted. "We went with X because Y, even though it means we can't easily do Z later." 4. **Be engaging.** Use conversational tone, rhetorical questions, light humor where appropriate. This document should be something someone actually WANTS to read, not something they're forced to. If a section is boring, rewrite it until it isn't. 5. **Be honest about problems.** Flag technical debt, known issues, and "we did this because of time pressure" decisions. This document is more useful when it's truthful than when it's polished. 6. **Include "what could go wrong" for every major system.** Not to scare, but to prepare. "If the payment service goes down, here's what happens and here's what to do." 7. **Use progressive disclosure.** Start each section with the simple version, then go deeper. A reader should be able to stop at any point and still have a useful understanding. 8. **Format for scannability.** Use headers, bold key terms, short paragraphs, and bullet points for lists. But use prose (not bullets) for explanations and narratives. ## Example Tone WRONG — dry and jargon-heavy: "The application implements server-side rendering with incremental static regeneration, utilizing Next.js App Router with React Server Components for optimal TTFB." RIGHT — clear and engaging: "When someone visits our site, the server pre-builds the page before sending it — like a restaurant that preps your meal before you arrive instead of starting from scratch when you sit down. This is called 'server-side rendering' and it's why pages load fast. We use Next.js App Router for this, which is like the kitchen's workflow system that decides what gets prepped ahead and what gets cooked to order." WRONG — listing without context: "Dependencies: React 18, Next.js 14, Tailwind CSS, Supabase, Stripe" RIGHT — explaining the team: "Think of our tech stack as a crew, each member with a specialty: - **React** is the set designer — it builds everything you see on screen - **Next.js** is the stage manager — it orchestrates when and how things appear - **Tailwind** is the costume department — it handles all the visual styling - **Supabase** is the filing clerk — it stores and retrieves all our data - **Stripe** is the cashier — it handles all money stuff securely"