Driftboard is live but invisible to Google, and payments are still in test mode.
Driftboard's core product works end to end, but the public marketing pages render an empty div to crawlers, Stripe is running live-looking test keys, and there's no analytics or error monitoring installed. None of these are hard fixes — most are one AI prompt plus a five-minute dashboard change — but shipping in this state means paid traffic would hit a site search engines can't read and a checkout that can't actually charge anyone.
Top 3 priorities
1Fix server-side rendering so Google can index the homepage and pricing page.
2Switch Stripe from test mode to live mode before sending any paid traffic.
3Install analytics and error monitoring so launch week has real signal.
Flow Check scorecard
FindableAt riskP0 · Fix first
Homepage and pricing page return an empty root div to crawlers — Google sees no content.
TrustworthyImprovedP1 · Fix next
HTTPS, privacy policy, and a visible contact method are all in place. Still on the builder subdomain.
FunctionalAt riskP0 · Fix first
Stripe publishable and secret keys are both test-mode. Checkout completes but no real charge occurs.
MeasurableNeeds confirmationP1 · Fix next
No analytics, error monitoring, or uptime checks found. Launch week would fly with zero signal.
LaunchableOn trackP2 · When you can
Custom domain, pricing page, and a changelog all exist. Social preview image is missing.
CompliantImprovedP2 · When you can
Privacy policy and cookie consent are present. Signup form collects email without linking to the policy.
43 checks accounted for
Passed16Action required11Needs access10Needs client confirmation5Not applicable1Unable to verify0
Detailed findings
Finding 1P0 · Fix first
Homepage renders an empty div to search engines
Fetching the homepage without JavaScript returns a nearly empty HTML shell — just a root div and a script tag. Google can execute JavaScript, but it queues those pages for a second, delayed rendering pass, and often gives up. Right now the homepage and pricing page are effectively invisible to search.
What we found
curl of the homepage HTML shows <div id="root"></div> with no visible text content.
Page title and meta description are generic placeholders inherited from the Vite template.
No content appears in Google's cached HTML view of the page.
What "fixed" looks like
Homepage and pricing page return readable, route-specific HTML on first load (server-render or static export).
Each public route has a unique, descriptive title and meta description.
Copy-ready prompt for your AI tool
Our homepage and pricing page currently render as an empty div because they're client-only React. Convert these routes to server-rendered or statically pre-rendered pages so the initial HTML response includes the real heading, body copy, and navigation — before any client-side JavaScript runs. Keep all existing interactivity working after hydration. Add a unique <title> and meta description per route based on its content.
How to verify it worked
View page source (not devtools) on the homepage and pricing page — real text should be visible, not just a div and script tag.
Google's URL Inspection tool in Search Console shows readable rendered content for both routes.
Finding 2P0 · Fix first
Stripe is running in test mode
The checkout flow uses Stripe test-mode keys (pk_test_ / sk_test_). Customers can enter a card and see a success screen, but no money ever moves. This is invisible during a manual click-through — everything looks like it worked — which is exactly why it gets missed before launch.
What we found
Publishable key in the client bundle begins with pk_test_.
Test-mode banner is present on the Stripe-hosted checkout page.
A completed test checkout does not appear in the live Stripe dashboard.
What "fixed" looks like
Live-mode Stripe keys are used in production and stored as environment variables, never committed to the repo.
A real low-value test charge appears in the live Stripe dashboard and can be refunded.
Copy-ready prompt for your AI tool
Our Stripe integration is using test-mode keys in production. Move the Stripe secret key and publishable key to environment variables if they aren't already, replace them with live-mode keys, and confirm the checkout flow, webhook endpoint, and webhook signing secret all point to live mode. Do not hardcode any key in the source code.
How to verify it worked
Publishable key in the browser network tab begins with pk_live_.
A small real test purchase appears in the live Stripe dashboard and can be refunded.
Finding 3P1 · Fix next
No analytics or error monitoring installed
There's no analytics package (GA4, Plausible, PostHog) and no error monitoring (Sentry) anywhere in the client bundle. If launch-day traffic shows up, there's currently no way to see how many people visited, where they dropped off, or whether the app is throwing errors for real users.
What we found
No analytics script tags or SDK calls found in the page source or network requests.
No error monitoring SDK (Sentry, Bugsnag, etc.) found in the client bundle.
What "fixed" looks like
Pageview analytics is installed and firing on every route.
Error monitoring is installed and captures unhandled client and server errors.
Copy-ready prompt for your AI tool
Add analytics and error monitoring to this app before launch. Install an analytics tool that tracks pageviews across all routes, and an error monitoring tool that captures unhandled exceptions on both client and server. Wire both up using environment variables for any required keys, and confirm events show up in each tool's dashboard.
How to verify it worked
A test pageview appears in the analytics dashboard within a few minutes of visiting the site.
A deliberately thrown test error appears in the error monitoring dashboard.
Finding 4P2 · When you can
No social preview image configured
Sharing the homepage link in Slack, X, or iMessage shows a blank card with no image — just the title and URL. This is a small thing, but it's often the first thing a prospective user or investor sees, and a blank preview reads as unfinished.
What we found
No og:image meta tag found in the homepage <head>.
Pasting the homepage URL into a link preview tool returns no image.
What "fixed" looks like
Every key public page (home, pricing) has a unique 1200x630 Open Graph image.
Sharing the link in Slack or X shows the branded image, title, and description.
Copy-ready prompt for your AI tool
Add Open Graph and Twitter Card meta tags to the homepage and pricing page, each pointing to a 1200x630 social preview image that includes the product name and a one-line description. Confirm the tags are present in the server-rendered HTML head, not injected only client-side.
How to verify it worked
Pasting the homepage URL into a social link preview tool shows the branded image.
og:image meta tag is present in the page's server-rendered HTML source.
Finding 5P2 · When you can
Signup form collects email without linking to the privacy policy
The signup form asks for an email address but doesn't link to the privacy policy anywhere near the form. The policy exists elsewhere on the site — it just isn't connected to the moment where personal data is actually being collected, which most privacy frameworks expect.
What we found
Signup form has no privacy policy link, checkbox, or disclosure text near the email field.
Privacy policy page exists and is reachable from the site footer.
What "fixed" looks like
Every form that collects personal data links to the privacy policy near the point of collection.
Copy-ready prompt for your AI tool
Add a small privacy policy link directly below the signup form's email field, e.g. 'By signing up you agree to our Privacy Policy', linking to the existing /privacy page. Apply this to every form on the site that collects an email address or other personal data.
How to verify it worked
Privacy policy link is visible directly beneath every form that collects personal data.
Full audit coverage
Every check promised in the Builtiflow Launch Readiness Audit, grouped by pillar. Nothing is left off this list — checks we could not verify are marked accordingly rather than skipped.
Data-processing terms for payments/user dataAI-assessed
Needs client confirmation
No data-processing addendum found for the payment processor or hosting provider.
Post-deployment verification checklist
Work through this after your AI tool ships the fixes above.
View page source on the homepage and pricing page — real text is visible, not just an empty div.
Publishable Stripe key in the browser network tab begins with pk_live_.
A small real test purchase appears in the live Stripe dashboard and can be refunded.
A test pageview appears in the analytics dashboard within minutes of visiting the site.
Pasting the homepage URL into a social link preview tool shows the branded image.
Privacy policy link is visible directly beneath every form that collects personal data.
Want us to fix these instead of you?
The Launch Fix Sprint covers every P0 and P1 finding in this report — SSR/indexing, live Stripe mode, analytics and error monitoring — fixed and verified by us, typically for $1,200–$3,500 depending on scope.