ReviewOS

stacks/smakelo

Roadmap: Smakelo v1

#1
Open chris opened this 9 days ago ·
9 days ago

Smakelo is a local food marketplace demo built on Stacks: business discovery + reviews (the Yelp half), ordering + real courier delivery with a live tracking map (the DoorDash half), and table-QR dine-in ordering with tabs and a kitchen surface (the Toast half), covering restaurants, coffee shops, and farms in LA / Santa Monica.

It is a fully-implemented public demo: real listing data, real GPS from the courier's phone, real Stripe flows - but sandbox Stripe only, and it never launches commercially. Its second job is hardening Stacks itself: every framework gap gets fixed upstream, released, and consumed here.

Upstream (stacksjs/stacks)

App build order

  • #2 - Scaffold, config, CI tenant deploy
  • #3 - Domain models + migrations
  • #4 - Markets, businesses, hours, geo radius search
  • #5 - Reviews, photos, owner responses, favorites, claims
  • #6 - Menus, modifier groups, availability windows
  • #7 - Cart, checkout, orders, destination charges, fees + tips
  • #8 - Delivery dispatch + live tracking
  • #9 - Dine-in: tables, QR, tabs, split checks, kitchen board
  • #10 - Farms: shop mode + CSA subscriptions
  • #11 - Payouts + ledger
  • #12 - Consumer app UI
  • #13 - Merchant portal
  • #14 - Kitchen / POS surface
  • #15 - Courier app views
  • #16 - Admin dashboard extensions
  • #17 - Native courier app via Craft
  • #18 - Real-data seed pipeline (LA / Santa Monica)
  • #19 - Launch gate: demo guards, i18n QA, design pre-flight, deploy

Key stack decisions

  • Maps: ts-maps 0.3.2 (vanilla, in stx) + OSM raster tiles; QR: ts-qr-codes 0.1.8 server-side toSvg
  • DB: SQLite; geo search = SQL bounding box + haversine; search engine for text only
  • Realtime: @stacksjs/realtime (ts-broadcasting) on the existing order/delivery-route channels
  • i18n: en + de + nl shipped in v1; multi-market schema (USD/EUR, tax-added vs VAT-inclusive), LA enabled only
  • Merchant spine: Business belongsTo Team; portal at /partner; couriers invited, merchant self-delivery supported
  • Demo guards: noindex + robots block, demo banner, sandbox badge at checkout, no outbound email/SMS to real businesses
9 days ago

Status

Live and verified in production: https://smakelo.stacksjs.com

280 businesses, 268 of them real places from OpenStreetMap and hand curation, 12 invented partners that can actually take an order.

Done

#4 #6 #7 #8 #9 #14 #15Markets, businesses, geo search, hours, menus, ordering, delivery, tables and QR, kitchen board, courier console
#5Reviews, votes, owner replies, saved places, claims
#10CSA shares with pausing
#11Ledger, statements, payouts
#18250-listing OSM import
#2CI green (was red on every push)

Substantially done

  • #12 discover filters and search over all 280, order history, a sandbox checkout. Waiting on Stripe test keys.
  • #13 menu and hours editing with real teeth. Waiting on merchant accounts and Connect onboarding.
  • #19 i18n live in English, German and Dutch; design pre-flight run and passed.

Open

  • #16 admin dashboard extensions
  • #17 native courier app via Craft
  • #25 convert 13 client surfaces from vanilla DOM to stx signals (a real AGENTS.md deviation, flagged rather than passed over)

Two things need you

  1. Stripe test keys in .env (STRIPE_SECRET_KEY, FRONTEND_STRIPE_PUBLIC_KEY). The checkout says plainly that no provider is configured; the card form appears with no code change once they exist. assessKeys refuses live keys and has five tests.
  2. Two GitHub secrets for push-to-deploy: DEPLOY_SSH_KEY and DOTENV_PRIVATE_KEY_PRODUCTION (see #2). Both are credentials, so they are yours to add.

Upstream

stacks 0.73.0 carries the Driver→Courier rename and the new Stripe Connect module. Issues filed along the way: stacksjs/stacks#2382 through #2393, the last two found building the review and search flows.

9 days ago

Status

Live: https://smakelo.stacksjs.com — 280 businesses, 268 real from OpenStreetMap and hand curation, 12 invented partners that can actually take an order.

Complete

#4 #6 #7 #8 #9 #14 #15Markets, businesses, geo search, hours, menus, ordering, delivery, tables and QR, kitchen board, courier console
#5Reviews, votes, owner replies, saved places, claims
#10CSA shares with pausing
#11Ledger, statements, payouts
#18250-listing OSM import
#25All thirteen client surfaces on stx signals

Substantially done

  • #12 discover filters and search across all 280, order history, sandbox checkout, and an address book. Only Stripe keys outstanding.
  • #13 menu and hours editing that actually stops orders, not just hides cards.
  • #16 /admin: the demo's own promises checked against the database, plus listing curation that removes a business from search, map, page and ordering.
  • #17 position streaming with background recording and batch backfill; config/mobile.ts is the courier app. The device build needs Xcode.
  • #19 i18n in three languages; design pre-flight passed.
  • #2 CI green — it had been red on every push since the first one.

Waiting on you

  1. Stripe test keys. I checked ~/Code/stacks: all four .env* files decrypt the Stripe values to empty strings, and nothing under ~/Code has a key. Checkout says so plainly and needs no code change once they exist.
  2. Two GitHub secrets for push-to-deploy (#2), both credentials.

Upstream

stacks 0.73.0 carries the Driver→Courier rename and the Stripe Connect module. Fourteen issues filed along the way: stacksjs/stacks#2382 through #2394, the last three found while converting to signals.

Sign in to comment on this issue.