{"slug": "show-hn-incomeos-income-from-many-small-sources-in-one-screen-and-an-mcp", "title": "Show HN: IncomeOS – income from many small sources, in one screen and an MCP", "summary": "IncomeOS, a self-hosted, privacy-first revenue tracker, aggregates income from Stripe, affiliates, marketplaces, ads, and manual entries into a single real-time dashboard, offering a free alternative to Baremetrics for indie hackers with multiple small income streams. The tool, deployable on Vercel in about five minutes, includes an MCP server for AI agents and costs $9/mo for Pro with a 14-day trial.", "body_md": "**One screen for every dollar you make.** Self-hosted, privacy-first revenue\ntracker that aggregates **all** your income streams — Stripe, affiliates,\nmarketplaces, ads, and manual entries — into a single real-time dashboard, in\nUSD, by **day / month / year**.\n\nA free, self-hostable **Baremetrics alternative** for indie hackers who run a\n*portfolio* of small income streams, not just one SaaS.\n\nScreenshots use demo data.\n\nYour revenue data lives in\n\nyour ownSupabase project. No third party ever sees your numbers. Connect your own keys, deploy free on Vercel in ~5 minutes.\n\nThere's a hosted version at ** app.incomeos.dev** —\nsame dashboard, same MCP, nothing to deploy. Sign in with an email link, connect\nStripe read-only in one click, done in about a minute.\n\nFree to start (unlimited manual sources, all charts, sync on demand).\n**Pro is $9/mo with a 14-day trial** and adds automatic daily sync, so the\nnumbers are already fresh when you open it.\n\nSelf-hosting stays free and fully featured — the hosted version exists for people who'd rather not maintain infrastructure, not to cripple this repo.\n\nTools like Baremetrics or ProfitWell are great — if you have **one** Stripe\naccount and $129+/mo to spare. But modern indie hackers earn from a dozen tiny\nplaces: a SaaS on Stripe, an Amazon affiliate link, a marketplace actor, some\nAdSense, a Gumroad template, a sponsorship. **Nobody aggregates the long tail.**\n\nIncomeOS does:\n\n- 🔢\n**Numbered income sources**—`#1 SaaS`\n\n,`#2 Amazon`\n\n,`#3 Sponsorship`\n\n… - 📅\n**Day / month / year** views, with**averages (pro-rated)** so even monthly-only sources show an \"avg per day\". - ⚡\n**Stripe on autopilot**— net (after-fee) revenue, auto-grouped per product. - ✍️\n**Everything else by hand in 10 seconds**— type a monthly total per source. - 📈\n**Month-over-month trend** so you watch each stream grow. - 🎯\n**Goals** with live \"you need $X more\" progress. - 🔗\n**Click a source → open its dashboard**(where you read the affiliate numbers). - 🔒\n**Single-password access**, your data in your own database.\n\n**Create a Supabase project**(free) and run`supabase/migrations/0001_init.sql`\n\nin the SQL editor.**Deploy to Vercel**(or`npm run dev`\n\nlocally). Set the env vars from:`.env.example`\n\n`SUPABASE_URL`\n\n,`SUPABASE_SERVICE_ROLE_KEY`\n\n`DASHBOARD_TOKEN`\n\n(your login password),`CRON_SECRET`\n\n`STRIPE_SECRET_KEY`\n\n(optional — a read-only restricted key is recommended)\n\n**Open the app**, type your`DASHBOARD_TOKEN`\n\n, hit**Sync**. Stripe products appear as sources automatically; add the rest with**➕ Add source**.\n\nA daily Vercel Cron (`vercel.json`\n\n) keeps Stripe fresh; the **Sync** button\npulls on demand.\n\n| Source | Status | How |\n|---|---|---|\nStripe |\n✅ automatic | Net revenue, grouped per product, zero config |\n| Amazon / affiliates | ✍️ manual | Enter the monthly total (one click) |\n| Marketplaces, ads, sponsorships | ✍️ manual | Same — numbered sources |\n| Gumroad, LemonSqueezy, AdSense, Plaid (bank) | 🛠️ roadmap | PRs welcome |\n\nEach source can hold a **link** to its own dashboard — clicking the card opens it.\n\nIncomeOS ships an **MCP server** so any AI agent (Claude, Cursor…) can read your\nincome on demand — *\"how much did I make this month across everything?\"*\n\n```\n{\n  \"mcpServers\": {\n    \"incomeos\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"incomeos-mcp\"],\n      \"env\": { \"INCOMEOS_URL\": \"https://your-incomeos.vercel.app\", \"INCOMEOS_TOKEN\": \"your-token\" }\n    }\n  }\n}\n```\n\nTools: `get_income_summary`\n\n, `get_sources`\n\n, `get_month`\n\n, `log_monthly_income`\n\n.\nSee [ mcp/](/Perufitlife/incomeos/blob/master/mcp). Your data stays in your own instance — the MCP just calls\nits API with your token.\n\nNext.js 16 (App Router) · Supabase (Postgres) · Recharts · Tailwind v4 · Vercel. No multi-tenant server, no SaaS lock-in — it's just your data and your keys.\n\n-\n**Income MCP**— ask your AI agent*\"how much did I make this month?\"*✅ - More connectors (Gumroad, LemonSqueezy, AdSense, PayPal, Plaid)\n- Weekly email digest\n- CSV import/export\n\nMIT — see [LICENSE](/Perufitlife/incomeos/blob/master/LICENSE). Built for indie hackers, by indie hackers.", "url": "https://wpnews.pro/news/show-hn-incomeos-income-from-many-small-sources-in-one-screen-and-an-mcp", "canonical_source": "https://github.com/Perufitlife/incomeos", "published_at": "2026-07-30 00:38:16+00:00", "updated_at": "2026-07-30 00:52:06.455622+00:00", "lang": "en", "topics": ["developer-tools", "ai-tools", "ai-agents"], "entities": ["IncomeOS", "Stripe", "Supabase", "Vercel", "Baremetrics", "ProfitWell", "Amazon", "Gumroad"], "alternates": {"html": "https://wpnews.pro/news/show-hn-incomeos-income-from-many-small-sources-in-one-screen-and-an-mcp", "markdown": "https://wpnews.pro/news/show-hn-incomeos-income-from-many-small-sources-in-one-screen-and-an-mcp.md", "text": "https://wpnews.pro/news/show-hn-incomeos-income-from-many-small-sources-in-one-screen-and-an-mcp.txt", "jsonld": "https://wpnews.pro/news/show-hn-incomeos-income-from-many-small-sources-in-one-screen-and-an-mcp.jsonld"}}