Tech Stacks
Boring tech.
On purpose.
Category
Frontend
The tools that end up on your users' screens. We default to the React ecosystem because the talent pool is deep and the trade-offs are well understood.
Next.js
↗The default for serious React applications.
Since 2020
React
↗The UI library we'd still pick today.
Since 2019
TypeScript
↗Strict mode, no exceptions.
Since 2018
Tailwind CSS
↗The CSS framework that finally got out of the way.
Since 2021
Vue.js
↗When the client already has a Vue codebase.
Since 2020
Redux
↗Still useful, still often overkill.
Since 2018
Motion
↗Formerly Framer Motion — now the React animation default.
Since 2021
Nuxt.js
↗Next.js, but for the Vue ecosystem.
Since 2021
JavaScript
↗The language underneath everything. Vanilla has its place.
Since 2018
HTML5
↗The substrate nobody credits until it's wrong.
Since 2018
CSS3
↗The language that finally grew up.
Since 2018
jQuery
↗Legacy maintenance, not new builds.
Since 2019
Bootstrap
↗Still everywhere. Still maintainable, if you know where to look.
Since 2019
Category
Backend
Quiet, boring, well-instrumented. We pick the runtime that fits the problem, not the resume.
Node.js
↗The default backend runtime for JavaScript shops.
Since 2019
Hono
↗The Express replacement we wish we'd had five years ago.
Since 2023
Laravel
↗When PHP is the right answer.
Since 2019
Python
↗The right choice when AI or data sit close to the product.
Since 2018
Django
↗The batteries-included Python framework that still earns its place.
Since 2019
Go
↗For services with hard latency budgets.
Since 2021
Ruby on Rails
↗Still shipping, still fast, still underrated in 2026.
Since 2020
PHP
↗The foundation most of the internet still runs on.
Since 2019
CakePHP
↗Legacy maintenance, not new builds.
Since 2020
Category
Mobile
Native when latency or platform integration matters. Cross-platform when shared code matters more. We have strong opinions on when to pick which.
Swift
↗Native iOS, when the detail of the platform matters.
Since 2019
Kotlin
↗Native Android done the modern way.
Since 2020
React Native
↗Cross-platform mobile when code sharing matters more than platform polish.
Since 2019
Flutter
↗Cross-platform with its own opinions.
Since 2021
Expo
↗React Native's missing toolchain, finally mature.
Since 2022
Firebase
↗The fastest path from zero to a mobile MVP.
Since 2019
Dart
↗The language Flutter runs on — and occasionally a standalone pick.
Since 2021
Progressive Web Apps
↗Installable web apps for when the App Store is overkill.
Since 2020
Category
Data
Postgres for almost everything. We reach for specialised stores only when the use case earns it.
PostgreSQL
↗The default database. For almost everything.
Since 2018
MySQL
↗When the client already runs it and there's no good reason to migrate.
Since 2019
Redis
↗The cache, the queue, the session store, the rate limiter.
Since 2019
pgvector
↗Vector search without a second database.
Since 2023
Supabase
↗Postgres with batteries — and the best DX in hosted databases.
Since 2022
Neon
↗Postgres with serverless branches — and actual cold start.
Since 2023
Category
Infra
The plumbing nobody sees but everyone depends on. Vercel for most product work, AWS or Cloudflare when sovereignty, compliance, or cost shape the answer.
AWS
↗The default cloud when compliance, scale, or sovereignty demand it.
Since 2019
Vercel
↗Where we host most Next.js applications we ship.
Since 2020
Cloudflare
↗Edge compute, CDN, and everything in between.
Since 2021
Docker
↗The container standard, still.
Since 2019
Terraform
↗Infrastructure-as-code, always.
Since 2020
GitHub Actions
↗The CI we'd pick if we had to start over today.
Since 2020
Category
AI
Practical AI that ships. We build for accuracy first, novelty second, and we always ship the eval suite.
Category
Design
Tools that talk to code. We design in Figma, plan in Linear, and prototype in the browser.
Category
Commerce
When the problem is selling things online, the best answer is usually not to build a storefront from scratch.
Category
Marketing
The measurement and ad platforms that sit alongside the product. We build the integrations, set up the tracking, and resist the urge to instrument everything that moves.
Google Analytics
↗The default product-analytics layer. Still, despite itself.
Since 2019
Google Ads
↗The tracking and integration work behind the campaigns.
Since 2020
Meta Ads
↗Facebook, Instagram, and the Conversions API plumbing.
Since 2020
WhatsApp Business
↗API engineering — not just ads. Chatbots, commerce, customer flows.
Since 2022
TikTok Ads
↗The Events API work behind TikTok-first campaigns.
Since 2023
X Ads
↗Niche but real — tracking and API work for X advertisers.
Since 2022
Stack we should know about? We're always learning.
Talk to us →