<?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>Forem: Amaan K</title>
    <description>The latest articles on Forem by Amaan K (@amaan_k_d6ce7d76287e54d17).</description>
    <link>https://forem.com/amaan_k_d6ce7d76287e54d17</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%2F3874692%2F9b70c5d1-e79a-4b68-8e0a-c196fff6aa3e.png</url>
      <title>Forem: Amaan K</title>
      <link>https://forem.com/amaan_k_d6ce7d76287e54d17</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/amaan_k_d6ce7d76287e54d17"/>
    <language>en</language>
    <item>
      <title>Building VenueFlow AI: Real-time Crowd Management &amp; The Reality of Cloud Deployments 🏟️</title>
      <dc:creator>Amaan K</dc:creator>
      <pubDate>Sun, 12 Apr 2026 13:29:30 +0000</pubDate>
      <link>https://forem.com/amaan_k_d6ce7d76287e54d17/building-venueflow-ai-real-time-crowd-management-the-reality-of-cloud-deployments-5aja</link>
      <guid>https://forem.com/amaan_k_d6ce7d76287e54d17/building-venueflow-ai-real-time-crowd-management-the-reality-of-cloud-deployments-5aja</guid>
      <description>&lt;p&gt;I recently built VenueFlow AI, a real-time crowd management and event-assistance platform designed to vastly improve how people move through large sporting venues and stadiums.&lt;/p&gt;

&lt;p&gt;The primary goal was to create a platform that could help fans, staff, managers, and admins make better, safer decisions during live events using real-time data, proactive alerts, and AI-powered assistance.&lt;/p&gt;

&lt;p&gt;Here is a look into what I built, the tech stack I used, and the biggest hurdle I had to overcome along the way.&lt;/p&gt;

&lt;p&gt;🏟️ What VenueFlow AI Does&lt;br&gt;
VenueFlow AI is built to simulate and manage live venue activity. To make the digital twin of the venue as actionable as possible, I implemented features like:&lt;/p&gt;

&lt;p&gt;👥 Role-based Dashboards: Custom tailored views for fans, operational staff, venue managers, and system admins.&lt;br&gt;
📊 Live Crowd Density: Real-time updates on zone occupancy and gate queues.&lt;br&gt;
🤖 AI-Assisted Responses: A fan-facing chatbot (FlowBot) that helps fans navigate the venue, find food, and locate their seats.&lt;br&gt;
🚨 Smart Alerts &amp;amp; Emergencies: AI-generated PA announcements and instant full-screen evacuation routing for users.&lt;br&gt;
📈 Event Flow Visibility: Predictive AI (FlowAgent) that tells managers where bottlenecks will happen 15 minutes before they do.&lt;br&gt;
🛠️ The Tech Stack&lt;br&gt;
I chose a modern, full-stack TypeScript ecosystem to keep types consistent from the database all the way to the frontend UI components.&lt;/p&gt;

&lt;p&gt;Frontend:&lt;/p&gt;

&lt;p&gt;React 18&lt;br&gt;
TypeScript&lt;br&gt;
Vite&lt;br&gt;
Tailwind CSS &amp;amp; Framer Motion&lt;br&gt;
Backend:&lt;/p&gt;

&lt;p&gt;Node.js &amp;amp; Express&lt;br&gt;
Prisma ORM (with PostgreSQL)&lt;br&gt;
TypeScript&lt;br&gt;
Cloud, AI &amp;amp; Real-time:&lt;/p&gt;

&lt;p&gt;Socket.IO (for real-time telemetry)&lt;br&gt;
Google Cloud Run (Serverless container deployment)&lt;br&gt;
Google Cloud Vertex AI (Gemini 2.0 Flash)&lt;br&gt;
Google OAuth 2.0&lt;br&gt;
🧗 The Biggest Challenge: It wasn't the code&lt;br&gt;
The hardest part of this project wasn’t building the app itself or wiring up the AI. It was the deployment.&lt;/p&gt;

&lt;p&gt;While deploying the application to Google Cloud Run, Cloud Build kept failing silently during the frontend dependency installation step (npm install inside the Dockerfile). The Vite/React frontend naturally had a heavier dependency tree, and the build would simply crash and timeout without yielding a useful error trace.&lt;/p&gt;

&lt;p&gt;The Solution: Rethinking the Build Pipeline&lt;br&gt;
Instead of forcing the Cloud Build worker to compile everything from scratch, I changed the deployment flow:&lt;/p&gt;

&lt;p&gt;Built the frontend locally first (npm run build using Vite).&lt;br&gt;
Kept Cloud Build focused entirely on the backend.&lt;br&gt;
Copied the prebuilt frontend dist files directly into the container and had the Express backend serve them as static files.&lt;br&gt;
This hybrid approach bypassed the memory/timeout constraints of the build runner and made the deployment process significantly faster and infinitely more stable.&lt;/p&gt;

&lt;p&gt;🧠 What I Learned&lt;br&gt;
Building this project taught me a lot about real-world full-stack development, specifically the things they don't teach you in tutorials:&lt;/p&gt;

&lt;p&gt;Deploying apps is often harder than writing them. The "works on my machine" problem is real, especially when bridging frontend build tools with backend containerization.&lt;br&gt;
Auth state is fragile. Handling authentication state on the frontend can easily break routing and navigation if your local storage / stores become inconsistent.&lt;br&gt;
Cloud debugging requires patience. Good logging is not optional; it is a necessity when you are trying to figure out why a remote container is failing.&lt;br&gt;
Constraints force better architecture. Shipping under limits (like build timeouts or repository size limits) forces you to think critically about what exactly needs to be pushed, built, and executed.&lt;br&gt;
🤝 Let's Connect&lt;br&gt;
I wanted to share this because building projects like this is one of the best ways to learn. You don’t just memorize arbitrary frameworks; you learn debugging, deployment resilience, system architecture, and trade-offs.&lt;/p&gt;

&lt;p&gt;If you’re currently building full-stack apps with React, Express, or tackling cloud platform deployments, I’d love to connect and hear how you approach these problems.&lt;/p&gt;

&lt;p&gt;Feedback, thoughts, and questions are always welcome down in the comments! 👇&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%2Fur7e1s62yw8r23wnn1pd.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%2Fur7e1s62yw8r23wnn1pd.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>node</category>
      <category>googlecloud</category>
    </item>
  </channel>
</rss>
