Hey Indie Hackers,
Quick build-in-public update from my solo SaaS, SubBuddy.
I just shipped v1.3.0, hit 50 users, and got my first paying customer (Lifetime plan).
This release was about one thing: reducing friction without compromising the privacy-first model.
SubBuddy still avoids bank connections by design. That tradeoff helps with trust, but it means UX has to be really sharp to make manual tracking feel worth it.
Pin subscriptions (starred items stay at the top)
Pause/Resume subscriptions without deleting
Unified status selector (Active / Paused / Canceled / Trial) to avoid conflicting states
Overview row click opens detail drawer (same behavior as subscriptions page)
Budget controls moved into the Monthly Spending card
Clear progress/remaining/over-budget feedback
Better dashboard prioritization of what matters (pinned + active first)
Per-subscription currency in create/edit/onboarding/import flows
Cross-currency display in dashboard rows/cards/details
Analytics totals converted into the user display currency
Renewal emails now include converted + source values when relevant
Full dashboard localization (English + Spanish)
Sidebar dark mode toggle
Sidebar collapsed state persistence
Duplicate subscription warning during add flow
Improved chart readability and responsive behavior
It sounds simple until you handle edge cases:
missing exchange rates
mixed source currencies
not lying with blended totals when conversion fails
I ended up enforcing strict validation + safer fallbacks instead of forcing every number into one total.
Lesson: financial UX needs correctness before convenience.
“Paused” touched more than I expected: filters, calendar visibility, spend timelines, preview sorting, edit forms, and reminders.
Lesson: one new state can ripple through every query and UI assumption.
Categories/currencies drift between systems unless there’s a single source of truth.
Lesson: shared constants save you from silent data mismatches.
I used to treat “manual entry” as the weakness.
Now I treat it as the wedge:
users who value privacy trust it more
users burned by flaky bank sync prefer explicit control
the product has to earn that tradeoff with faster input + better defaults
My first paying user choosing Lifetime reinforced that this positioning resonates with at least a subset of users.
50 users
1 paying customer (Lifetime)
Still tiny, but enough signal to keep pushing.
Better onboarding activation (time-to-first-value)
Faster import workflows (extension + parser improvements)
Pricing validation experiments (Free vs Monthly vs Lifetime)
If you were at this stage, what would you prioritize first:
onboarding/activation
pricing experiments
acquisition/distribution
I’d love to hear what worked for you around the 50-100 user stage.
If you want to try SubBuddy:
Demo: subbuddy.io/demo
Pricing: subbuddy.io/#pricing