Mobile apps for iOS and Android, from one codebase.

We design and build mobile apps for iOS and Android from a single codebase, connected to the systems you already run, and we keep them working through every operating system update that follows.

A courier on his parked scooter checking the next delivery on his phone

What we build

Apps for your customers, for your people in the field, and for your own teams.

What goes into every app we build

Behind this work

IDClear, our identity verification product, runs on mobile and web and has an SDK for developers.

A woman holds her phone over an identity card on a desk to verify her identity in an app

Technology we use

We'll suggest the simplest set of tools that does the job, and that your own team can live with after we're done.

Cross-platform

  • React Native
  • Expo
  • Flutter
  • Ionic
  • Capacitor

Native

  • Swift and SwiftUI
  • Kotlin and Jetpack Compose
  • Objective-C
  • Java for Android

Languages

  • TypeScript
  • JavaScript
  • Dart
  • Swift
  • Kotlin

Back end

  • Node.js
  • NestJS
  • Python
  • Django and FastAPI
  • Firebase
  • Supabase
  • AWS Amplify
  • REST APIs
  • GraphQL

On the device

  • Push notifications
  • Secure storage
  • Biometrics
  • Offline sync
  • Maps and location
  • Camera and QR codes
  • In-app payments

Local data

  • SQLite
  • Realm
  • Cloud Firestore
  • WatermelonDB

Testing and release

  • Detox
  • Appium
  • XCTest
  • Espresso
  • Fastlane
  • TestFlight
  • App Store Connect
  • Google Play Console

Cloud

  • AWS
  • Azure
  • Google Cloud

What you get

Everything your team needs to run it, change it and understand it.

How a project runs

Nothing starts without your sign-off, and you'll see working software every two weeks.

A developer shows a client a working demo on his laptop while she points at the screen, with a hand-drawn project timeline in a notebook beside them
  1. 1

    A free call

    Thirty minutes to talk through what you need. If we're not the right fit, we'll say so.

  2. 2

    Discovery

    A few short workshops to agree goals, users, constraints and what success looks like.

  3. 3

    Design

    Screens you can click through and test with real users before we write any code.

  4. 4

    Build

    Two-week sprints. Each one ends with a demo of working software you can try and comment on.

  5. 5

    Launch

    Automated tests, security checks and a go-live plan with a way back if something goes wrong.

  6. 6

    Looking after it

    Your system moves onto a Managed Services retainer, supported by the people who built it.

What happens after launch?

You can keep us on to look after it. The people who wrote the code are the ones who keep it running, so nothing gets lost in a handover.

Common questions

Do we need separate apps for iOS and Android?
Usually not. One React Native codebase serves both, which keeps the effort down and the two versions in step.
Can you take over an app someone else built?
Yes. We start with a short review of the code, the release process and the risks, and tell you what we find before we take it on.
Can the app work where the signal is poor?
Yes. We design offline-first apps that save work on the device and send it when the connection returns.
How do you charge?
Build work is billed by the hour against an estimate we agree before we start, and you see hours and progress every sprint. Looking after a live system is a monthly or yearly retainer.
Where do we start?
With a free 30-minute call. If we're not the right fit, we'll tell you. If we are, we agree goals and an estimate before any work begins.

Tell us what you're working on

The first call is free and there's no sales pitch. We reply within 24 hours.