What we build with.
Every technology on this page is one that runs in a product of ours, was used in a case we may describe, or one of us works in daily. Nothing is listed because it is fashionable.
This page is derived from the rest of the site, not written by hand — so it cannot list a tool nothing here uses, and it changes when the products do.
What our own products run on.
The strongest reference we have: products we operate ourselves, and the stack each one is built with.
-
Detectly
- Laravel
- PHP 8.4
- PostgreSQL
- Redis
- Chromium
- Hetzner (DE)
-
Diver
- Kotlin
- Vue
- PostgreSQL
- Hetzner (DE)
-
Deploy
Coming soon
- Go
- PostgreSQL
- Docker
-
Sentry
Coming soon
- Laravel
- PHP 8.4
- PostgreSQL
What we reach for first.
Seven things carry most of the work: what our products run on, what we would start a new project with tomorrow, and what we have run in production long enough to know the sharp edges.
-
01 Core
PHP
The language most of our backends are written in.
-
02 Core
Laravel
Our default backend: web, API, queues and scheduling in one place.
-
03 Core
Flutter
One codebase for iOS and Android when that is the better trade.
-
04 Core
Dart
The language under Flutter.
-
05 Core
PostgreSQL
The database under every product we run.
-
06 Core
Docker
Every environment we ship is a container.
-
07 Core
Hetzner
Where our own products live — German data centres, honest prices.
Languages & runtimes
Grouped by what it is for. Where a technology runs in one of our products or was used in a case, it says so — the rest is what we reach for in client work.
-
PHP
CoreThe language most of our backends are written in.
-
JavaScript
In every browser we ship to, and in the build tooling.
-
TypeScript
JavaScript with types, for interfaces that have to last.
-
Go
Small, fast services and CLIs — Deploy is written in it.
-
Kotlin
Native Android, and the shared core of Diver.
-
Swift
Native iOS when the platform itself is the product.
-
Dart
CoreThe language under Flutter.
-
SQL
Written by hand where the ORM would hide the cost.
-
Node.js
Build tooling, and the odd service that belongs in JavaScript.
Frameworks
-
Laravel
CoreOur default backend: web, API, queues and scheduling in one place.
-
Livewire
Reactive interfaces without leaving PHP.
-
Inertia
A Laravel backend with a Vue or React frontend, no API layer to maintain.
-
NativePHP
Desktop and mobile apps from a Laravel codebase.
-
Vue
The frontend of Diver and most of our client dashboards.
-
React
When the client team already lives in it.
-
Next.js
React with routing, rendering and deployment decided for you.
-
Flutter
CoreOne codebase for iOS and Android when that is the better trade.
-
React Native
Cross-platform apps for teams that already write React.
-
Jetpack Compose
Declarative UI for native Android.
-
SwiftUI
Declarative UI for native iOS.
Frontend tools
-
Blade
Laravel's templates — this site is built with them.
-
Tailwind CSS
Utility CSS: design decisions in the markup, one stylesheet to ship.
-
Alpine.js
A few kilobytes of behaviour where a framework would be too much.
-
Vite
Bundles and hot-reloads everything above.
Data & search
-
PostgreSQL
CoreThe database under every product we run.
-
MySQL
Inherited more often than chosen; we know it well.
-
Redis
Queues, cache and locks.
-
MongoDB
Document storage where the shape of the data is still moving.
-
pgvector
Vector search inside PostgreSQL — no second database.
-
Pinecone
Managed vector search at scale.
-
Qdrant
Self-hosted vector search when the data must stay in Europe.
-
Neo4j
Graphs, for the problems that are really about relationships.
-
Elasticsearch
Full-text search and log analytics at volume.
-
Kibana
The dashboards over Elasticsearch: logs, traces and the odd late-night query.
Infrastructure & delivery
-
Docker
CoreEvery environment we ship is a container.
-
Kubernetes
When a client already runs it; we do not introduce it.
-
Hetzner
CoreWhere our own products live — German data centres, honest prices.
-
AWS
For clients who are already there.
-
Azure
Common in Danish enterprise; we work inside it.
-
DigitalOcean
Simple cloud for simple products.
-
GitHub Actions
Where our pipelines run — this site is built by one.
-
GitLab CI
The same, for clients on GitLab.
-
nginx
In front of everything: TLS, caching, routing.
-
Cloudflare
DNS, edge caching and the first line against abuse.
AI & machine learning
-
LLM integration
Language models wired into real products, with guardrails.
-
RAG & vector search
Answers grounded in your own documents, not the model's memory.
-
Machine learning
Classic models where they beat a prompt: forecasting, classification.
-
GPU workloads
Provisioning and running inference on GPU hardware.
Quality & code style
-
PHPUnit
The test runner under every Laravel codebase we touch.
-
Pest
PHPUnit with a nicer pen.
-
Playwright
Browser tests that click through the real thing — Detectly runs on it.
-
k6
Load tests, so the ceiling is found before launch day.
-
PHPStan
Static analysis at the strictest level the codebase can bear.
-
Laravel Pint
One code style, enforced by a machine, argued about by nobody.
-
Rector
Automated refactoring and PHP upgrades.
-
ESLint
The same discipline for JavaScript and TypeScript.
-
Prettier
Formatting that nobody has to think about.
-
Chromium
The headless browser behind Detectly's checks and our Playwright runs.
Tell us what is not working.
An hour on a call, no charge and no deck. We will tell you honestly whether this is work we are good at — and if it is not, who to talk to instead.
- Reply within
- One working day
- First call
- One hour, free
- Notice period
- One month, either way
- Based in
- Odense & Copenhagen