Services

What we build

We take on contract builds for companies that need production software shipped: web applications, mobile apps, AI features and multi-sided platforms. One senior team from first scope call to running product.

(01)

What we take on

Service areas

Four kinds of build. Under each, what it typically includes — and the products it has already been done in.

Mobile apps

Mobile apps built with React Native and Expo, with shared backends, release preparation and updates after launch. Explore our released iOS app and the instructor app being prepared for launch below.

Typically includes

  • App-store submission and release support
  • One codebase for both platforms
  • Backends shared with your web product
  • Over-the-air updates

AI & automation

AI that answers phones, processes documents and works inside your product — engineered like product, not demo, with usage metering and cost controls designed in from the start. We run real-time voice AI and LLM features in production, in our own products.

AI integration & automation

Typically includes

  • AI phone answering and reception (real-time voice)
  • Assistants grounded in your own documents
  • Document intake and back-office automation
  • AI features inside your existing product
  • Usage limits and metered billing

Marketplaces & SaaS

Two-sided platforms and subscription products: onboarding for both sides of the market, matching, and the payment machinery underneath — platform fees, payouts and billing.

Typically includes

  • Stripe Connect, fees and payouts
  • Subscriptions and credit billing
  • Multi-tenant data models
  • Admin and moderation tooling

Selling online

Custom ecommerce, with the work behind it.

A distinctive storefront, Stripe payments, subscription options and practical store tools. Explore the HairKhair build and how we scope a commerce project.

(02)

Engineering practice

How it's built

The parts users never see decide whether software survives contact with production. These are the same on every engagement.

  1. Authentication, not hand-rolled

    Identity runs on managed auth providers with proven implementations — sessions, password reset, social sign-in, multi-factor — and authorisation is enforced at the database layer with row-level security, not just hidden in the interface.

  2. Data handled like it matters

    Postgres at the core. Schema migrations under version control, automated backups, and strict separation between development, staging and production environments.

  3. Payments with the risk where it belongs

    Billing runs through Stripe, so card data never touches infrastructure we operate and PCI scope stays with the payment processor. Subscriptions, metering, platform fees and invoicing sit on those audited primitives.

  4. Typed, reviewed, deployed continuously

    TypeScript across the stack, review before merge, and continuous deployment with preview environments — the version demonstrated at the weekly demo is the version that ships.

  5. Secrets and access, least privilege

    Credentials live in managed secret stores, service keys get the minimum access they need, and admin access is scoped per person — the boring hygiene that prevents the exciting incidents.

The toolkit

Every name here is in a shipped product — nothing aspirational.

  • Web
    • Next.js
    • React
    • TypeScript
    • Tailwind CSS
  • Mobile
    • React Native
    • Expo
    • App Store
  • Data & payments
    • Supabase
    • Firebase
    • Stripe
    • Stripe Connect
  • AI & voice
    • OpenAI
    • Gemini
    • Realtime voice over WebRTC
  • Shipped with
    • Vercel
    • Web3Forms
    • DVLA vehicle lookup
    • Google Search Console