<?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: CodeByAmit</title>
    <description>The latest articles on DEV Community by CodeByAmit (@swagcode4u).</description>
    <link>https://dev.to/swagcode4u</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%2F3583455%2F87082576-7617-4cd9-aac2-b7aef3b567c6.jpeg</url>
      <title>DEV Community: CodeByAmit</title>
      <link>https://dev.to/swagcode4u</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/swagcode4u"/>
    <language>en</language>
    <item>
      <title>RestroQT</title>
      <dc:creator>CodeByAmit</dc:creator>
      <pubDate>Wed, 24 Jun 2026 05:59:08 +0000</pubDate>
      <link>https://dev.to/swagcode4u/restroqt-1lfo</link>
      <guid>https://dev.to/swagcode4u/restroqt-1lfo</guid>
      <description>&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%2Fqs59fiyqhpmmwsnskfaz.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%2Fqs59fiyqhpmmwsnskfaz.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Built a Restaurant POS SaaS in India — Here’s What Nobody Tells You
&lt;/h1&gt;

&lt;p&gt;When I started building RestroQT, I thought I was building a simple restaurant billing system.&lt;/p&gt;

&lt;p&gt;I was wrong.&lt;/p&gt;

&lt;p&gt;What I ended up building is a full SaaS platform for restaurants and hotels — handling billing, GST, QR ordering, kitchen display systems, UPI payments, and financial reporting.&lt;/p&gt;

&lt;p&gt;And along the way, I learned a few things nobody really tells you before building SaaS in this space.&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%2Fa715gr5dprnqg01k7rtu.jpg" 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%2Fa715gr5dprnqg01k7rtu.jpg" alt=" " width="799" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🧠 It’s not a “POS problem”, it’s a “chaos management problem”
&lt;/h2&gt;

&lt;p&gt;Restaurants don’t want software.&lt;/p&gt;

&lt;p&gt;They want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No billing delays&lt;/li&gt;
&lt;li&gt;No GST mistakes&lt;/li&gt;
&lt;li&gt;No kitchen confusion&lt;/li&gt;
&lt;li&gt;No staff training headache&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;POS is just the surface. The real problem is operational chaos.&lt;/p&gt;




&lt;h2&gt;
  
  
  🇮🇳 India makes it harder (and more interesting)
&lt;/h2&gt;

&lt;p&gt;Building for Indian restaurants adds layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GST billing rules everywhere&lt;/li&gt;
&lt;li&gt;UPI payments expected by default&lt;/li&gt;
&lt;li&gt;Internet can be unstable&lt;/li&gt;
&lt;li&gt;Staff often not tech-savvy&lt;/li&gt;
&lt;li&gt;Multi-language UI needs matter&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most global POS systems don’t solve this well.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ Tech stack I used
&lt;/h2&gt;

&lt;p&gt;RestroQT is built using:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend: FastAPI&lt;/li&gt;
&lt;li&gt;Frontend: React&lt;/li&gt;
&lt;li&gt;Database: MySQL&lt;/li&gt;
&lt;li&gt;Server: Single VPS (yes, one machine)&lt;/li&gt;
&lt;li&gt;Nginx for routing and deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For reliability, we use automated database backups with off-server storage and separate secure environments for higher-tier (PRO) clients to ensure data isolation and safety.&lt;/p&gt;

&lt;p&gt;I intentionally kept the infrastructure simple at the start using a single VPS to focus on product development and real user feedback.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Multi-tenant SaaS is harder than it looks
&lt;/h2&gt;

&lt;p&gt;The biggest challenge wasn’t UI or payments.&lt;/p&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data isolation between restaurants&lt;/li&gt;
&lt;li&gt;Role-based access (owner, cashier, waiter)&lt;/li&gt;
&lt;li&gt;Real-time updates for orders&lt;/li&gt;
&lt;li&gt;Kitchen display synchronization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One bug in tenant logic = catastrophic data leak risk.&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%2Fqw12kjixn2f9trgj8ma6.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%2Fqw12kjixn2f9trgj8ma6.png" alt=" " width="800" height="1279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔥 QR ordering changed everything
&lt;/h2&gt;

