<?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: Aditya Arora</title>
    <description>The latest articles on DEV Community by Aditya Arora (@produsa_labs).</description>
    <link>https://dev.to/produsa_labs</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%2F4106301%2Fe6e2a067-7460-4bfa-90fc-172aa7ebe59b.png</url>
      <title>DEV Community: Aditya Arora</title>
      <link>https://dev.to/produsa_labs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/produsa_labs"/>
    <language>en</language>
    <item>
      <title>I build websites from a prompt for the Indian market, here is the architecture</title>
      <dc:creator>Aditya Arora</dc:creator>
      <pubDate>Wed, 02 Sep 2026 13:47:11 +0000</pubDate>
      <link>https://dev.to/produsa_labs/i-build-websites-from-a-prompt-for-the-indian-market-here-is-the-architecture-g5k</link>
      <guid>https://dev.to/produsa_labs/i-build-websites-from-a-prompt-for-the-indian-market-here-is-the-architecture-g5k</guid>
      <description>&lt;p&gt;Building in public. Early access. No inflated metrics.&lt;/p&gt;

&lt;p&gt;For the last few months I have been building &lt;a href="https://produsa.app/" rel="noopener noreferrer"&gt;Produsa&lt;/a&gt;, a website builder where you describe the business you want a site for, watch a live preview start assembling in seconds, refine it by chat, and about 15 minutes later you have a real, shippable website on its own URL. The catch: it is built India-first, not US-first retrofitted.&lt;/p&gt;

&lt;p&gt;That constraint forced real architecture decisions. This is the teardown.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why "just use v0" does not work for India&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;v0, Bolt, Lovable, Replit, they are genuinely solid tools. But nearly all of them assume USD pricing baked into generated templates, English-only output, Stripe as the default checkout, and no native support for GST, Indian phone formats, or PIN codes.&lt;/p&gt;

&lt;p&gt;So when an Indian founder generates "a store for my Jaipur clothing brand," they get a dollar-priced, Stripe-wired page they then have to manually un-Americanize. We decided localization should not be a find-and-replace afterthought, it should be first-class architecture that propagates through every generation step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The pipeline&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prompt, research, blueprint, generate, validate, live website. Frontend is React 19 plus Vite plus Tailwind. Generated markup lives in a sandboxed iframe so it cannot touch the host. State and build stages stream over Socket.io, users watch a live preview build in real time instead of staring at a spinner. That is most of what makes the preview feel instant, even though the full, shippable website takes about 15 minutes end to end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where India-first actually lives in the code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Core idea: resolve locale, currency, and checkout once at the top, then thread that single brief object through every LLM call. If each generation step re-derives intent from raw user text, the outputs disagree and the page looks inconsistent.&lt;/p&gt;

&lt;p&gt;Our most instructive bug: generated Indian-brand pages kept emitting dollar signs even though the brief said India, because the currency directive passed to the page-HTML step used the raw user param instead of the resolved brief currency. Fixing that meant treating currency, UPI checkout, and GST fields as resolved facts, not re-guessed on every call.&lt;/p&gt;

&lt;p&gt;Happy to go deeper on any layer here, especially how we thread one resolved brief object through every LLM call to stop currency and locale drift, and how the quality gate decides regenerate versus ship. If you build in AI codegen, what is your hardest consistency bug?&lt;/p&gt;

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