[logs.so × Bolt]
The part your builder can't show you.Add server-side logging to your Bolt app with one prompt.
Bolt builds it. logs.so tells you if it actually works — sales, signups, and the failures Bolt can't show you.
Unlimited events · 7-day history · No card
[then: silence detection]
The worst bug makes no sound.
The cron that skips a night, the Stripe webhook that stops firing, the agent that hangs mid-run. None of them throw an error, so nothing pages you. Once Bolt wires your events, logs.so learns each channel's rhythm and pages you when a channel that should have moved, didn't.
The feed is free: unlimited events, 7-day history. Silence detection is Pro, $19/mo. Read the receipts: Your LogSnag feed looks fine. Production still died.
[how it works]
Three steps. One of them is pasting.
- [01]
Sign up and grab your keys
Create a free account. Free forever. No card. Onboarding hands you an API key and workspace ID.
- [02]
Paste the prompt into Bolt
Your agent creates the logging helper and instruments every success and failure path. You write nothing.
- [03]
Watch the feed
Sales, signups, and failures stream in live, on desktop and your phone.
[the prompt]
Copy it, paste it, done.
Drop it into Bolt and let your agent do the wiring, failure paths included.
Add server-side event logging to this app using logs.so.
1. First, study what this app actually does. Read the codebase and map its real
features and the moments that matter in THIS product, not a generic checklist.
Every app is different: a photo tool cares about renders and exports, a
marketplace about listings and orders, an AI app about generations and credits.
Write a short list of the events worth knowing about before you log anything.
Signups and payments are the baseline, not the whole story.
2. Send events by POSTing JSON to https://api.logs.so/v2/log with header
Authorization: LOGS_SO_API_KEY (read from an environment variable, never
hardcode it, never expose it to the browser).
Body: { "project": "<WORKSPACE_ID>", "channel": "<channel>", "event": "<short title>",
"description": "<details>", "user_id": "<user email/id>",
"tags": { <relevant ids/amounts> } }
3. Create one small server-side helper (e.g. lib/logsso.ts) wrapping this call.
It must never throw, never block the response (fire-and-forget), and no-op
when LOGS_SO_API_KEY is unset.
4. Instrument the events you found in step 1, SERVER-SIDE ONLY:
✅ Product moments → channel "product": the app's own key features being used,
named in the product's own language. Plus signups → "signups" and
payments/subscriptions → "revenue".
❌ Failures, these matter most → channel "failures": every catch block in API
routes and server actions, webhook handlers that fail or fail signature
verification, declined payments, cron jobs that throw or don't complete,
failed external API calls.
5. Prefix every event name with an emoji: 💰 revenue, ✅ success, ❌ failure, ⚠️ warning.
6. Always set "user_id" to the user's email or id. That's how the feed ties each
event to a person. Put amounts, plan names, and object ids in tags. Just don't
log secrets, passwords, tokens, or card numbers.
When done, list every file you changed and every event now tracked.
Note: This is a Bolt project: add the logging helper to the Node server code and put LOGS_SO_API_KEY in the server .env file.[the feed]
Then your feed tells the whole story.
Not just the wins. The failed payment and the dead webhook too.
New sale
richard@piedpiper.com just upgraded.
New signup
mark@thefacebook.com created an account.
Payment failed
jjj@dailybugle.com, card declined.
Webhook failed
stripe, timeout after 10s.
[questions]
Good questions.
- Where does my API key live in a Bolt app?
- In the server .env file. The prompt tells Bolt to read it from the environment — it never ships to the browser.
- Do I need to write any code?
- No. Paste the prompt into Bolt and it wires up the logging helper and the tracking calls — including the failure paths — for you.
- Will this slow my app down?
- No. Events are fire-and-forget: the helper never blocks a response and silently no-ops if the key is missing.
[ship it]
Know your Bolt app actually works.
Unlimited events, 7-day history. No card. One prompt to install.
Also building with something else? It's just HTTP, see the docs