Custom web application development
Web applications built from the root up
We build web applications for working with a lot of data: tables, dashboards and maps. We write the interface and the server behind it. We also take over existing code and make it safe to change.
Web development
What we build: React and Node.js web applications
01
Tables, dashboards and maps
We build interfaces for large amounts of data: paginated tables with row virtualization, filters kept in the URL, dashboards and map views. Aggregation and filtering run on the server, and the browser renders only the page the user is looking at.
Stack
- React
- TanStack Table
- TanStack Virtual
- React Query
- Google Maps
02
Backend, APIs and databases
We write the server side in Node.js: the API, the data model and the PostgreSQL queries. We also connect other systems, such as accounting software or background file processing.
Stack
- Node.js
- NestJS
- Fastify
- Prisma
- PostgreSQL
03
Taking over existing code
We take over an application that another team or an AI tool built fast, and improve it in small steps as part of regular tasks. We add tests, lint rules and CI that checks types and the build on every change.
Stack
- TypeScript
- Jest
- Playwright
- ESLint
- GitHub Actions
04
Accessibility to WCAG
We make the application work with a keyboard and a screen reader and bring it to WCAG 2.1 AA. Automated axe checks and screenshot tests watch every change, so the look does not shift by accident.
Stack
- React
- Playwright
- axe-core
Process
How we work with code
No rewrites from scratch
We improve the code bit by bit inside the tasks already in progress. New features keep shipping.
A safety net first
Before we move any code, we write end-to-end or screenshot tests. They show us when something changes that we did not mean to change.
The server does the heavy lifting
We aggregate and filter data on the server and load the next page of a table in advance. Dashboard modules load and fail independently, so one slow query does not block the whole page.
Experience
Applications we have worked on
We don't name clients. Each entry gives the type of product and our work on it.
01
911 call analytics, US
The analytics module of a 911 platform: large data tables with server-side aggregation and row virtualization, dashboards and map views. One page built end to end, from the Postgres and Databricks queries to the interface.
Stack
- React
- TypeScript
- Google Maps
- PostgreSQL
- Databricks
02
Legal e‑billing, US
Full stack on Next.js, NestJS and PostgreSQL. We took over the AI assistant: its tools run as the signed-in user and load only when the model asks for them, which cut the fixed context per request by an estimated 60%. Also unit tests and CI for the web app.
Stack
- Next.js
- NestJS
- PostgreSQL
- Vercel AI SDK
- Gemini
03
Enterprise headless CMS
Accessibility of the whole product to WCAG 2.1 AA, as part of a team of frontend engineers, with axe checks and visual tests in Playwright.
Stack
- React
- Playwright
- axe-core
04
Grammar-checking SaaS
Most of the application, backend included: an API on Fastify, Prisma and PostgreSQL, a Crawlee crawler, and checks routed by language to LanguageTool or GPT-4o-mini.
Stack
- Fastify
- Prisma
- PostgreSQL
- Crawlee
05
Pharmatech
A new React frontend structure, code moved over in small steps, and end-to-end tests.
Stack
- React
- TypeScript
Frequently asked questions
Can you take over an app another team or an AI tool wrote?
Yes. We take over an application that another team or an AI tool built fast, and improve it in small steps as part of regular tasks. We add tests, lint rules and CI that checks types and the build on every change.
Will you rewrite the application from scratch?
No. We improve the code bit by bit inside the tasks already in progress, so new features keep shipping. Before we move any code, we write end-to-end or screenshot tests that show us when something changes that we did not mean to change.
Which technologies do you build with?
We build interfaces in React and the server side in Node.js with NestJS or Fastify, with data in PostgreSQL through Prisma. For large tables we use TanStack Table and TanStack Virtual, and we test with Jest and Playwright.
Can you bring our application up to WCAG?
Yes. We make the application work with a keyboard and a screen reader and bring it to WCAG 2.1 AA. Automated axe checks and screenshot tests watch every change, so the look does not shift by accident.
Technologies
- Interface
- React, TanStack Table, TanStack Virtual, React Query, Google Maps
- Server and data
- Node.js, NestJS, Fastify, Prisma, PostgreSQL
- Quality and tests
- TypeScript, Jest, Playwright, ESLint, GitHub Actions, axe-core
We also work on AI integration for applications and Shopify development.
Contact
Let's talk about your application
Write to us, tell us what the application does and what needs to change, and we will agree on the next step.
What to put in the message
- What you want to build or change.
- The systems and data you already have.
- Constraints, such as a deadline and who will maintain it.