Product 01 / 04 · Local commerce platform

Portia

Your whole city, one app.

One place to order food, book a haircut, reserve a table, rent a car or request a quote from the businesses around you. Each merchant gets its own storefront on the web, couriers get their own app, and customers keep every order and booking in one account.

Web liveMobile coming soon
Also at portia.lu (opens in a new tab)
Portia web: AI search for local businesses on portia.ro
Portia app: live courier tracking on a map
For
Local businesses and the people in their town
Markets
Romania (Satu Mare) · Luxembourg
Platforms
Web · iOS + Android · courier app · merchant dashboard
Languages
RO · EN · FR

The problem

A dozen widgets, apps and phone calls.

Small businesses are spread across a dozen booking widgets, delivery apps and phone calls. Customers juggle accounts and apps; merchants lose margin and data to big platforms.

What Portia does

Portia puts ordering, booking and delivery for a whole town on one platform. Every merchant keeps a branded storefront and the relationship with their customers; every customer keeps every order and booking in one account.

Features

What it does

  • A restaurant storefront on portia.ro with its menu and order button
    01

    Branded storefronts

    Every business gets its own fast, SEO-friendly storefront on Portia: menu, services, rooms or cars, ready to order or book.

  • Live courier tracking with delivery progress
    02

    Ordering with live tracking

    Order for delivery or pickup and follow the courier on a live map, from the kitchen to your door.

  • Transport bookings: routes with prices
    03

    One booking engine

    Services, tables, hotels, rentals and transport share one engine with real availability, time slots and seats.

  • Portia home page with the AI search field
    04

    AI search

    Type “haircut tomorrow at 3pm” or “margherita pizza for tonight” and get matching offers from businesses nearby.

  • Document scan that fills in a form
    05

    Photo assistants

    Photograph a document to fill in a form, or photograph your car to get a quote from a real garage.

  • Order and booking history across businesses
    06

    Everything in one account

    Orders and bookings from every business in one history, with a live chat between customer, merchant and courier.

Also inside

  • Merchant dashboard (PWA) with roles, digital contracts and invoicing
  • Stripe payments
  • Courier app with fleet management and automatic order assignment
  • Table QR ordering for restaurants

Platforms

Where it runs

Store links appear here once the apps are public.

Tech stack

Web
Next.js 16ReactTailwind
Mobile
FlutterReact NativeExpo SDK 54
Backend
Hono REST APIGoogle Cloud RunPostgreSQLDrizzle ORMSupabase RealtimeFirebase
Edge + payments
Cloudflare WorkersStripeMapbox
AI
Google GeminiFunction calling

How we built it

Under the hood

Designed, built and run by DevFIRE WEB, end to end. The engineering choices that matter most:

  1. Real-time everywhere

    Orders and chat live in Postgres and are pushed through Supabase Realtime with row-level security; courier GPS streams through Firestore listeners.

  2. Thousands of storefronts, one app

    A Cloudflare Worker routes every merchant subdomain to one Next.js app. Pages are statically regenerated and invalidated on demand when a merchant edits a menu.

  3. One token set, two platforms

    A single design-token set is generated for the Next.js storefront and the Flutter app, enforced by a custom design linter: thousands of hard-coded colours removed, WCAG AA contrast repaid.

  4. AI with guardrails

    A staged vision pipeline (ingest, perception, resolution, proposal, execution) only proposes actions the platform can actually perform, and never gives diagnoses or cost guesses.

  5. Two countries, one codebase

    Separate Romanian and Luxembourg deployments run from the same code.

Build yours

Want something like this?

We built Portia end to end: design, mobile, web, AI and the backend behind it. Tell us what you want to make and who it is for. Otto reads every message personally.