<?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: Kamran Pathan</title>
    <description>The latest articles on DEV Community by Kamran Pathan (@kamranpathan03).</description>
    <link>https://dev.to/kamranpathan03</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%2F4232476%2F17e9a1e5-3356-4a70-8781-c022a069a479.png</url>
      <title>DEV Community: Kamran Pathan</title>
      <link>https://dev.to/kamranpathan03</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kamranpathan03"/>
    <language>en</language>
    <item>
      <title>The idea comes at 9 PM. The post goes live at 8 AM.</title>
      <dc:creator>Kamran Pathan</dc:creator>
      <pubDate>Sat, 07 Nov 2026 18:26:23 +0000</pubDate>
      <link>https://dev.to/kamranpathan03/the-idea-comes-at-9-pm-the-post-goes-live-at-8-am-41co</link>
      <guid>https://dev.to/kamranpathan03/the-idea-comes-at-9-pm-the-post-goes-live-at-8-am-41co</guid>
      <description>&lt;p&gt;&lt;em&gt;How we built Bolo Studio: speak a social media idea in Marathi, Hindi or English, and get a brand-ready post, approved on Telegram and published on schedule.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcjvs3yahjdjjw467gnvd.png" alt=" " width="800" height="643"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  9:04 PM: the idea
&lt;/h2&gt;

&lt;p&gt;Meera runs a small sweet shop in Pune. Diwali is four days away. While closing the shop she thinks:&lt;br&gt;
&lt;em&gt;"We should post about our dry-fruit boxes, with the ₹499 offer, in Marathi and English."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Normally that idea dies right there. She has no designer. Her nephew "does Instagram" when he's free.&lt;br&gt;
A good Marathi caption, a design in the shop's colours, checking the price is right, posting at the&lt;br&gt;
right time: all of that is tomorrow's problem, and tomorrow is busy too.&lt;/p&gt;

&lt;p&gt;Millions of small businesses in India are in the same place. They have the ideas. They don't have&lt;br&gt;
the hours.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftgus53e5y8koh14di791.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftgus53e5y8koh14di791.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  9:05 PM: she just says it
&lt;/h2&gt;

&lt;p&gt;Meera opens her shop's Telegram work group and &lt;strong&gt;speaks&lt;/strong&gt; the idea. Wispr Flow turns her voice into&lt;br&gt;
text, Marathi and English mixed, the way she actually talks, and she tags &lt;code&gt;@bolo-writer&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6mraqaujexs0q5kroyb9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6mraqaujexs0q5kroyb9.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  9:06 PM: the agents get to work
&lt;/h2&gt;

&lt;p&gt;Inside that Telegram group are AI agents, connected through &lt;strong&gt;Switch&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agent&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;bolo-writer&lt;/strong&gt; (Claude Code)&lt;/td&gt;
&lt;td&gt;Writes the headline and captions in the chosen languages, following the shop's Brand Kit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;bolo-designer&lt;/strong&gt; (Claude Code)&lt;/td&gt;
&lt;td&gt;Picks the layout and builds the design in the brand's colours, fonts and logo&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;bolo-publisher&lt;/strong&gt; (our own agent)&lt;/td&gt;
&lt;td&gt;Connects the rooms to Bolo Studio, sends approvals and posts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;They reply right in the group, so Meera's team sees the work happen in the chat they already use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj7u595vt721a62btes6x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fj7u595vt721a62btes6x.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  9:08 PM: Brand Guard checks everything
&lt;/h2&gt;

&lt;p&gt;Before anyone sees it, &lt;strong&gt;Brand Guard&lt;/strong&gt; checks the post against the shop's rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the price written correctly, with "onwards*"?&lt;/li&gt;
&lt;li&gt;Is the required call to action there?&lt;/li&gt;
&lt;li&gt;Are any banned words used?&lt;/li&gt;
&lt;li&gt;Is the caption the right length for each platform?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If something fails, the AI fixes it and tries again. Only a clean post moves forward.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fexqiw3gufmzxd9ocxszw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fexqiw3gufmzxd9ocxszw.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  9:09 PM: approval on Telegram
&lt;/h2&gt;

