Skip to main content
Stackbastion

Labeled example, not a real customer

This is what your report looks like.

Every free audit runs the same 15 checks and comes back in the same format: plain-language findings, a score, and the three things to fix first. This is a representative example built from findings typical of early-stage AI-built apps, not a real audited customer. We don't have one to publish yet.

Production Audit Report

"ExampleCo" · example scenario

14/30

๐Ÿ”ด Red

ExampleCo's app has two urgent problems: a database key that anyone can find in the public website code, and no working backup if something goes wrong. Both are fixable this week. Everything else is in reasonable shape for an early-stage app.

#CheckStatusWhat this meansFix effort
1Frontend-bundle secretsFailYour database's full-access key is sitting in the public website code right now. Anyone who looks can read or change your data.S
2CORSWarnYour API accepts requests from any website, which is looser than it should be.S
3Rate limitingFailYour login page has no limit on repeated attempts.S
4Debug/stack-trace exposurePassErrors are shown safely, no internal details leak.โ€”
5Backup existenceFailYou have no working backup. If the database is lost, it's gone for good.M
6Authorization / RLSWarnMost data is protected per-user, but one table isn't.M
7TLS / HSTSPassYour site is served securely over HTTPS.โ€”
8Error/PII exposurePassError messages don't leak other users' information.โ€”
9Dependency CVEsWarnA couple of your software libraries have known medium-severity issues.S
10Uptime monitoringFailNothing tells you if the app goes down; you'd hear it from a user first.S
11Admin endpointsWarnYour admin page exists and loads, but only shows a login form, no data leak.S
12Client env-var misusePassNo secrets are mislabeled as public.โ€”
13Logging / PII retentionWarnLogs keep some personal data with no set deletion date.M
14DNS/mail (SPF/DKIM/DMARC)WarnYour outgoing mail has partial spam protection, not complete.S
15Bus factorFailOnly one person can currently deploy, fix, or restore this app.โ€”

Top 3 to fix this week

  1. Rotate the exposed database key today and move it server-side, before anyone finds it.
  2. Set up a real, tested backup. Right now, one mistake and your data is gone permanently.
  3. Add basic uptime monitoring so you find out about an outage before your users do.

How we'd fix all of this for you

Everything above except the backup and monitoring gaps is covered by Secrets & Access Lockdown (โ‚ฌ490, 3 business days). Since ExampleCo is also missing backups and monitoring, the Full Production Rescue + Migration (โ‚ฌ1,490, 7–10 days) covers all of it in one pass, plus the first month of managed hosting. See rescue services.

Real evidence, not a claim

We ran a real restore drill

"We test every restore" is easy to say and easy to leave unproven. Here's what an actual drill looked like, with infrastructure identifiers stripped since they're not the point:

  • Restored into a separate database, then checked row by row. Not a "the command didn't error" check. The newest backup was restored into its own scratch database and queried directly. Every table came back, including a larger production database where the biggest single table held over 33,000 rows, all present after restore.
  • Off-server by design. Backups ship automatically, three times a day, to separate cloud storage the moment they're taken, so a problem with the server itself can't take the backup down with it.
  • Encrypted at rest. Backups sit in Cloudflare R2, which encrypts every object with AES-256 automatically, on by default, with no separate step that could be left off.
  • A stale or missing backup gets flagged, not discovered later. Every backup run is checked against a 12-hour freshness threshold. If one goes stale or doesn't show up at all, it raises an alert on its own, the same day, not whenever someone happens to look.

This is a drill we've run on our own infrastructure, not a customer's live restore. We don't have a customer to show yet. We don't run point-in-time recovery today: a worst-case restore can lose up to the gap between two backup runs, not just seconds. If your app needs second-level recovery, ask us during the audit and we'll tell you straight whether our current setup covers it.

Get your own free audit

Report in 48 hours, yours to keep whatever you decide.