Working software in two weeks.
Running on your own server.

Dashboards, automations and integrations built for how your business actually works. No per-seat licences, no vendor lock-in - you own what we build.

What we’ve built

Four systems running in production. Three of them are separate applications sharing one authentication layer - built as a platform, not as four unrelated projects.

Batch automation screen: client accounts selected for a weekly content run, with run mode and image options.
Batch run configuration: accounts, week range and run mode.

In production

Multi-tenant content platform

A content operations platform running multiple client accounts from a single codebase.

Each account has its own isolated brand rules, channel setup and content history, enforced by the system rather than by whoever is writing that day. Weekly content calendars are planned per account, content is generated against the plan, and approved output is passed to an automated publishing pipeline. Batch runs execute server-side and survive a closed browser. A human approval step sits between generation and publishing - the system handles assembly, a person decides what ships.

Six client configurations. Adding a new one is a form, not a code change.

Built with

  • Node.js
  • n8n
  • multi-tenant architecture
  • server-side job execution
  • self-hosted
Portal security settings showing two-factor authentication enabled, with options to change authenticator and regenerate backup codes.
Mandatory multi-factor authentication in the portal.

In production

Internal platform with centralised authentication

An internal platform where a central portal acts as the single identity provider for a suite of separate applications.

Each application verifies sessions and permissions against the portal server-side. None of them holds a user database, knows the portal’s signing secret, or can create or modify accounts - which means adding a new application to the suite is a matter of granting a permission, not building another login.

Multi-factor authentication is mandatory for every user, with authenticator apps and backup recovery codes; there is no access without it. Every security-relevant event is written to an audit log - logins, failed attempts, MFA events, role and permission changes, administrative actions.

Runs behind a reverse proxy with automatic certificate management, rate limiting at both the proxy and the authentication endpoints, and databases that are not reachable from the public internet.

Built with

  • Next.js
  • TypeScript
  • PostgreSQL
  • Docker
  • Traefik
  • self-hosted
CRM pipeline board with deals arranged in columns from new lead through to closed won, filtered by stage, pipeline and user.
Drag-and-drop pipeline board, filtered by stage, pipeline and user.

In production

Custom CRM

A CRM built around one specific sales process instead of a generic one.

It covers the full lifecycle of a contact - first outreach, logged calls and emails, movement through the pipeline, invoicing - across multiple separate client portfolios in a single instance, each with its own configurable pipeline stages and its own per-user access rights.

Alongside the usual list and detail views it includes a drag-and-drop pipeline board, a daily view of tasks and follow-ups tied to specific clients, invoice generation with a print-ready preview built without an external PDF dependency, and analytics covering pipeline distribution, revenue by month and contact activity over time.

It is wired into an automation platform for lead discovery: a search request is dispatched to a workflow, results return as importable leads, and every outgoing webhook is logged.

Built with

  • Next.js
  • TypeScript
  • PostgreSQL
  • Docker
  • self-hosted
A call script running as a flow diagram, with the current step highlighted and branch paths labelled by the prospect’s response.
Guided call flow: every branch is conditioned on what the prospect says.

In production

Sales call coaching system

A tool that runs sales call scripts live during the call and writes everything that happens back into the CRM automatically.

Scripts are built as visual flow diagrams - each node is one step of the conversation, and the paths between them are conditioned on what the person on the other end actually says. It runs in two modes: guided, which walks the caller through the tree step by step, and objection-only, for callers who already know the script and just need the right response surfaced the moment an objection lands.

The part that saves the most work is what happens afterwards, or rather what doesn’t. Call notes, pipeline stage changes and follow-up tasks are written back to the CRM from inside the flow, so nothing has to be typed up once the call ends. Meeting slots are offered and booked from availability fetched before dialling.

Contact details are pulled from the CRM in advance and injected into the script as variables, so the same flow reads differently for every prospect.

Built with

  • React
  • TypeScript
  • real-time speech recognition
  • CRM integration
  • self-hosted

What we build

  • Dashboards from your own data

    We connect the systems you already use - accounting software, CRM, spreadsheets, payment processors - and build a single view of what’s actually happening. Read-only by default.

  • Workflow automation

    The repetitive process someone on your team runs every week, built once and running on its own. Self-hosted, so there’s no monthly fee that scales with your usage.

  • Internal tools

    CRMs, client portals, admin interfaces. The software your business runs on, built for how you actually work instead of how a generic product assumes you do.

  • AI where it earns its place

    Content generation, classification, document processing - integrated into an existing process, not bolted on as a demo.

Why us

  • Speed

    A working version in one to two weeks, not a quarter. We build with AI tooling, which is why a project that gets quoted in months takes us days.

  • You own it

    Deployed on your infrastructure or ours, your choice. No per-seat licence, no platform that raises prices, no vendor holding your data.

  • Scoped before we start

    Fixed price, written scope, a defined finish line. You know what you’re getting and what it costs before anything is built.

  • Direct access to the person building it

    Two people, no account managers, no handoffs. You talk to the developer writing the code.

How it works

  1. Call

    Thirty minutes. You show us the thing you do manually. We tell you whether it’s worth building - including when the answer is no.

  2. Build

    Fixed price and a written scope up front. A working version in one to two weeks, and you see progress as it happens.

  3. Deploy and support

    We deploy it, walk your team through it, and keep it running. Ongoing maintenance is optional and priced separately.

Tell us what you do manually

Describe the process someone on your team repeats every week. We’ll tell you what it would take to build it - free, and honestly, including when it isn’t worth it.

Or reach us directly

We reply within one business day.