Let's talk

WORK

Things we've built.

Products, client work and open experiments. Commercial details are anonymized — the engineering is real.

TECHNOLOGY

A Haskell backend on PostgreSQL, a PureScript frontend, everything built with Nix — a typed stack from the database to the DOM.

ARCHITECTURE

Issues, kanban boards and time tracking behind a REST API with OpenAPI docs and webhooks — everything you need, nothing you don't.

INFRASTRUCTURE

Runs on NixOS hosts we operate ourselves — deployed from Git, monitored with Prometheus, backed up with restic and monthly restore drills.

[ PureScript ] [ Haskell ] [ Nix ] [ PostgreSQL ] [ REST API ] → www.merleapp.com

PROBLEM

A growing SaaS team with no ops department: a hand-configured VPS, deploys as a 40-minute ritual, and backups nobody had ever restored.

APPROACH

The stack moved to declarative NixOS, one flake per environment: atomic switches, automated restic backups, Prometheus + Loki with alerts that only fire when humans are needed.

RESULT

Deploys are one command and take seconds. Twelve months, 99.9%+ uptime, zero 3 a.m. surprises — and the team can read its own infrastructure.

[ NixOS ] [ Prometheus ] [ restic ] [ atomic deploys ]

PROBLEM

A backend where business rules lived in scattered validation code. Every change was a risk; tests asserted what the type system could have guaranteed.

APPROACH

Incremental rewrite of the core domain into Haskell — invariants in types, a typed servant API, the strangler pattern in front of the legacy system.

RESULT

Invalid states stopped compiling. Fewer regressions, faster feature work — and the domain is documented by the compiler, not by tribal memory.

[ Haskell ] [ servant ] [ PostgreSQL ] [ strangler pattern ]

MOTIVATION

We wanted the web projects we build to run on open hardware — a stack that is open down to the instruction set, not just at the application layer.

APPROACH

Our own custom NixOS built for RV64 servers: declarative configuration built and deployed from Git, updated atomically, reproducible end to end.

RESULT

Customer web projects run on RISC-V hardware we operate — open-hardware hosting with the same monitoring, backups and reliability as any production platform.

[ RV64GC ] [ NixOS ] [ Nix ] [ Linux ] [ open hardware ]

THE PRODUCT

An independent VPN comparison board: six providers scored on the four checks that matter — speed, streaming, privacy and price — with a use-case filter that narrows the board to the provider that fits how you actually browse.

ENGINEERING

Server-rendered Haskell with IHP, a Reflex FRP interface compiled to WebAssembly, PostgreSQL behind it — one typed stack from the database to the DOM, built and deployed with Nix.

TRANSPARENCY

Renewal prices sit next to intro prices, the test methodology is published, and affiliate commission never moves a score — every number on the board comes from checks we run ourselves.

[ Haskell ] [ IHP ] [ Reflex ] [ PostgreSQL ] [ Nix ] → www.vpnseeker.com

DESIGN

We manage the client's design — the visual identity and the website — iterated with them and served from a CMS their team can edit themselves.

PLATFORM

The website CMS, a payment system built on Stripe and a CRM, developed and integrated into one platform: content, customers, orders and conversations in a single place.

OPERATIONS

One partner for the whole chain — design, development, payments and customer relationship — built and operated by Novolambda end to end.

[ Design ] [ CMS ] [ Stripe ] [ CRM ] → www.latelierdusillage.fr

++

Have a difficult engineering problem?

Let's talk