{"slug": "building-innward-a-b2b-hospitality-operating-system-with-vercel-and-amazon", "title": "Building Innward: A B2B Hospitality Operating System with Vercel and Amazon Aurora", "summary": "A developer built Innward, a B2B hospitality operating system, using Vercel v0 and Amazon Aurora PostgreSQL for the Hack the Zero Stack hackathon. The system includes AI-ready property management features, IAM-based database authentication, and a timeout-aware algorithm to handle Vercel's 300-second limit for competitor rate scraping.", "body_md": "This blog post is created for the purposes of entering the ** Hack the Zero Stack with Vercel v0 and AWS Databases** hackathon. #H0Hackathon\n\nThe hospitality industry is notorious for relying on \"legacy\" software—clunky, slow, and disconnected. For the **Hack the Zero Stack** hackathon, I set out to build **Innward**, a modern, AI-ready Property Management System (PMS) that proves you can build enterprise-grade B2B tools in record time using Vercel v0 and AWS Databases.\n\nHotel managers don't just need a place to store \"Room 101: Occupied.\" They need to solve the **\"Hidden Math\"** of revenue management. This means:\n\nTo handle this complexity, I chose **Amazon Aurora PostgreSQL (Serverless v2)**.\n\nIn a B2B SaaS environment, data isolation and relational integrity are non-negotiable. Aurora provided the robust relational power needed to join complex pricing tables while scaling automatically as more hotels (tenants) join the platform.\n\nOne of the most rewarding parts of this build was implementing the **AWS RDS Signer**. Following the \"Zero Stack\" philosophy, I moved away from static database passwords. Innward uses IAM-based authentication to communicate between Vercel and AWS.\n\nBy utilizing the `@aws-sdk/rds-signer`\n\n, the application generates short-lived tokens on the fly. This means even if an environment variable were leaked, the database remains locked tight.\n\n``` js\n// lib/db.ts snippet\nconst signer = new Signer({\n  credentials: awsCredentialsProvider({\n    roleArn: process.env.AWS_ROLE_ARN!,\n    clientConfig: { region: process.env.AWS_REGION },\n  }),\n  region: process.env.AWS_REGION,\n  hostname: process.env.PGHOST!,\n  username: process.env.PGUSER || \"postgres\",\n  port: 5432,\n});\n\nconst pool = new Pool({\n    password: () => signer.getAuthToken(),\n    ssl: { rejectUnauthorized: false },\n});\n```\n\nB2B users don't want \"simple\"—they want **clarity**. I used **v0** to scaffold a high-information-density UI using Next.js 15 and Shadcn.\n\nA highlight of the project is the **Reservation Timeline**. Most calendar libraries fail at showing \"Half-Day\" turnovers (where one guest leaves at 11 AM and another arrives at 3 PM). I used v0 to build a custom CSS Grid implementation with horizontal insets, accurately reflecting the physical reality of hotel room turnovers.\n\nInnward includes a background worker built with **Playwright** that scrapes competitor rates. I visualized this data using **Recharts Candlestick components**. This gives revenue managers a \"Volatility Pulse,\" showing the spread between the cheapest and most expensive rooms in their city.\n\nDuring development, I hit a major hurdle: the **Vercel 300s timeout**. Scraping market data for multiple cities across a 14-day window was a heavy task.\n\nI solved this by building a **\"Timeout-Aware\" algorithm**. The sync loop monitors its own execution time. If it reaches 280 seconds, it stops gracefully, saves a \"checkpoint\" to Aurora, and returns a partial success response. The next Vercel Cron run simply picks up where it left off.\n\nSecurity is the heart of B2B software. I leveraged PostgreSQL’s **JSONB** capabilities to store a map of 15+ granular permission keys per staff member. This allowed for a highly flexible \"Manage Access\" UI where hotel owners can toggle specific permissions (like `revenue.kpis`\n\nor `stays.check_in`\n\n) without needing a new database column for every feature.\n\nBuilding with the Zero Stack has been an eye-opener. The speed of Vercel combined with the enterprise reliability of AWS Databases allowed me to focus 100% on solving the business logic of hospitality.\n\n**Check out the project:** [https://devpost.com/software/innward-property-management-system](https://devpost.com/software/innward-property-management-system)\n\n**Built with:** Next.js 15, Vercel v0, Amazon Aurora PostgreSQL.", "url": "https://wpnews.pro/news/building-innward-a-b2b-hospitality-operating-system-with-vercel-and-amazon", "canonical_source": "https://dev.to/bizzi_cole87_26ec228487d6/building-innward-a-b2b-hospitality-operating-system-with-vercel-and-amazon-aurora-1fec", "published_at": "2026-06-29 21:35:24+00:00", "updated_at": "2026-06-29 21:48:40.103835+00:00", "lang": "en", "topics": ["developer-tools", "ai-products", "ai-infrastructure"], "entities": ["Vercel", "Amazon Aurora", "AWS", "Innward", "Next.js", "Playwright", "Recharts", "PostgreSQL"], "alternates": {"html": "https://wpnews.pro/news/building-innward-a-b2b-hospitality-operating-system-with-vercel-and-amazon", "markdown": "https://wpnews.pro/news/building-innward-a-b2b-hospitality-operating-system-with-vercel-and-amazon.md", "text": "https://wpnews.pro/news/building-innward-a-b2b-hospitality-operating-system-with-vercel-and-amazon.txt", "jsonld": "https://wpnews.pro/news/building-innward-a-b2b-hospitality-operating-system-with-vercel-and-amazon.jsonld"}}