<?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: MD Mehedi Hasan</title>
    <description>The latest articles on DEV Community by MD Mehedi Hasan (@web-dev-mehedi).</description>
    <link>https://dev.to/web-dev-mehedi</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4223814%2F112fbab9-f960-4fbd-8311-870674f9a477.png</url>
      <title>DEV Community: MD Mehedi Hasan</title>
      <link>https://dev.to/web-dev-mehedi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/web-dev-mehedi"/>
    <language>en</language>
    <item>
      <title>I was tired of vague PRDs, so I built a generator that outputs the architecture too</title>
      <dc:creator>MD Mehedi Hasan</dc:creator>
      <pubDate>Tue, 03 Nov 2026 08:36:08 +0000</pubDate>
      <link>https://dev.to/web-dev-mehedi/i-was-tired-of-vague-prds-so-i-built-a-generator-that-outputs-the-architecture-too-3i39</link>
      <guid>https://dev.to/web-dev-mehedi/i-was-tired-of-vague-prds-so-i-built-a-generator-that-outputs-the-architecture-too-3i39</guid>
      <description>&lt;p&gt;Every project I start the same way: a PRD from a chatbot, good intentions, and then — three days into building with an AI coding agent — a database that doesn't match the document, an API payload that changed shape twice, and no security rules anywhere.&lt;/p&gt;

&lt;p&gt;The problem wasn't the agent. It was my spec. Prose is a suggestion; a schema is a contract.&lt;/p&gt;

&lt;p&gt;So I built the tool I needed. Web Dev Mehedi takes one product idea and generates four files that agree with each other:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;PRODUCT_REQUIREMENTS.md&lt;/strong&gt; — scope, user journeys, edge cases, and GIVEN/WHEN/THEN acceptance criteria.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI_UX_SPECIFICATION.md&lt;/strong&gt; — design tokens, typography, view states, accessibility rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TECHNICAL_ARCHITECTURE.md&lt;/strong&gt; — PostgreSQL DDL schemas with Supabase Row Level Security, plus typed REST &amp;amp; Server Actions API contracts with Zod validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI_AGENT_IMPLEMENTATION.md&lt;/strong&gt; — phased build instructions and prompt rules that pin Cursor and Claude Code to files 1–3: use these exact table names, these exact payloads, never bypass RLS, and flag conflicts instead of choosing silently.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Three lessons from building it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tenancy has to be in the schema on day one&lt;/strong&gt;, not patched later. RLS policies are written in the same step as the tables themselves.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An agent follows rigid rules surprisingly well.&lt;/strong&gt; Most "hallucinations" I saw were vagueness failures, not capability failures: the spec never actually decided the thing the agent got wrong.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pricing in BDT with bKash opened a market&lt;/strong&gt; that $20/month card subscriptions simply don't reach. Web Dev Mehedi starts at ৳99/month, with 50 free credits on signup and no card required.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's live here if you want to break it: &lt;a href="https://webdevmehedi.com/ai-prd-generator" rel="noopener noreferrer"&gt;https://webdevmehedi.com/ai-prd-generator&lt;/a&gt; — and the free template behind the format is on GitHub: &lt;a href="https://github.com/web-dev-mehedi/ai-prd-template" rel="noopener noreferrer"&gt;https://github.com/web-dev-mehedi/ai-prd-template&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What do you hand your coding agent before a build? Genuinely curious what other people's specs look like.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>nextjs</category>
      <category>supabase</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
