TL;DR: After running a 60-day indie iOS dev experiment, I packaged my actual dashboard into a $39 Gumroad SKU. Below: what's inside, why someone would buy it, and the architecture that makes it useful.
Why a dashboard is the most leveraged indie tool
When you've shipped 4 iOS apps + 5 Gumroad SKUs + 15 dev.to articles + 7 Substack newsletters + 1 affiliate program, you have ~80 LIVE assets to track. Plus some 100+ paste-ready files in various states.
Manual tracking via INDEX.md fails at this scale. You need:
- A way to surface what's LIVE (and what's broken)
- A way to see real revenue per channel
- A way to mark items "done" without editing markdown by hand
- A way to one-click execute scripts on assets
That's what my dashboard does. Three panels:
- TODO: P0/P1 items the user hasn't done yet
- Check: ideas/roadmap to review
- Run: scripts with one-click execution
Plus aggregations: LIVE asset list, revenue tracker, categories grid.
What's actually in the SKU ($39)
The Gumroad SKU includes:
1. Flask backend (app.py, ~480 LOC)
- Manifest scanner walks file tree, parses YAML frontmatter from
.md/.py/.sh/.yaml - Validates required fields (id, title, category, priority, status)
- Aggregates into typed
Assetdataclasses - Exposes 5 REST endpoints:
/api/assets,/api/audit,/api/revenue,/api/refresh,/api/action
2. Three-panel UI (templates/dashboard.html)
- TODO panel with priority sort + ETA badges
- Check panel with ideas/roadmap split
- Run panel with one-click subprocess execution
- Categories grid (10 categories with color-coded badges)
- LIVE Just-Published panel (auto-shows assets with
live_urlfield) - Revenue Tracker (loads
/api/revenue)
3. Manifest schema (MANIFEST_SCHEMA.md)
- 5 required fields + 8 optional
- 10 categories enum
- 16 actions (preview, run-script, mark-done, etc.)
- Validation rules
4. Helper scripts
-
cleanup_old_done.py— cron-friendly archival of old done items -
daily_briefing.py— morning summary of last 24h activity -
verify_all_live_urls.py— URL audit script -
mark_published.py— bulk update assets withstatus: done+live_url
5. Architecture doc
- Why manifest-first beats hand-maintained INDEX.md
- How to extend with new asset types
- Cross-references via
depends_onfield - ICE score +
tier_price_usdfor monetization tracking
Why someone would buy this for $39
If you're an indie hacker with 20+ markdown files spread across categories, the dashboard saves ~30 min/day in INDEX maintenance. At indie hourly rate, that's $20-30/day saved. ROI: 1-2 days.
If you're shipping multiple Gumroad SKUs + content + iOS apps + B2B services, you need something. Either build your own (~10 hours), buy mine ($39 + 1 hour to customize), or live with the chaos.
The $39 price point is a deliberate "expensive enough that buyers commit, cheap enough not to be a budget question." Adapty 2026 data: digital products at $19-49 convert at 4-6%, vs $99+ at 1-2%.
What's NOT in the SKU
- The actual content of my AutoApp portfolio (your dashboard, your assets)
- Substack/dev.to API integrations (those need your own keys)
- Cloud hosting (you run locally on port 5000 or your own VPS)
- Customization beyond manifest-first (no GUI to edit, you customize templates)
Architecture decisions
Why Flask, not Next.js or FastAPI?
Flask is trivially deployable on Windows / macOS / Linux without runtime dependency hell. For a single-user indie tool, simplicity > performance.
Why YAML frontmatter, not SQLite?
Manifest-IS-the-asset is a single source of truth. SQLite would be another file to back up, another schema migration to handle. YAML frontmatter goes wherever the file goes.
Why no auth?
Single-user local tool. Auth is overhead for someone running on localhost:5000. If you deploy to a public URL, add Flask-Login + a single user.
Why no real-time WebSocket?
The dashboard refreshes on demand. Real-time is overkill for tools that change every few hours, not every few seconds.
What you'll customize when you buy it
Most buyers will:
-
Edit the categories enum to match their domains (mine has
gumroad-sku,ios-pricing, etc. — yours might havesaas-feature,client-onboarding, etc.) -
Set up
/api/revenuefor your channels (out of box: Gumroad / Substack / iOS / WeChat / B2B / note-com — yours might be Stripe / Lemonsqueezy / etc.) -
Adjust
revenue_aggregator.pyto pull from your actual revenue sources -
Replace the
live_urlrendering with your branding
That's ~1-3 hours. After that, the dashboard runs itself.
Source preview (free)
Before buying, you can see the manifest schema doc and the auto-discovery scanner architecture in my dev.to article on manifest-first design.
The full SKU at $39: AutoApp Dashboard on Gumroad. 30-day refund guarantee.
If you're shipping multiple indie projects in 2026 and want the orchestration layer, this dashboard is the layer. Plus the iOS Indie Launch Playbook ($19) covers the why behind the manifest-first pattern.
Top comments (0)