Custom Development
Web apps, mobile apps, dashboards, internal tools. React, Next.js, React Native, Power Apps — picked for the job, not the hype.
What we actually build
The phrase "custom development" gets used to sell everything from a WordPress theme to a 50-developer SAP migration. We do not do either. We build:
- B2B SaaS products — dashboards, internal tools, vertical SaaS for niche operations.
- Operations platforms — dispatch, scheduling, fulfillment, AP/AR, document intake. See MeatLogix for an example.
- Customer-facing apps — web and mobile with auth, billing, push, offline, payment.
- Power Apps + Dataverse — when Microsoft Power Platform is the right call.
- Marketing sites + CMS — including the site you are reading right now.
- Hybrid — web + mobile + integrations + agents, when the product needs all four.
We do not typically take on:
- Pure UI redesigns with no backend or product work.
- Themes / templates / template implementation.
- WordPress / Wix / Squarespace builds.
- Single-page "brochure" sites with no functional requirements.
How we pick the stack
The biggest mistake we see in agency-built products is technology chosen because someone on the team wanted to use it. We pick per project, based on four questions:
- Where will this run, and who maintains it? If your team uses Microsoft 365 and your IT will only sign off on Azure, custom Node.js on AWS is a non-starter.
- What is the actual user surface? Web, mobile, internal tool? Tablet-first or desktop-first? Online or offline-tolerant?
- What integrations dominate the architecture? Microsoft-heavy points to Power Platform; SaaS-heavy points to TypeScript on Firebase or Supabase.
- What does the operational reality look like in a year? Will you own this in-house or pay us to operate it? Pick the stack the long-term operator can actually run.
Our common defaults:
| Surface | Default stack |
|---|---|
| Web product (B2B SaaS, marketing site, dashboard) | Next.js 16 + TypeScript + Tailwind + shadcn/ui + Firebase or Supabase |
| Cross-platform mobile | React Native + Expo + Tailwind via NativeWind + same backend as web |
| Internal tool for Microsoft 365 org | Power Apps + Dataverse + Power Automate + custom connectors |
| Operations / dispatch platform | Next.js + Postgres + Cloud Functions + realtime via Supabase |
| Marketing site with CMS | Next.js + MDX (or Sanity) + Vercel or Firebase App Hosting |
Production-grade is not optional
Most "MVPs" that fail in production fail because they were never actually production-grade. They were demos that got pushed live. We treat production-grade as table stakes, not as an add-on. Every product we ship includes:
- Authentication — email, OAuth (Google, Microsoft), magic links, or SSO via SAML/OIDC where the customer needs it.
- Authorisation — proper role-based access control, not "everyone is admin."
- Audit logs — who did what when, server-side recorded, queryable.
- Billing — when applicable, via Stripe with proper webhook handling, idempotency, retries, and dunning.
- Email — transactional via Resend or Postmark, templated, deliverability-tuned.
- Observability — Sentry for errors, structured logs, dashboards.
- Tests — unit, integration, e2e where it pays back. We do not test for the sake of testing.
- Accessibility — WCAG AA minimum, ARIA where it adds value, keyboard nav, screen-reader passes.
- Performance — Lighthouse > 90 on relevant routes. LCP < 2.5s. CLS < 0.1.
- Deploy pipeline — CI/CD on every push, preview environments per PR, one-click rollback.
- Runbook — what to do when it breaks.
If we skip any of these we tell you we're skipping it and why.
Our process
Discovery — 1 to 2 weeks
We sit with the operational owner, the technical owner, and (where possible) two or three real future users. We map the product idea against the four stack questions above. We identify the riskiest assumptions and the cheapest experiments to validate them. We write a product spec — not a 50-page PRD, but a clear scope document including non-goals.
Prototype — 3 to 4 weeks
A working slice on real data with thin scaffolding. End-to-end, but only for the happy path. Real auth, real database, real backend. The prototype gets shown to real users; we adapt based on the feedback before committing to the full build.
MVP — 6 to 12 weeks
Production engineering. All the table-stakes items above. Roughly 80% of the planned feature surface, in deployable slices. The MVP goes to a controlled cohort first — usually 10 to 50 users — before opening up.
Iterate — ongoing
Weekly or biweekly releases. Continuous improvement on metrics that matter. Quarterly architecture reviews. We can keep building on retainer or hand off cleanly to your team.
Our opinions, briefly
TypeScript everywhere. Type safety end-to-end is the single biggest productivity multiplier we have ever experienced. We will not build a product in untyped JavaScript or Python unless there is a strong reason.
Server components over SPA-everywhere. Next.js App Router with React Server Components is the default. We use client components only where interactivity demands them.
SQL-first for relational data, NoSQL for everything else. Postgres for relationships, transactions, joins. Firestore for documents, realtime, offline-friendly. Both can be right; the answer is rarely "MongoDB."
Tailwind + shadcn/ui for design systems. It is not the fanciest stack. It is the one we and our clients can maintain in two years without remembering anything.
Power Platform for Microsoft-heavy orgs. It moves fast for the right shape of problem. Our PowerApps to production post covers where it stops working.
Pricing — the honest version
| Engagement | Duration | Investment |
|---|---|---|
| Discovery sprint | 1–2 weeks | €4,000–8,000 |
| Prototype (one product slice) | 3–4 weeks | €12,000–25,000 |
| MVP | 8–12 weeks | €40,000–90,000 |
| Full v1 platform | 16–24 weeks | €100,000–250,000 |
| Retainer (continuous build + ops) | Monthly | from €4,000/month |
We bill weekly during the build for transparency. You see exactly what you are paying for, and you can pause the engagement at any phase boundary.
What we will not do
- Take on a project where the customer cannot articulate the problem they're solving.
- Quote a multi-month build from a one-hour intro call.
- Build a product on a stack the operating team can't run.
- Skip auth, audit logs, or observability because the timeline got tight.
- Cargo-cult the latest framework just because it shipped this quarter.
If you have an idea that needs technical work and you want a fast take on the right shape, send a note. One paragraph is enough. We respond within one business day.
Frequently asked questions
Related work
Code & Integration Agent
API plumbing, schema mapping, OpenAPI client generation, internal tooling
Mastery
AI-powered learning platform on Google Generative AI
MeatLogix
Cold-chain dispatch, multi-topology routing, offline-graceful
From PowerApps to production: when low-code stops scaling
PowerApps is excellent for many Microsoft 365 organisations until it isn't. It hits ceilings around concurrent users, complex business logic, performance, and developer ergonomics. The migration path is rarely 'rewrite everything in Next.js' — it's hybrid: keep PowerApps for what it's good at, move the parts where it's failing to TypeScript on Cloud Run.
Hiring an AI development agency: 12 questions to ask
Twelve questions that separate serious AI dev shops from demoware vendors. Asks about evals, observability, code ownership, provider lock-in, references, and what they'll refuse to do. If a vendor can't answer cleanly, walk.
The AI Development playbook: how we ship agents in 6 weeks
We ship production AI agents in 6 weeks by being opinionated about tools, refusing to skip discovery, building evals from day one, and treating code agents as a force multiplier. This is the playbook — what we use, what we refuse, and why it lands consistently.
Ready to scope custom development?
A discovery call is the fastest way to know if there's a fit.