FounderOS is a single-user tool for people running their own products, not a multi-tenant SaaS asking third parties to authorize an app. That distinction is why every integration is credential-based — an API key or personal access token — instead of OAuth. It's simpler for you, and it's simpler for us: no app review, no redirect URI allow-lists, one less thing that can silently break.
Adding a product
From Products, click Add product and give it a name, a domain, and a color. That's the whole form — everything else fills in once you connect a service.
Connecting a service
Open the product's Connections tab and pick a service. Every adapter asks for exactly what it needs and nothing more:
- Stripe — a restricted API key with read access to subscriptions and charges.
- Vercel — a personal access token, scoped to the team the project lives in.
- Sentry — an auth token with
project:readon the relevant project. - Supabase — a Management API personal access token, used to pull project health and real database size, storage, and auth MAU numbers.
Every credential is AES-256-GCM encrypted before it's written to the database, and decrypted only inside server-only route handlers — the key never reaches your browser.
What happens next
The moment you connect, FounderOS runs a test() call against the real API before saving
anything — so a bad key fails immediately instead of silently syncing nothing forever. Once
saved, it syncs automatically, and you can trigger another sync any time from the Connections
tab or the portfolio-wide Integrations page.
From there, your Overview widgets stop showing placeholders and start showing your actual MRR, your actual open issues, your actual deploy history — scoped to that one product, rolled up into the portfolio view on Today.
No dashboard to build. No spreadsheet to maintain. Just the numbers, where you already are.