Back to work
Hospitality / POS2026Solo, from design to launch

Cigar Lounge OS, one system to run the whole lounge

Problem

The client from Florida wanted to build a product for cigar lounge owners: a register, a backend and an app for their guests. A cigar lounge has its own quirks: a regular keeps a tab open for the whole evening and moves from the bar to the armchairs, every tobacco sale needs an age check and a separate tax line, and the stockroom is a humidor. The market leaders' generic registers (Toast, Square, Lightspeed) can run a place like this, but only when bent to fit it. What was missing was something built to measure, so owners worked around generic systems or stayed on paper.

For the client this was first of all a business venture, an investment. The goal wasn't to run a single lounge but to build a finished, multi-tenant product (each lounge with its own isolated data) that he could sell to cigar lounge owners across a market the big POS players had ignored. That's why it had to do more than manage sales and the humidor: it needed strong marketing tools (paid event reservations, promotions, a loyalty program, a direct channel to guests) that make the product attractive to owners who want to attract and keep regulars.

The product is aimed at the US market, where cigar lounges are a distinct, established culture. That shapes how it works: 21+ age verification on tobacco sales, excise tax split to local rates, and pricing in dollars. It is being rolled out to lounges across the States (Florida, Georgia and the Carolinas) and sold through its own product site, cigarloungeos.com, with subscription tiers for owners.

Solution

I built an ecosystem of three applications on one shared backend: a tablet register for the staff, a web dashboard for the owner and a mobile app for the guests. All three work on the same data, so what happens at the bar shows up in the owner's dashboard right away. Every lounge on the platform has its own, isolated data.

The register also works without internet. A sale is saved on the device first and syncs with the server in the background once the connection is back. When the network dies mid-evening, receipts keep printing and no transaction is lost. The staff work on a floor plan that mirrors the actual room: the owner draws the table layout in the dashboard, and the register shows which tables have open tabs. A tab opened at the bar can be closed at an armchair. Age checks and the tobacco tax line are part of the checkout flow, and every inventory movement is recorded permanently, so shrinkage shows up in the history.

The lounge also earns outside the room. The owner publishes events with paid reservations and seat limits, runs promotions and a QR-code loyalty program, and answers reviews. Guests use their own app to find a lounge nearby, book seats for events, buy and sell cigars on the marketplace and learn about cigars in the education module.

I did the whole thing alone: the design, the code of all three applications and the deployment.

The system is fully finished. The client is now running a waitlist at cigarloungeos.com, signing up lounge owners ahead of the rollout.

Visit live

In production

Screens from the app

A few captures from the live product. Captions tell you what you're looking at.

Live product site, cigarloungeos.comThree apps in one ecosystem: POS, back-office, member appDistributor marketplace with verified suppliersSubscription tiers, sold to lounge owners

Live product site, cigarloungeos.com

Whole lounge, 1 system
POS, back-office, guest app and marketplace, for the niche big POS players skip
Tobacco tax + age
Excise tax & age-verification audit top POS systems don't advertise
Humidor audit trail
Immutable inventory log, every change leaves a trace

What it does

Key capabilities

Tablet POS with a floor plan

Staff work on the room layout, with tabs that stay attached to tables as guests move from the bar to the armchairs.

Age check & tobacco tax built in

Every tobacco sale runs the age check and its separate tax line as part of checkout, not as an afterthought.

The humidor as live inventory

Stock is tracked in real time with an immutable audit trail, so the humidor always matches the books.

Owner back-office

Sales, inventory, events and staff in one view; what happens at the bar shows up for the owner right away.

Earning beyond the floor

Paid event reservations, promotions and a QR loyalty program turn one-off visits into regulars.

Guest app

Guests find nearby lounges, book events, buy and sell cigars on a marketplace and learn in an education module.

Multi-tenant by design

Each lounge on the platform gets its own isolated data, so it can be sold to many owners.

Compliance reporting

A tobacco-excise report and an age-verification audit (with a red-flag alert) in one place, ready when a regulator asks.

Reviews & reputation

Guests leave reviews and the owner replies, so reputation is managed inside the same system, not scattered across other sites.

Built-in AI assistant

A pocket concierge answers guests' questions about cigars, pairings and the lounge, so staff aren't tied up explaining the menu.

Tech stack

Core technologies

Specific packages and integrations are listed below.

FlutterDartDrift (SQLite)SupabasePostgreSQL + PostGISNext.jsTypeScriptStripe

Architecture

System layers

Web
  • Multi-tenant Next.js dashboard: inventory, events, promotions
  • Stripe-backed reservations and event payments
  • QR loyalty and review management for owners
  • Analytics from partitioned check-ins + hot/cold matviews
Mobile
  • Tablet POS, the lounge's operational core, from table order to payment and receipt; on an architecture that's easy to extend and test (Flutter, Clean Architecture)
  • Local-first: Drift/SQLite source of truth, Supabase sync in background
  • Outbox drain + catch-up pull with backoff, checkout fully offline
  • Hardware: receipt printer, barcode scanner, cash drawer
  • Consumer app: SMS OTP, geo search, marketplace, education
Backend
  • Multi-tenant PostgreSQL with row-level security on every table
  • PostGIS RPCs for nearby-lounge search and area counts
  • Partitioned check-in tables + materialized views for analytics
  • Edge functions for targeted push (FCM/APNs)
  • Immutable inventory audit log with optimistic locking

Libraries

Key packages

  • driftlocal SQLite source of truth
  • flutter_blocCubit state management
  • freezedimmutable entities & states
  • fpdartEither<Failure, T> error handling
  • go_routerrole-based routing & guards
  • pdf + printingreceipts & printable documents

Integrations

External services

  • SupabasePostgres, Auth, Storage, Edge Functions
  • Stripeevents, reservations & promotions payments
  • PostGISgeo search of nearby lounges
  • FCM / APNstargeted push notifications
  • Sentryerror tracking with breadcrumbs

Building something similar?

Write a few lines about the project, I'll reply with concrete notes and the date I can start.

Let's talk