Introducing dpkit Terminal and TypeScriptSee the announcement

Product interfaces

Mobile & desktop

Native apps sharing the web product's types and rules instead of forking them.

  • Expo
  • React Native
  • EAS
  • Electron

What it is

Native applications for phones and desktops that share their types, validation and business rules with the web product rather than reimplementing them.

Why we chose it

Expo and React Native let a small team ship both app stores without a separate native codebase per platform, and EAS handles the build and submission machinery that is otherwise a project of its own. Electron covers the desktop case where a tool needs the local filesystem. The reason this works is not the framework: it is that the schemas, the API client and the domain logic come from the same repository, so a change to a contract breaks the app at compile time instead of on a user's device.

What we build with it

Multi-platform products

One product across a consumer site, an operator dashboard, a mobile app and partner microsites — sharing one data model, so they cannot drift apart.

Full-stack web applications · Mobile & desktop · Typed APIs · Identity & access

Mobile app development

iOS and Android from one codebase, sharing types with your backend so the two cannot drift apart. Through the stores, or over the air.

Mobile & desktop · Typed APIs · Identity & access

Where we use it

Where a product is genuinely used on the move, and in desktop tooling that has to reach local files.
capturemycarro.app
The Mycarro car search engine as it runs today, searching across its live Portuguese listings.

Mycarrocar marketplace and dealer CRM

A used-car marketplace live in Portugal. Consumer search over listings gathered from across the market, a dealer back office for leads, inventory and invoicing, and a mobile app — built end to end.

we built

captureapplication.fairspec.org
The Fairspec site, the data exchange format we author, with its Python and TypeScript implementations.

Fairspecdata framework in TypeScript and Python

A specification for describing tabular datasets, with reference implementations in TypeScript and Python.

we author

Get in touch

Tell us what you need built.

We are a small team in Portugal, working London hours. A site, an app, an internal tool, or the platform behind them — start with a sentence about the problem and we will take it from there.

All technologies
Get a quote