&lt;p&gt;One feature changed how users interacted with the system:&lt;/p&gt;

&lt;p&gt;👉 QR-based ordering without login&lt;/p&gt;

&lt;p&gt;Customers scan → order → pay&lt;/p&gt;

&lt;p&gt;No signup friction.&lt;/p&gt;

&lt;p&gt;This alone improved adoption significantly.&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 What I learned building this
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Start simple — complexity comes naturally later&lt;/li&gt;
&lt;li&gt;Real users break your assumptions fast&lt;/li&gt;
&lt;li&gt;Restaurant software is about speed, not features&lt;/li&gt;
&lt;li&gt;UX matters more than backend architecture&lt;/li&gt;
&lt;li&gt;Indian market needs very specific solutions&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  🚧 What I would do differently
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Build billing engine before adding features&lt;/li&gt;
&lt;li&gt;Focus on one restaurant type first&lt;/li&gt;
&lt;li&gt;Add analytics earlier&lt;/li&gt;
&lt;li&gt;Avoid overengineering backend at start&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌐 Where it is now
&lt;/h2&gt;

&lt;p&gt;RestroQT is currently live and evolving.&lt;/p&gt;

&lt;p&gt;It is being shaped based on real restaurant feedback.&lt;/p&gt;

&lt;p&gt;Website: &lt;a href="https://restroqt.com" rel="noopener noreferrer"&gt;https://restroqt.com&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Final thought
&lt;/h2&gt;

&lt;p&gt;Building SaaS is not about writing code.&lt;/p&gt;

&lt;p&gt;It’s about surviving real-world complexity long enough until your system becomes stable.&lt;/p&gt;

&lt;p&gt;If you're building something similar, I’d love to connect and exchange ideas.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Built by a solo developer trying to simplify restaurant operations in India.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>product</category>
      <category>saas</category>
      <category>showdev</category>
      <category>startup</category>
    </item>
    <item>
      <title>ProjectMaker For Devs</title>
      <dc:creator>CodeByAmit</dc:creator>
      <pubDate>Tue, 28 Oct 2025 11:03:30 +0000</pubDate>
      <link>https://dev.to/swagcode4u/projectmaker-for-devs-148k</link>
      <guid>https://dev.to/swagcode4u/projectmaker-for-devs-148k</guid>
      <description>&lt;p&gt;🚀 Introducing ProjectMaker: Build Full-Stack Apps in Minutes! 💻✨&lt;/p&gt;

&lt;p&gt;Are you tired of spending hours wiring up full-stack apps? Say hello to ProjectMaker — your new open-source friend that scaffolds complete backend + frontend projects in minutes, not hours! 🎉&lt;/p&gt;

&lt;p&gt;💡 What is ProjectMaker?&lt;/p&gt;

&lt;p&gt;ProjectMaker is a modern, open-source scaffolding engine designed for developers who value speed, structure, and simplicity. It generates polished backend + frontend boilerplates automatically and even creates a professional PDF summary documenting your project setup.&lt;/p&gt;

&lt;p&gt;Supported frameworks include popular backends like FastAPI, Express, NestJS, Django, and frontends such as React, Vue, Angular, and more — so you’re never limited! ⚙️🎨&lt;br&gt;
🎯 Key Features&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🚀 Full-stack generator with live preview &amp;amp; safe file creation

📄 Professional PDF summary including project structure, ports &amp;amp; scripts

📚 Per-framework READMEs, .env.example hints, and .gitignore for subprojects

🛡️ Flexible CORS settings, optional rate limiting &amp;amp; structured JSON errors

🔧 Modular backend/frontend registry with aliasing &amp;amp; lazy loading
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;⚙️ How It Works&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Pick your backend &amp;amp; frontend frameworks

Customize folders, libraries, or databases

Preview the project and dependencies live

Build and generate files to disk with one command