&lt;p&gt;The finished image and captions land in the shop's &lt;strong&gt;approvals group&lt;/strong&gt; on Telegram. Meera's partner&lt;br&gt;
reads it on the phone and replies with one line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;approve #p5acbd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;or &lt;code&gt;change #p5acbd: make the price bigger&lt;/code&gt;, or &lt;code&gt;reject #p5acbd&lt;/code&gt;. Nobody needs to log in anywhere.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F41jm2lh73xtneydq9gsd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F41jm2lh73xtneydq9gsd.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  9:10 PM to 8:00 AM: Drafts, then live
&lt;/h2&gt;

&lt;p&gt;The approved post waits in &lt;strong&gt;Drafts&lt;/strong&gt;. At the scheduled time (8 AM, when Meera's customers are&lt;br&gt;
scrolling) Bolo publishes it to &lt;strong&gt;Instagram, Facebook and LinkedIn&lt;/strong&gt; through their official APIs.&lt;br&gt;
Only posts that are actually live appear on the calendar.&lt;/p&gt;

&lt;p&gt;Want a reel instead? Bolo writes the scenes, Sarvam AI speaks the voiceover in Marathi or Hindi, and&lt;br&gt;
Remotion renders the video.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F73c4yalt4k2g2xpkrfju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F73c4yalt4k2g2xpkrfju.png" alt=" " width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  How it's built
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Voice (Wispr Flow) ─► Telegram work room ─► Switch ─► bolo-writer / bolo-designer (Claude Code)
                                                         │
                                                         ▼
                              Bolo Studio (Next.js) ─► Brand Guard ─► design render (Playwright)
                                                         │
                         Telegram approvals room ◄── bolo-publisher (Switch agent)
                                                         │ approve
                                                         ▼
                              Drafts ─► scheduler ─► Instagram · Facebook · LinkedIn
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Part&lt;/th&gt;
&lt;th&gt;Technology&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Studio web app&lt;/td&gt;
&lt;td&gt;Next.js, TypeScript&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI writing and design&lt;/td&gt;
&lt;td&gt;Claude (Claude Code agents, or the company's own Claude/OpenAI key)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agent rooms&lt;/td&gt;
&lt;td&gt;Switch, bridged to Telegram&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Voice input&lt;/td&gt;
&lt;td&gt;Wispr Flow, plus the browser mic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Voiceovers&lt;/td&gt;
&lt;td&gt;Sarvam AI (Marathi, Hindi, English)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reels&lt;/td&gt;
&lt;td&gt;Remotion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data&lt;/td&gt;
&lt;td&gt;MongoDB Atlas&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Hosting&lt;/td&gt;
&lt;td&gt;AWS EC2 with Docker Compose and Caddy (automatic HTTPS)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  Running on AWS
&lt;/h3&gt;

&lt;p&gt;We kept deployment to one command. A single &lt;strong&gt;EC2 t3.large&lt;/strong&gt; runs three containers: the web app,&lt;br&gt;
the Publisher, and Caddy for HTTPS. Images and reels render on the same server, data lives in&lt;br&gt;
MongoDB Atlas, and daily EBS snapshots back up the disk.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;repo&amp;gt; bolo-studio &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;bolo-studio
bash infra/aws/deploy.sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  What we learned
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Meet people where they already are.&lt;/strong&gt; Small business owners live in Telegram and WhatsApp, not
dashboards. Putting agents &lt;em&gt;inside&lt;/em&gt; the chat made the product feel natural.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice changes everything for non-English speakers.&lt;/strong&gt; Speaking Marathi is faster and more natural
than typing it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Guardrails beat raw generation.&lt;/strong&gt; Brand Guard catching a wrong price matters more than a clever
caption.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agents need clear jobs.&lt;/strong&gt; Separate writer, designer and publisher agents were easier to debug
than one agent doing everything.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://studio.kmrnx.me/" rel="noopener noreferrer"&gt;https://studio.kmrnx.me/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code:&lt;/strong&gt; &lt;a href="https://github.com/sanskarjoshiii/bolo-studio" rel="noopener noreferrer"&gt;https://github.com/sanskarjoshiii/bolo-studio&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Built for the Switch hackathon by Team Bolo, Pune.&lt;/em&gt; #HowISwitch&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>buildinpublic</category>
      <category>startup</category>
    </item>
  </channel>
</rss>
