Show HN: I spent 4 years bootstrapping a financial planning tool to 30k MAUs
projectionlab.comHey everyone! I'm back with an update on this post [0].
Last year, I quit my corporate job and went full-time on ProjectionLab, the long-term financial planning app I've been building for the past 4 years, which some of you may recognize. The decision to go all-in felt like a huge leap. But it was the right call, and it's been a good year.
And without the HN community, it would not have happened. As I mentioned last time [0], the feedback on my original Show HN is THE reason I'm still here working on this. I'm really grateful for that. And I hope the way I’ve grown PL -- staying bootstrapped and focused on users -- resonates with the early supporters who helped to shape it.
For now I'm still the only engineer, burning the candle at both ends, but luckily I'm not feeling burnt out myself!
It's been a fun and memorable year:
- 6,139 commits, 221,484 insertions, 116,255 deletions
- Shared my story on the ChooseFI podcast [1] (one of the original sources of inspiration for this project)
- Started building a team (2 team members for customer success, 1 leading growth & marketing)
- Doubled our customer base
- Took no external funding, keeping our interests as aligned with users as possible
Okay, but what did I actually do since last time? [2]
Here's a quick cross-section:
- Compare mode upgrades to explore what-if scenarios overlaid on the same chart with visual deltas/diffs
- Launched ProjectionLab for Employers [3]: offer PL as a benefit, or get your employer to pick up the tab
- Major tech stack migrations: Vue 2 -> Vue 3, Vue CLI -> Vite, Vuetify 2 -> Vuetify 3, Vuex -> Pinia, Jest -> Vitest, Firebase Namespaced API -> Modular API, Vike + SSG for marketing site
- Advanced visualization features (1-click-plot any metric, interactive event icons in charts, etc)
- Improved tax estimation & tax analytics
- Simultaneous editing on multiple devices
- MFA support
- Rebuilt the help center, added more educational content and YouTube tutorial videos
- Made it possible to book a 1-on-1 session for educational/training purposes
- Converted ~65% of the codebase from JavaScript to TypeScript
- And more! [2]
I never saw myself as an entrepreneur/founder type. But apparently I've now spent 4 years turning a side project into a real business.
I couldn't have done it without the initial support from this community, and I'd love to hear what you think of the updates and where you'd like to see things go from here.
--Kyle
[0] https://news.ycombinator.com/item?id=36849502
[1] https://choosefi.com/podcast-episode/projectionlab-kyle-nola...
Seems like a really cool product. Curious who your primary customers are for the lifetime license?
At first I was thinking it would be financial advisors that are technical enough to self host. But then I noticed most of the advisor features aren't included in the lifetime license.
$800 to self host for a personal use case seems kind of steep. What am I missing?
Good question, I’m curious as well. I love the self-host as a plan approach. And it make sence its a lifetime thing.. well maybe, is it a lifetime price for all future versions and features? Then maybe 800 makes some sense, but still, as you also say, a pretty hefty stack to drop as a private person. Also curious why not a lower price, eg 100 or whatever, but then only for minor updates (not major versions). I would think it would make more digestable private persons.
“For employers” as a perk is also a great idea!
Since I graduated college last year and started working full time as a software engineer this year, I’ve been trying to navigate the financial world and set myself up for financial success. I feel like I’ve been able to get into a good place with just reading and napkin math, but this looks like the perfect tool to get away from semi-qualitative to quantitative decisions. Will be checking out!!!!
Glad to hear it! If you see places where you feel there should be more educational scaffolding, just let me know.
Hi Kyle,
I'm a big fan of projectionlabs and have recommended it to a few people. It's the best tool I've found in this niche. You've done a great job on the UI to keep it simple while being extremely powerful and I love moving milestones around and seeing how things react.
The Tax side is where things get interesting/complicated. In my case, I'll be retiring in a different country to where I'm working and so the tax for drawdowns doesn't really work
Hey thanks! It's come a long way, but there is still a ton of additional functionality I'm excited to build.
Re: moving/retiring to a different country, would it potentially help to create a milestone to model this and add Tax Consequences to that milestone? That can be used to switch your tax config to a different international preset starting in a certain year, or apply new custom brackets/config, etc.
Yes, if it'd be possible to switch to another international preset on a milestone then that'd get us mostly the way there. I already have a milestone for the move where I sell current house, factor in moving expenses and buying car/house in retirement country.
I am not really sure the consequences of e.g. withdrawing from a US 401k while UK resident (as a US citizen). But treating the 401k as an analogous UK pension for withdrawal purposes would probably be correct enough for forecasting.
This looks great - congrats on launching it and getting it to where it is today. I launched a personal financial forecast tool a few years ago with a primary focus being to help people understand the draw down plan. This is not an ad for my product as it's now abandoned (hosting moved to my personal domain).
But I wanted to share it with you and see if it's a feature you think makes sense in ProjectionLab. Most tools show charts but I wanted more fidelity and accompanied the chart with a table.
Here's what it looks like: https://fiers.jmathai.com/forecast/6020f254b4e8c
Here is the logic: https://fiers.jmathai.com/article/how-it-works
Happy to chat more if you're interested - find my contact info in my profile.
This is neat! Do I recognize Chart.js? :)
There are a few customizable tables you can view in PL too (e.g. Chart Options > Table View), but I like the way you show deltas in table cells. That's a nice touch.
Any particular reason you stopped working on it?
> Any particular reason you stopped working on it?
I wasn't seeing a viable path to meaningful revenue. It looks like you may have (or are approaching) cracking that - awesome!!
> but I like the way you show deltas in table cells
That was mainly to convince myself that the higher level plan actually worked. I really needed to see the details and breakdown for my own sake.
> There are a few customizable tables you can view in PL too (e.g. Chart Options > Table View)
I haven't used PL before but I'll sign up today and check it out!
> I really needed to see the details and breakdown for my own sake.
I can relate! Making it possible to drill into each simulated year in detail was one of my design goals, and so many times during development/debugging I ended up needing those features myself to figure out what the heck was going on.
Nice, congrats!
Interesting decision, to put the self hostable version behind the lifetime plan. The strategy i see most of the time for self hosting is a free and open source 'community edition'.
May i ask how you prevent piracy?
I built a basic licensing system. But in the future I want to make that more robust, and then open the aperture wider so folks don't have to be on the one-time-payment plan.
I think it's tough to prevent 100% of piracy, but hopefully there aren't too many people out there keen to install cracked/pirated financial planning software and plug in their info.
Self-hosting is such a nice touch. For me it’s a requirement indeed. Thanks for making this possible!
On a different topic, may I ask how did you find your first users? This always fascinates me and TBH it’s not an uninterested question as I plan to start a business myself related to self-hosting.
Once you have a solid MVP, you could try a Show HN. Like I alluded to above, that original post made a big impact on my journey.