<?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: Ahmed Ali</title>
    <description>The latest articles on DEV Community by Ahmed Ali (@ahmedali5530).</description>
    <link>https://dev.to/ahmedali5530</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F134414%2F8e5cb703-d508-4443-ad0d-12420c7c67cf.jpeg</url>
      <title>DEV Community: Ahmed Ali</title>
      <link>https://dev.to/ahmedali5530</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahmedali5530"/>
    <language>en</language>
    <item>
      <title>Building a Modern Restaurant POS with React, SurrealDB, and Docker 🍕</title>
      <dc:creator>Ahmed Ali</dc:creator>
      <pubDate>Sun, 12 Apr 2026 06:22:31 +0000</pubDate>
      <link>https://dev.to/ahmedali5530/building-a-modern-restaurant-pos-with-react-surrealdb-and-docker-1hia</link>
      <guid>https://dev.to/ahmedali5530/building-a-modern-restaurant-pos-with-react-surrealdb-and-docker-1hia</guid>
      <description>&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;Most Point of Sale (POS) systems are either bloated enterprise software or outdated legacy apps. I wanted to build something lightweight, modern, and containerized that could handle real-time data efficiently.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Solution: My Restaurant POS
&lt;/h3&gt;

&lt;p&gt;I've spent the last few months building a full-stack Restaurant Point of Sale system. My goal was to leverage the power of SurrealDB—a multi-model database—to handle the complex relationships between orders, inventory, and staff without the overhead of a traditional relational DB.&lt;/p&gt;

&lt;h3&gt;
  
  
  🛠 The Tech Stack:
&lt;/h3&gt;

&lt;p&gt;Frontend: React with Tailwind CSS&lt;/p&gt;

&lt;p&gt;Backend/Database: SurrealDB (using WebSockets for real-time updates)&lt;/p&gt;

&lt;p&gt;Infrastructure: Docker &amp;amp; Docker Compose&lt;/p&gt;

&lt;p&gt;State Management: Jotai&lt;/p&gt;

&lt;h3&gt;
  
  
  🚀 Key Features
&lt;/h3&gt;

&lt;p&gt;Real-time Synchronization: Since it's built on SurrealDB's WebSocket layer, order updates are instant across all connected devices.&lt;/p&gt;

&lt;p&gt;Container-First: The entire environment is orchestrated via Docker Compose, making it easy to move from development to a production-ready manual reverse proxy setup.&lt;/p&gt;

&lt;p&gt;Persistent Storage: Integrated secure storage for mobile/web environments using Jotai and custom hooks.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 What I Learned (and the Struggles)
&lt;/h3&gt;

&lt;p&gt;The biggest challenge was definitely the infrastructure networking. I spent a lot of time debugging Docker bridge issues and configuring Nginx/Caddy to handle the SSL traffic for the SurrealDB WebSocket connections. Managing the db-init profiles in Docker Compose was another hurdle that taught me a lot about orchestration workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  📦 Check out the Repo
&lt;/h3&gt;

&lt;p&gt;I’ve open-sourced the entire project. I’d love for you to take a look, try running it with Docker, and let me know what you think of the architecture!&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/ahmedali5530/restaurant-pos" rel="noopener noreferrer"&gt;https://github.com/ahmedali5530/restaurant-pos&lt;/a&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>docker</category>
      <category>react</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
