Contact Book a call

Method

What an SBD build passes before go-live

The standards, security checks, tests and handover documents an SBD build goes through before it reaches real users, and why each one of them exists.

Cover for “What an SBD build passes before go-live”, with the line: Four gates before real users: security, tests, handover and monitoring.
Four gates before real users: security, tests, handover and monitoring. Image: SBD.

New builds start from the same engineering foundation: a set of standards, checklists, templates and a runnable starter that carries what fourteen builds taught us. Most of it exists because something went wrong once. This is what a build has to pass before it reaches real users, and why.

The short answer

Before go-live, every build passes a security checklist (credentials rotated, no secrets in code or history, row level security tested live), automated checks and tests in CI, and a handover in which the client receives a runbook, a monitoring guide that says what is not monitored, a credentials list by name, a go-live record and an ordered list of open items. Accounts, code and data are in the client's name before we leave.

Standards with a reason behind each one

Our standards fit on a page: ten principles, each tied to a defect we shipped and then fixed. A few of them:

  • One definition per concept. If “active customer” means two things in two places, one of them will be wrong in a report.
  • Never claim more than happened. A job that ran is not a job that worked; logs and messages say exactly what was done.
  • Bound everything. Every loop, retry, page size, file size and model call has a limit, so a bad input cannot become a large bill or a stuck queue.
  • Fix the class, not the instance. When a bug appears, we look for every place the same mistake could exist and add a check that stops it returning.

Security before anything is public

The go-live security checklist is short and not optional:

  • Credentials rotated at go-live, so no key used during development reaches production.
  • No secrets in code or in history. A scan runs over the full git history, not just the latest commit, because a key deleted last month is still in the repository.
  • The right key in the right place. Server-only keys never appear in variables that reach the browser, and a guard fails the build if one does.
  • Row level security on every table that holds client data, checked with a live test that tries to read another tenant’s rows and must fail.
  • Webhooks authenticated by signatures in headers, never by secrets in URLs.

Tests that check the build, not just the code

Builds on the foundation have continuous integration that type-checks, tests and builds on each change. On top of that, where the build calls for them:

  • Audit scripts read the source and assert its shape: every protected route checks access, every outbound email goes through the one function that honours unsubscribes. These scripts are themselves tested by deliberately breaking the code and confirming they catch it.
  • Schema smoke tests confirm the database matches what the code expects after every migration.
  • Agent evaluations run on a schedule for anything that uses an AI model, against a fixed set of real cases, so a model or prompt change that lowers quality is caught before users notice.
  • Visual regression tests catch screens that changed when they should not have.

A handover the client can run without us

We treat handover as part of the build, not a goodbye email. The client receives:

  • A runbook, which we call the 2am document: what to do when something stops, written for the person who is on call, not for the person who built it.
  • A monitoring guide, including a list of what is not monitored, so nobody assumes an alert exists that does not.
  • Credentials by name, listing every account and key the system uses and where it lives, without the values.
  • A go-live record with what was verified and when.
  • Open items, ordered by how much they would hurt after go-live, so the next decision is obvious.

Ownership moves before we leave: the repository and hosting are transferred, and the database, domain, DNS and email were in the client’s name from the start. The client’s own team should be able to run the system from the README.

After go-live

Requests after launch are sorted into four kinds: a defect, where it does not do what was agreed; a refinement, a small change to something that works; an enhancement, a larger addition; and something new. Naming the kind up front keeps warranty, care plans and new work separate and fair. Care plans start at $50 a month.

Read more: AI and your data, Security and data, and Moving off Retool.

  • Security
  • Handover
  • Quality
  • Method

Keep reading

Cover for “A forward deployed engineer’s first 30 days”, with the line: Observe, rank, build, roll out. Then repeat.

Method

A forward deployed engineer’s first 30 days

Week by week: how an SBD forward deployed engineer observes the work, ranks what to change with leadership, ships the first builds and gets them used.

Cover for “How much should an AI agent be allowed to do?”, with the line: Read widely. Write narrowly. Spend with a cap. Escalate when unsure.

Systems

How much should an AI agent be allowed to do?

An agent with an unscoped token dropped a production database and its backups in nine seconds. Our rule: read widely, write narrowly, cap spend, escalate.

Cover for “Your Lovable app is probably public”, with the line: The anon key is in the browser. Without row-level security it is a master key.

Security

Your Lovable app is probably public

Over 170 Lovable-built apps had open databases in one disclosure. How the leak works, the three named breaches of 2026, and the twenty-minute check to run.

For teams that tried AI and nothing stuck

Get the hours back.

About 95% of AI pilots never reach the profit line. Ours start with the work your team still does by hand, and end when it is gone.

See how we work
A team of six gathered around one screen in an open-plan office
A discovery call with the people who own the process.

Cookie preferences

Choose what this site may use on your device. You can change this at any time from “Cookie settings” in the footer.

Strictly necessary

Keep the site working and remember the choices you make here. These cannot be switched off, and none of them track you.

Always on
What this includes (4)
NameProvider PurposeDuration
sbd-consentThis site Remembers your cookie choices12 months
Vercel Web AnalyticsVercel Inc. Counts page views in aggregate. Sets no cookie and stores nothing on your deviceNone
ticker-dismissed, sbd-note-offThis site Remembers that you closed a notice or language tipUntil the tab closes
sbd-voice-resume, sbd-voice-prefillThis site Carries a voice conversation across pages, only if you start oneUntil the tab closes

Analytics

Tell us which pages are read and where visitors leave, so we can improve them. IP addresses are anonymised and nothing is used for advertising.

What this includes (2)
NameProvider PurposeDuration
_gaGoogle Analytics (Google LLC) Distinguishes visitors with a random ID13 months
_ga_FPXDMQPRV1Google Analytics (Google LLC) Keeps the session state for this site13 months

Functional

Embedded services that set their own cookies. Without them the site still works; you get a link to open the service instead.

What this includes (1)
NameProvider PurposeDuration
Booking calendarCal.com Inc. Shows live availability and books the call on the booking pageSet by Cal.com

Advertising

Not used. This site has no advertising, retargeting or social media tracking, and we never sell data.

Not used

Questions about your data: hello@smallbaydigital.com