Scope a build

Case studyIn production

Verified deployment

Veltrigen

Laboratory research supply · veltrigen.com

A catalogue only verified researchers can reach, the back office that runs it, and the servers under both — all handed over to them.

Scope a build like this Visit veltrigen.com (opens in a new tab)

The Veltrigen catalogue home page — purity stated up front, a certificate published for every batch, and a research-use-only notice
Plate № 01The catalogue, past the gate

The brief

What the business needed.

Veltrigen supplies reference materials to laboratories and independent researchers, for in-vitro research use only. Not to the general public — so the catalogue had to sit behind a verification step, and still be quick for the researchers who belong there.

Behind it, the business was being held together by a notes app, a pile of spreadsheets and a separate tool for stock — none of which talked to each other.

What we built

Three parts, one system.

One team carried all three.

  • The catalogue researchers order from Their own site, not a rented one — so there's no monthly platform bill, no cut of each order, and nobody else's rules about what may be listed.
  • The back office their staff work in Orders, stock, researcher accounts, certificates, invoices and email in one place — instead of a spreadsheet, a notes app and a separate stock tool.
  • Everything underneath it The servers and the process that puts changes live. If it all vanished tomorrow, it rebuilds itself from their own files.
A Veltrigen product page — size options, stock, and the batch certificate published underneath
Plate № 02A product page

What it does for them

What the owner actually got.

In plain terms. Every line of it is theirs.

What it means day to day

Who can see the catalogue
Nobody reaches it without confirming they're a qualified researcher first. The check is enforced by the server, not just hidden in the page.
Adding a product
Staff add it in the back office and the catalogue updates itself. Nobody calls us.
Proving what's in the vial
Each batch's certificate is published against the product it belongs to, so a researcher can check the analysis before ordering.
Taking payment
Cards and transfers both work, at their own rates. No cut of an order goes to a platform.
Knowing what's in stock
One count, shared by the catalogue and the back office. Selling something they don't have gets much harder.
Signing in
Researchers use a Google account, with their verification held against it. Staff sign in once and reach everything they're allowed to.
When something breaks
We're alerted before anyone emails to report it, and the site can be put back to a known-good state.
Making a change
Changes are tested on a private copy first, so a mistake never reaches the live catalogue.
What they own
All of it — the code, the researcher records, the servers, the domain names.

Keeping it safe

  • Researcher records are scrambled at rest and backed up every hour.
  • Staff logins need a second factor, and every admin action is logged.
  • An outside scan checks for weaknesses, so we aren't marking our own homework.
The technical detail

For anyone who wants the parts list: the catalogue is a self-hosted static site generator in Node, rebuilt whenever a product or article changes. The back office is React and TypeScript talking to a Fastify API over PostgreSQL (via Drizzle). Sign-in is self-hosted Authentik — Google for researchers, single sign-on for staff. The researcher gate is enforced at the edge and re-checked in the application, so it cannot be skipped by hitting a page directly.

It runs on AWS, described entirely in Terraform, and deploys through GitLab CI/CD with per-branch previews and smoke tests before anything merges. Prometheus and Grafana watch it; a Playwright suite exercises the checkout end to end.

Security: a private network of their own, encrypted volumes, hourly snapshots, GuardDuty and CloudTrail enabled, IAM with MFA enforced, plus a security review and external vulnerability scanning.

The other tools

The rest of their tools, connected.

Shipping, email, marketing, payments. Any of them can be swapped without rebuilding the store.

Connected to

  • Shippo · shipping
  • Resend · email
  • Omnisend · marketing
  • GA4 · analytics
  • Google Ads
  • Google · sign-in
  • Card
  • Zelle
  • Venmo
  • PayPal
  • eCheck

What that saves them

  • A whole day's shipping labels printed at once, straight from the order list.
  • Order confirmations, despatch notices and receipts send themselves.
  • Announcements reach only researchers who opted in, and go out from the same place the orders live.

Not locked to one payment company. If a better rate turns up, changing processor is a change of setting — not a new website.

What they own

Everything with their name on it.

No Stagg licence, no fee on a sale. The client owns 100%.

The Veltrigen console — order pipeline, revenue to date, stock warnings and recent orders in one view
Plate № 03The console they own

Veltrigen veltrigen.com In production

The software itself

Handed over whole. We licence nothing back to them.

Theirs to keep, change or take elsewhere

Servers & accounts

The servers it runs on

In their name, on their card. Theirs to run if we stopped tomorrow.

Including the researcher records and the domain names

In the line

The products behind it.

Five of the six, each scoped on its own.

Next step

Tell us what you sell.

Three steps in the scope builder, or one line by email.

Base
Utah — Mountain Time · replies within 24 hours