Internal

For owners and marketing.

Status

What the products are built with.

The tools behind each Haute project. Names a partner or vendor would recognize, without the wiring diagram.

Shared

01

The common pieces

Most of the product is written in TypeScript. Customer-facing screens use React. The look is the same on the site, the shop, and the app: Inter for text, Playfair Display for titles, Courier Prime for small labels.

  • Supabase — customer accounts, app data, and product photos
  • Render — hosts the websites, the API, and kitchen admin
  • Mapbox — address search and delivery maps
  • Resend — sign-in codes, order confirmation, and delivery updates
  • GitHub — source code, under the martlabs account
  • Stripe and Apple Pay — checkout on web and the app, test charges

What customers see

02

Marketing site

haute-marketing-website

The public site at horganic.com. Pages are built ahead of time and served as a static site, so there is no app login on this property.

  • React and TanStack Start
  • Vite and Tailwind
  • Motion for page animation, Lucide for icons
  • Node 22 to build it, Render to host it

03

Web shop

haute-web

The signed-in shop in the browser: menu, plan, cart, checkout, and account. Same jobs as the phone app.

  • React, Vite, and TypeScript
  • TanStack Router for pages, TanStack Query for loading data
  • Tailwind for layout, Motion for animation, Zod for form checks
  • Supabase for sign-in, Mapbox for addresses
  • Stripe for checkout, including Apple Pay
  • Hosted on Render

04

iPhone and Android app

haute-react-native

The Haute Organic app. One codebase ships to both phones. iOS testers use TestFlight. Android store listing is still waiting on Google.

  • React Native and Expo
  • Expo Router for screens, TanStack Query for data
  • Supabase for sign-in, Mapbox for addresses
  • Stripe for checkout, including Apple Pay on iOS
  • Skia and Reanimated for the richer motion on device
  • EAS Build for the installable iOS and Android binaries

Orders and the kitchen

05

Haute API

haute-api

The service the shop and the app call for the menu, orders, and deliveries. Kitchen admin uses the same service. It keeps its own catalog in Postgres. It does not use Odoo.

  • Bun and TypeScript
  • Hono for the HTTP API, with an OpenAPI page for staff
  • Supabase to check who is signed in
  • Supabase Postgres for the menu, stock, and orders
  • Stripe for checkout charges, Resend for order and delivery email
  • Docker image on Render, at dev.api.horganic.com

06

HO Kitchen

haute-admin

The staff screen for the day board, prep, packing, orders, and the menu. It only talks to the Haute API. A person is staff because their Supabase account is on an allowlist in the API.

  • React, TypeScript, and Tailwind
  • Bun serves the app
  • Supabase for staff sign-in
  • Docker image on Render, at dev.admin.horganic.com

07

Previous inventory service

haute-inventory-service

The earlier order API. It was the piece that talked to Odoo for products, stock, and deliveries. The shop and the app have moved off it. The service is still online, and it can no longer reach Odoo.

  • Bun and TypeScript
  • Odoo (hautedev2) as the old system of record
  • Hosted on Render

Accounts, mail, and this page

08

Sign-in setup

haute-auth-infra

Configuration for how people receive sign-in codes. It does not run the shop. It tells Supabase which text and email providers to use, and it holds the branded email layouts.

  • Terraform to apply the settings
  • Supabase Auth for the accounts themselves
  • Twilio Verify for text codes — currently down
  • Vonage was tried as a backup; status is unknown
  • Resend for email codes, with MJML email layouts

09

Status site

haute-status

This internal site. Plain pages, no app framework. Render hosts it at status.dev.horganic.com. Terraform creates the Render service, the same way it does for the marketing site.

  • HTML and CSS
  • Render static hosting