dot&dash
How we build

A short, plain-language reference for technical buyers. What we build with, where it runs, how it's secured, and how AI fits in — without the marketing gloss.

01

Development approach

Small senior teams, modern AI-native workflows. We write TypeScript end-to-end — React on the frontend, Node on the server, Postgres for the database — so the same people can move across the stack without handoffs. We ship in production from week one and iterate with the people who will actually use the software.

02

Architecture

A typed monolith by default: React, TanStack Router, server functions, Postgres. Simpler to build, cheaper to run, and easy to split later if it needs to be. When a workload demands it, we add queues, workers or edge functions — but only when it earns the complexity.

03

Hosting & deployment

Cloudflare, Vercel or your own cloud (AWS, Azure, GCP). EU regions by default. Every deploy is a Git push — reviewed, previewed, and rolled forward with a one-click rollback if needed. No manual servers, no snowflake environments.

04

Security

Row-level security in the database, principle-of-least-privilege everywhere, encrypted at rest and in transit. Secrets in a vault, never in code. Audit logs for sensitive actions. GDPR-first: EU data residency, DPAs with subprocessors, structured data-deletion flows.

05

Authentication

SSO with Entra ID (Microsoft 365), Google Workspace, Okta or Auth0. SAML and OAuth 2.0 supported. Role-based access, multi-factor by default, session policies you control. Magic-link and passwordless where the audience needs it.

06

Integrations

Microsoft 365, Google Workspace, HubSpot, Fortnox, Visma, Slack, Teams, SharePoint, Gmail, Stripe, Zapier, n8n, Salesforce, Pipedrive — plus most REST and GraphQL APIs. For legacy systems we write scripted adapters against exports, file drops or SOAP.

07

Databases

PostgreSQL as the primary store — proven, relational, and rich enough for most operational software. We layer in vector stores (pgvector) for AI search, and object storage for files. Migrations are versioned; every schema change is reviewed and reversible.

08

AI capabilities

OpenAI, Anthropic and open models depending on the task and data-residency rules. We use LLMs for classification, extraction, drafting, summarisation and search — always with human review where the decision matters. No training on your data; hosted models are called through data-processing agreements.

09

Maintenance

Most clients keep us on a light monthly retainer for changes, new integrations and the next workflow. Monitoring, alerting and dependency updates are included. When something breaks, we hear about it before your team does.

10

Ownership

You own the code, the data and the infrastructure. Everything lives in your Git organisation and your cloud account. No lock-in, no per-seat pricing. If we ever part ways, another team can pick it up on day one.

Want to see it applied to your business?

Book a discovery call →