TypeScript · Vue 3 · Node.js · MongoDB · Docker

SaaS Applications & Websites

A backend that scales, a frontend that ships, and architecture you will not regret in six months. Marketing sites that load in under a second.

3 SaaS products shipped 100/100 Lighthouse sites Clean architecture from day one You own the repository

What Gets Built

The expensive SaaS mistake is not the first version, it is the rewrite eighteen months later. Everything here is built so the second version is an extension, not a restart.

Architecture and system design

Protocol-first API design, clear domain boundaries, dependency injection, and a storage layer you can swap. Boring on purpose, because boring survives.

Backend APIs and databases

Node.js and TypeScript services with MongoDB or Postgres, Redis for queues and caching, background workers for the slow stuff. Typed end to end.

Authentication and payments

Email, OAuth and magic-link sign-in unified by account, roles and permissions, Stripe subscriptions with webhooks handled correctly the first time.

Vue 3 frontend

Component-driven UI with a shared design system, accessible by default, fast on mobile. Dashboards, admin panels and customer-facing apps.

Deployment and monitoring

Docker images, CI on GitHub Actions, deploys to Hetzner via Coolify or to Cloudflare, health checks, error tracking and alerts. You get the infrastructure, not a vendor lock.

Marketing websites

Vanilla HTML, CSS and JavaScript when a framework is overkill. 100/100 Lighthouse, sub-second loads, structured data, and the SEO and GEO plumbing this site runs on.


How It Works

Product work moves in visible increments so you can change direction with information instead of hope.

  1. Define the smallest useful version

    A scoping call to find the core loop: what a user does, what they get, what they pay for. Everything else is deferred, not deleted.

  2. Architecture and fixed quote

    A short written design: data model, API surface, auth, payments, hosting. Priced as a fixed quote with a phased option if the scope is large.

  3. Build in visible increments

    Working software in staging every week, with the repository in your hands from day one. Real users can start before the last feature lands.

  4. Launch and handover

    Production deploy with monitoring, backups and a runbook. Documentation for the next engineer. Retainer available for ongoing development.


Proof, Not Promises

Parafunnel: a monitoring dashboard for lead-gen agencies that consolidates every client funnel and alerts when conversions drop. Vue, Node.js, MongoDB, deployed on Hetzner.

ChillThat: an AI-powered tool that rewrites hostile feedback into constructive language. Vue frontend, LLM backend with schema-validated output.

This site: vanilla HTML, CSS and JavaScript, no framework, no build step beyond a small prerender script, structured data on every page, llms.txt for AI crawlers. The tool landing pages and guides are the SEO and GEO playbook applied to my own products.


Who This Is For

Best fit is a founder or team with a validated problem who wants the first version built properly rather than quickly and then again.

Founders with a validated idea

You know who pays and why. You need the product built without the tech debt that forces a rewrite at the first sign of traction.

Agencies and consultancies

A productised service that needs a real application behind it, or an internal tool that has outgrown spreadsheets and no-code.

Small teams with a legacy codebase

Something works but nobody wants to touch it. Incremental modernisation with tests, typing and a deployment pipeline, without a big-bang rewrite.

Anyone who needs a fast site

A marketing or product site where speed, accessibility and search visibility matter more than a CMS full of plugins.


FAQ

How long does an MVP take?

A focused first version with auth, one core workflow, payments and deployment typically takes several weeks to a few months depending on scope. The scoping call produces a phased plan so the first usable increment ships early rather than everything shipping late.

Why TypeScript, Vue and Node.js?

One language across the stack, a large hiring pool for whoever comes after me, mature tooling, and predictable performance for the workloads most SaaS products have. Go and Rust are used where a component genuinely needs them, not by default.

Can you take over an existing codebase?

Yes. The first step is a read-through and a written assessment: what is sound, what is risky, what to change first. Modernisation happens incrementally behind tests, so the product keeps shipping while it improves.

Who owns the code?

You do, from the first commit. The repository lives in your GitHub organisation and infrastructure runs in your accounts. There is nothing to hand over at the end because it was always yours.

What does hosting cost?

Usually less than people expect. A typical early-stage SaaS runs on a single Hetzner server with Coolify and managed backups for a small monthly fee, plus Cloudflare for DNS and edge. Costs scale with usage, and the architecture is designed so scaling is a configuration change, not a rewrite.

Do you also do the marketing site?

Yes, and usually in vanilla HTML, CSS and JavaScript. It is faster, cheaper to host, easier to make accessible, and easier for search engines and AI crawlers to read than a framework site with client-side rendering.


Got something worth building?

One email. One call. Written scope and a fixed quote.


Workflow Automation · Web Scraping · Shopify Development · All services