← Portfolio
Case Study · Product · Full-Stack

A form builder that ships a document,
not just a database row.

Lygotype is a self-hosted, open-source form platform built to handle the institutional workflows SaaS tools quietly refuse — conditional branching, Stripe-gated submissions, digital signatures, and document-mapped export. No per-response fees. No vendor ceiling. Yours to run.

RoleDesign + Full-stack build
TypeABreeze Studio product
Livelygotype.ca
Year2026
lygotype.ca/whvac-membership
LYGOTYPEFORM BUILDER
live preview · conditional logic
01What kind of membership are you applying for?
Industry professionalStudentCorporate
02Upload your trade certification
cert-redseal-2024.pdf
shown because answer 01 = Industry professional
03Membership fee
$120.00 CAD · pay with card
amount pulled from answer 01
01 — The brief

The form tools everyone knows were built for a different problem.

Typeform, Google Forms, Jotform — they were designed to collect email addresses and survey responses for marketing teams. They're polished, fast, and genuinely good at that job. But the moment you bring them into an institutional context — a membership application, a compliance workflow, a professional certification intake — they break in quiet ways.

Conditional branching exists but it's shallow. Payment collection is bolted on or paywalled. Data lives on someone else's server. There's no concept of a form producing a document — something with legal standing, a signature, a record that an HR department or insurer would actually accept. These tools were never designed for that, and it shows.

Lygotype started as an internal tool for the WHVAC-R membership application — a seven-step flow with three membership tiers, trade certification uploads, and tiered payment. Nothing off the shelf could do it without per-response fees, vendor lock-in, or compromise. So we built it, then kept going.

02 — The approach

Model the form as a graph of decisions, not a flat list of questions.

The core architectural decision was treating conditional logic as a first-class primitive rather than a settings-panel afterthought. Every question is a node. Every answer is an edge. The path a respondent takes through the form is computed at render time, not hard-coded into a branching tree that someone has to maintain separately.

This meant the builder could expose the full logic model visually while you work — not a hidden rules panel, but live-preview feedback that shows exactly which fields appear based on the answers selected. The same primitives that drive a three-question intake drive a seven-step certification application. Nothing about the platform changes; the form just gets deeper.

Architecture decision
Why SQLite instead of Postgres?

For the scale Lygotype targets — hundreds of forms, thousands of responses — SQLite running on the same container as the app is faster, simpler to back up, and eliminates the entire database-server dependency. You don't need a distributed database for a form tool you self-host. If a deployment outgrows it, the migration path to Postgres is straightforward.

Design decision
Why build a full theme system with 6 presets and 1,000+ fonts?

Most self-hosted tools look like developer tools. A form that asks someone for their certification documents or payment information needs to look like it belongs to the organization asking. Brand trust is load-bearing — a polished, on-brand form gets higher completion rates and fewer support emails. The theme system was non-negotiable.

Product decision
Why make Stripe credentials per-form, not per-account?

Agencies and organizations often need different Stripe accounts for different forms — a membership fee goes to one entity, a workshop registration to another. Per-form credentials means one Lygotype instance can serve multiple payout destinations without requiring separate deployments.

Free & Open Source — MIT License
03 — The build

One container. Zero dependencies you don't control.

The entire platform — React frontend, Express API, SQLite database, authentication, Stripe webhooks — runs in a single Docker container behind Caddy. Self-hosting is three commands. No managed database, no separate auth service, no subscription.

React 18ViteFramer MotionExpress 5better-sqlite3Better AuthStripeNodemailerDockerCaddy
bash
# Clone & run in 3 steps
git clone github.com/mangopaws/lygotype
cd lygotype

# Add your env vars
cp .env.example .env

# Launch with Docker
docker compose up -d

# That's it. You're live.
 Running at localhost:3001_
04 — First deployment

The WHVAC-R membership application: a seven-step conditional flow in production.

The first real-world deployment was the membership application for Women in HVAC-R Canada — a national member-based trade association. The flow has three membership tiers (Industry Professional, Student, Corporate), each with different questions, different document requirements, and different payment amounts. None of it is hard-coded; it all comes from the conditional logic the form builder exposes.

Industry Professional applicants see a trade certification upload that Student and Corporate paths skip. Payment amounts are pulled dynamically from the membership tier selection rather than duplicated into three separate forms. The entire seven-step application — including Stripe payment and a confirmation email — runs off a single Lygotype form.

7
steps in the WHVAC-R membership application
3
membership tiers, each with distinct question paths and payment amounts
$0
per-response cost — the entire platform is self-hosted on existing infrastructure
05 — The design work

Six themes that make the builder usable as a
brand tool, not just a data collector.

Self-hosted tools have a reputation for looking like developer tools. Lygotype ships with six production-ready themes, a full theme editor, 1,000+ Google Fonts, and nine background patterns. The goal was to make it possible for a non-developer to produce a form that looks like it was designed — not generated.

Every theme exposes the same full customization surface. Switching from Lygotype to Aurora to Matrix is one click; the live preview updates instantly. Organizations can upload their logo, match their brand colours, and publish a form that looks like an extension of their website rather than a third-party insert.

Lygotype
Aurora
Neon Crimson
Solar Flare
Ultraviolet
Matrix
06 — The wedge

Everyone competes on UX.
Nobody competes on legitimacy.

PDFs still dominate legal, healthcare, and government workflows for a reason: they produce a document artifact with standing. Not a database record — an actual document that a court, an insurer, or an HR department accepts as a formal submission. That entire market has never been touched by the polished form tools, because those tools were built for marketing, not compliance.

“The UX of a modern form builder, the legal standing of a PDF, with nothing in between.”

The roadmap takes Lygotype there: PDF and AcroForm import that maps form fields to document fields, submission export as a signed PDF, and digital signature as a first-class step in the form flow — not an integration, not an add-on. A form that produces a legal document is a categorically different product from a form that produces a spreadsheet row.

Need a tool built the way
your workflow actually runs?

Branding, web, and full-stack product work — built to own, not rent.

Commission the studio →Visit lygotype.ca
Next projectLuma Events →