Download the PDF summary and start coding! 🚀
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;📦 Getting Started&lt;/p&gt;

&lt;p&gt;Clone and run the project locally:&lt;/p&gt;

&lt;p&gt;bash&lt;br&gt;
git clone &lt;a href="https://github.com/SwagCode4U/projectmaker.git" rel="noopener noreferrer"&gt;https://github.com/SwagCode4U/projectmaker.git&lt;/a&gt;&lt;br&gt;
cd projectmaker&lt;/p&gt;

&lt;h1&gt;
  
  
  Backend
&lt;/h1&gt;

&lt;p&gt;cd backend&lt;br&gt;
pip install -r requirements.txt&lt;br&gt;
uvicorn app.main:app --reload --port 8000&lt;/p&gt;

&lt;h1&gt;
  
  
  Frontend
&lt;/h1&gt;

&lt;p&gt;cd ../frontend&lt;br&gt;
npm install&lt;br&gt;
npm run dev&lt;/p&gt;

&lt;p&gt;Open the UI at &lt;a href="http://localhost:5173" rel="noopener noreferrer"&gt;http://localhost:5173&lt;/a&gt; (or 3010) and backend API at &lt;a href="http://localhost:8000" rel="noopener noreferrer"&gt;http://localhost:8000&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;📸 See It in Action&lt;/p&gt;
&lt;h3&gt;
  
  
  🏠 Home Page
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2Fd3pp8okcf21d8iwygzkg.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.amazonaws.com%2Fuploads%2Farticles%2Fd3pp8okcf21d8iwygzkg.png" alt=" " width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  ⚙️ Project Setup Previews
&lt;/h3&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.amazonaws.com%2Fuploads%2Farticles%2F2owm8ggzxtaegkludjm9.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.amazonaws.com%2Fuploads%2Farticles%2F2owm8ggzxtaegkludjm9.png" alt=" " width="800" height="387"&gt;&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fztlxhas5bqr3y6qia5oz.png" alt=" " width="800" height="410"&gt;
&lt;/h2&gt;




&lt;p&gt;⭐ Check out the full project on Codeberg:&lt;br&gt;&lt;br&gt;
&lt;a href="https://codeberg.org/SwagCode4U/ProjectMaker.git" rel="noopener noreferrer"&gt;https://codeberg.org/SwagCode4U/ProjectMaker.git&lt;/a&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.amazonaws.com%2Fuploads%2Farticles%2Fux14fae5tawh5gd4qm9e.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.amazonaws.com%2Fuploads%2Farticles%2Fux14fae5tawh5gd4qm9e.png" alt=" " width="800" height="402"&gt;&lt;/a&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fa947mlwhwuy43u3s5u89.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.amazonaws.com%2Fuploads%2Farticles%2Fa947mlwhwuy43u3s5u89.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fla00arym6ib25but09x7.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.amazonaws.com%2Fuploads%2Farticles%2Fla00arym6ib25but09x7.png" alt=" " width="800" height="408"&gt;&lt;/a&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fi5v7x1jnwn6y0zxdbuio.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.amazonaws.com%2Fuploads%2Farticles%2Fi5v7x1jnwn6y0zxdbuio.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2Fkzmc3jesqm467arh6o7l.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.amazonaws.com%2Fuploads%2Farticles%2Fkzmc3jesqm467arh6o7l.png" alt=" " width="800" height="411"&gt;&lt;/a&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F5jnwocmfo19fx78dti3e.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.amazonaws.com%2Fuploads%2Farticles%2F5jnwocmfo19fx78dti3e.png" alt=" " width="800" height="341"&gt;&lt;/a&gt;&lt;br&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.amazonaws.com%2Fuploads%2Farticles%2F4zmgjxot60gpumtd2oze.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.amazonaws.com%2Fuploads%2Farticles%2F4zmgjxot60gpumtd2oze.png" alt=" " width="800" height="411"&gt;&lt;/a&gt; &lt;/p&gt;

</description>
      <category>fullstack</category>
      <category>tooling</category>
      <category>automation</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
