Empty Infrastructure tabs were a wall of teaching text — every empty
category showed a dashed-border explainer button in the rail, the
right pane carried multi-paragraph explainer prose for every category,
and the LLM/Stripe/Storage/Secrets details all included instructional
prose for things the user hasn't done yet. On a brand-new project the
whole tab was 90% explainer.
Removed (everywhere):
- Per-category dashed empty-state buttons under each category
header. Empty categories now show just the header + "0", which
is enough — clicking the header still opens the details pane if
the user wants it.
- Right-pane Overview lead paragraph ("Infrastructure here is
auto-discovered…").
- CategoryDetail lead paragraph (def.label + def.blurb) and the
"Examples" chip row.
- CategoryDetail "Nothing detected yet — set a matching env var…"
info box. Replaced with a one-word "None yet." line.
- LLM CategoryDetail BYOK explainer box.
- DatabaseDetail "Expand this database in the left rail…" hint.
- DatabaseDetail "Set <KEY> on any app or service…" prose.
Renamed the section "How apps connect" → "Connection env" and
kept just the env-var snippet.
- StorageDetail unprovisioned-state explainer paragraph + "you can
also provision it now" info box. Replaced with a one-word
"No bucket provisioned yet." empty.
- StorageDetail "Vibn-bundled storage is GCS exposed via…" prose.
Kept the env snippet under a renamed "Connection env" section.
- ProviderDetail Stripe webhook hint box.
- ProviderDetail bottom "Values aren't shown here…" note.
- SecretsDetail "Values are never read on this surface…" note.
Kept (functional, non-prose):
- All KvRows and code snippets.
- Stripe "Connect Stripe (coming soon)" CTA.
- Storage "View workspace bucket" CTA.
- Provider dashboard external-link buttons.
- Edit / Rotate icon buttons on secrets (still disabled, tooltipped).
Cleaned up the now-unused Info icon import. The category def's
blurb / examples / dashboards fields stay in the source — they're
still useful as tooltip / search seed material for a follow-up
iteration that puts the teaching content somewhere less in-your-face
(like a help drawer).
Made-with: Cursor