15
37 Comments

How I found product-market fit the hard way after a failed v1 launch

Origin story

I built SplitMyExpenses on nights and weekends until June 1, 2023. I launched v1, after I quit my software engineering job at Facebook, and it flopped. I felt I wasted 100s of hours of my time overnight. I went back to the drawing board and re-built my site around the most requested customer feedback: group support. I spent two months tearing it down and rebuilding it. I launched v2 in December 2023.... it's now killing it!

Comparing v1 in June to v2 today: 30x user sign ups, 50x daily active users, 100x monthly page views. It was a BIG gamble to spend more time on it after it flopped, but I learned a valuable lesson:

  1. Listen to your customers: v1 is never the perfect product
  2. Ship quality software: people will notice

SplitMyExpenses V1 vs V2: stats

  • New users per day: ~1 → 30+
  • Daily active users: ~3 → 120+
  • Page views per month: ~200 → 22k+
  • Paying users: 1 → 25

How it all started: day one

It first started out in early 2021 where I routinely felt frustrated that I had to do manual effort to collect my monthly expenses, find everyone's Venmo who I had to split with, and charge them for anything I paid for in groups (dinners, travel, etc.).

Engineer mind kicks in, you know how it goes, scratch your own itch! I created a Laravel repo on Feb 4, 2021 and pushed my FIRST commit at 10:30 PM (side project life). I initially started on CSV import and splitting interface.

I built out the version 1.0 slowly for many years on the side, sometimes spending 2-4hrs a week after work, other times spending 4-8hrs. Weekends had some time too, depending on how interested I was on working on it (fun or boring stuff). I'd take large breaks and just go off my self passion.

The project was old and I had to go through many modernizations... I went from Vue 2 → 3, webpack → Vite, Laravel 8 → 10, JS → TS and a lot more.

How I imagined v1

Version 1.0, in a nutshell, was the tool for me . It encompassed my original workflow: import expenses via CSV, add "friends" as Venmo contacts (or CashApp/PayPal) and go through every expense and choose to split it or not. Then charge any users split against and the end of this flow. Honestly, it did a great job at that use case, but as I quickly realized after launch, groups are the real hit... don't worry, I'll explain more later!

Version 1.0 launched the week after I left Facebook: June 5th, 2023! I did 2 years at Facebook as an iOS engineer, working on Messenger. I knew I wanted to start my own company ever since I got out of college years ago, so it was just a matter of: WHEN?!

TLDR: There is never the perfect time, just go for it. I made the leap and quit and started my own one person company and released SplitMyExpenses v1 the Monday following my final day at Facebook.

Launch day for v1

As many indie hackers dream of, I had hoped it would POP the heck off on launch day and following weeks.

Surprise! It did not pop off like I wanted it to.

I spent a lot of my free time after work and on weekends building this passion project of mine, I thought it worked well, so I assumed others would want it too. I got less than ~100 users in 6 months, and only two paying customers...

It's funny looking back on it, since I told myself I would not touch it after v1 release, since I'd building this project for some time.

Moving onto another product post launch

Boy was I wrong... After launch, I switched to creating a new Chat AI iOS app. My goal was to create a clean, robust, native iOS AI chat experience. I wanted to make a good looking website and a good looking iOS app for my company, since I was a iOS engineer my entire professional career.

TLDR: OpenAI is damn good at what they put out and they have a talented roster of iOS folks, so it's hard to compete there. Chatty launched and did okay, but it's hard to keep up and compete there. So, what's next for me?

Listening to user feedback

Well, while I was developing Chatty Butler, I got so many requests from my small user base asking for groups support on SplitMyExpenses. I didn't want to be Splitwise and didn't like their interface or approach. So I dragged my feet and said nope! V1 is my take on it... enjoy it or don't use it!

BUT as the weeks went on, it only got more and more obvious from user feedback, each new user echoing the previous users feedback. Even my extremely small paying user base was asking for it!

So much so, that I spent a week in the middle of Chatty Butler development, to prototype what a "groups" world would look like in SplitMyExpenses. It's a complete change to the database schema, split math, charge logic, user account setup, and literally all the UI. You don't spend 3 years building something to fit a specific workflow to change it, drastically, over night to support a completely different approach.

My prototype went well, the core logic worked, however it had a completely busted UI, but everything else "worked". I launched Chatty Butler at the end of September and immediately jumped back to SME to see if I can build out this new "groups" version. How long would it take, now that I can spend my 9-5 on it, compared to before (nights & weekends)...? This was an exciting thought, building software all on my own, I can spend SO much time on it compared to before...

V2: Re-building the site for groups support

I created a branch for V2 and hacked away for 2 months (Oct & Nov 2023). I thought it would take 1 month, but I literally had to gut everything, while keeping existing user data. Not that I had many users, BUT I didn't want a broken experience for them. Sometimes I wonder if it would have been faster to start from scratch... that on top of balancing my desire for perfection was difficult to choose when to launch.

Come December 1st, 2023, I merged this gigantic V2 branch of 350 commits into my main branch and deployed it (yes it would have been better splitting this up, but it was a complete re-write basically).

It was stressful since all my table names changed and I had a large migration script of ~1k lines to do inserts, updates, and deletes to get the data in the shape of the "new system".

Everything went well (phew) and I got it deployed without too many hiccups or errors. I then let it soak for about a week and launched on Product Hunt for SplitMyExpenses 2.0 on December 7th, 2023.

V2 launch result

It went WAYYY better than v1. Not only did I get many many more users to sign up, the feedback was much more positive. Half thanks to Splitwise for putting up a premium paywall on daily expenses in middle of October. The other half since it FINALLY had group support, which people were begging me for. It was now a much more social app, where as v1 was just you and your "friends" were simply Venmo usernames, off the platform, hence no group splitting support nor solid user acquisition funnel.

Around that time in December, people were dying to leave Splitwise and I had a modern solution, roughly 3 years in the making, so it felt pretty good to release it right then.

Post V2 launch: happy users, amazing growth

Fast forward to today, 2 months later, I'm getting valuable user feedback, acquiring more & more free users every day, and converting many more to paid users (AI receipt images and credit card/bank account link to daily import new expenses).

I'm working damn hard to build out the core free feature set as well as make the pricing and premium feature set worthwhile to save time. I don't expect everyone to be a paid user, nor do I force them to be, but I want to provide direct, valuable improvements for the premium plans to make them transparently attractive for folks who are interested.

I don't see bill splitting as fun at all (even after spending 3 years on it), but at the very least I want it to be intuitive, quick, and frictionless for everyone involved. I'm a proud competitor to all the bill splitting apps out there (and trust me there are plenty) and I'm only getting started...

Looking forward

Is my approach/UI/feature set the best? Who's to say, BUT I'm here and doing it with indie hacker energy, a passion for design and product, a desire to ship fast & frequently, and dedicated time to make something great with the latest technologies.

Onwards and upward! I'm looking forward to see how SplitMyExpenses 2.0 evolves, grows, and matures over the coming years!

posted to Icon for group Lessons learned
Lessons learned
on January 24, 2024
  1. 2

    I'm curious how groups work?

    What is it, and why do people want it so badly?

    I can see how this works for one-time payments (e.g. a trip, a dinner, a wedding, etc.), but does this work for recurring expenses?

    Like splitting rent, a Netflix account bill, etc.

    Is it Stripe under the hood?

    I have so many questions!

    1. 2

      Groups allow users to share debts as a collection, instead of only just 1:1. It's basically a folder for expenses and it helps to unlock the whole new use case: roommates, couples, parties, events, trips, you name it! Impossible to do in v1. Well maybe possible, but EXTREMELY complicated and cumbersome.

      Recurring expenses are in the works, it essentially clones an expense over a period of time.

      Stripe under the hood yes, I'm investigating using Plaid soon!

      1. 1

        I get it now.

        So it basically lets you track all related expenses under one roof.

        I recently went to Alaska with my friends, we had one friend pay for everything, and then we Zelled him later on.

        We tracked everything with pen and paper, literally.

        Your app would have come in clutch lol.

        1. 2

          Yep exactly! You can definitely do it whatever way you feel comfortable. If one person paid for everything, it's usually all on them to do it which is easiest. My tool is best for multiple people paying, a ton of expenses, and organization purposes!

  2. 1

    Congrats! Curious, where are you getting user feedback from?

    1. 1

      Now: I used CannyHQ (https://canny.io) and put a link in my application side bar to "Submit a product idea" and also drive users there by mentioning it in my email drip series multiple times.

      Then: I used to be available 24/7 over chat via Tawk.to, I set up an automatic message that happened after 1 minute saying I'm the creator, let me know if you have any suggestions or bugs you run into and that spurred a lot of conversation!

  3. 1

    awesome story Bradley, great write-up.

    I'd love to hear more about your v2 prototype. I tend to vary between a figma prototype, a ui-only code prototype, and a simple full-stack prototype.

    did you go for any of these options, or another? was it for usability testing, value testing, tech feasibility testing?

    1. 1

      I went for full code prototype, the UI piece was added later on. Good thing is I had a UI already for v1, so I slightly modified it to just "work" as data input but everything else was clearly off. Once I got POC working in backend/DB side, then I thought ok this is doable! Mostly tech feasibility testing

  4. 1

    Congrats! Sounds like a great story!

  5. 1

    Congratulations on the achievement @BradleyBernard
    No easy feat to finding product market fit!

    1. 1

      Not easy at ALL, thank you!

  6. 1

    Very useful story. Thanks for sharing!
    Also, want to say that you did an amazing job, congrats

    1. 1

      Thank you, appreciate your support!

  7. 1

    Love that part where you mention your V2 development took twice longer to preserve user experience. I can relate, having the same mindset. How you do anything - that's how you do everything. Showing the care for all the users, even non-paying or very small numbers is the trait that definitely will keep on bringing.

    Best of luck!

    1. 1

      Oh yeah, I tell myself: this will take 2-3 weeks, then it takes 8. Maybe I'll just switch my estimation units to be +1, so 2-3 weeks = 2-3 months 😂 the perfectionist in me is never satisfied but shipping frequently is a huge win, so it's a battle. Thank you!

  8. 1

    Your post is a very honest description about your ups and downs.

    Like your energy!

    Keep going, keep winning!

    1. 2

      Thank you! It's very energizing and fun to work on something you love working on. Truly a blessing :)

  9. 1

    Haha I also quit my job pre-revenue, now I'm on life support with some freelance agency work.

    Best of luck with all your learnings!

    1. 2

      Hah, it's sooo not easy, I feel you 100%. It's a wild journey for sure, and I've learned a lot, but it's not for everyone. I'm rooting for you!

      1. 1

        Thank you! Followed you on X to see your journey :)

  10. 1

    Congrats @BradleyBernard! It’s fascinating how many founders no matter what stage or year find success after talking to customers.

    1. 1

      Thank you! It takes time, I'm not where I want to be YET, but it's going the right direction now :)

  11. 1

    Very inspiring @BradleyBernard, thank you for the read. Ballsy to quit your job pre revenue. I wish you all the best.

    1. 1

      Wouldn’t recommend it for everyone but it’s been a wild journey full of ups and downs

  12. 1

    Congratulations on the amazing journey! Changes in user registration and engagement demonstrate the impact of your dedication.

    1. 1

      Thanks, agree 100%. Metrics don't lie!

  13. 1

    First of all, thank you for writing this great article.
    Additionally, I would like to understand how you get feedbacks from users. I've tried email, on-site surveys, and other methods, but the response has been pitifully low, not to mention finding people willing to communicate one-on-one. How did you manage to do it?

    1. 1

      Now: I used CannyHQ (https://canny.io) and put a link in my application side bar to "Submit a product idea" and also drive users there by mentioning it in my email drip series multiple times.

      Then: I used to be available 24/7 over chat via Tawk.to, I set up an automatic message that happened after 1 minute saying I'm the creator, let me know if you have any suggestions or bugs you run into and that spurred a lot of conversation!

  14. 1

    I have a strong affinity for Laravel, consistently choosing it as my preferred framework for personal projects.
    Your SplitMyExpenses app seems impressively designed, and I acknowledge its purpose.

    1. 1

      Thanks Andrew! It truly is an incredible framework and ecosystem. The team ships at a great speed and provides valuable tools that remove the complexity that was once there. My favorite PHP framework since I first started using it back in 2015

  15. 1

    Valuable insight, thanks for sharing!

    SplitMyExpenses looks very well-designed, and I know it exists for a very good reason, as I am building another expense-sharing app, Spliit.

    I strongly think that open source is a better fit for this kind of application, but I’ll keep following your journey building SplitMyExpenses 😉.

    1. 1

      Hey Sebastien! Thanks for the follow :) I checked out Splitt and it looks great!

      Definitely a hot take 🌶️👀 here's my 2c:

      OSS is fantastic and I don't doubt it can go very far (Laravel), but from my POV, I've seen 1000 and 1 bill splitting apps and not many of these tools remain up to date (a quick google search will show, and even on Github). I'm guessing it's because they were free that they were eventually abandoned, since it is only fun, for so long...

      For my tool, it offers a very generous free tier and solid core product, but there are upgraded plans that 1. Cost me money and 2. Are high value add (credit card link for example). Since it's such a crowded market, the consumer wins, whether that is on OSS or on a paid tool, or on Splitwise.

      At the end of the day, it's about shipping awesome software and building out value for customers. Building SplitMyExpenses is my full time job now, so you can damn well bet I'm going to hustle to make it great, 9-5, every work day!

  16. 1

    Great write up!

    I love Laravel, its always my framework of choice for my own projects. This just illustrates that you have to get something out the door and start iterating on the idea. Nobody crushes it out the gate.

    Where do you get your users/traffic for SplitMyExpenses?

    1. 2

      I posted a lot of Reddit when Googling for "Splitwise alternative" and found a lot of users that way. Although it's hard -- Reddit has strict policies for self promotion so I can say I've gotten banned in a few subreddits trying to spread the word about my tool.

      I plan on doing more marketing / advertising in the coming weeks to get more users on board, since the positive feedback is flowin! I love the coding part, but I am not great at the marketing side (surprise surprise), so a lot of learning there coming soon :)

  17. -1

    This comment has been voted down. Click to show.

Trending on Indie Hackers
I spent $0 on marketing and got 1,200 website visitors - Here's my exact playbook User Avatar 58 comments Veo 3.1 vs Sora 2: AI Video Generation in 2025 🎬🤖 User Avatar 29 comments Codenhack Beta — Full Access + Referral User Avatar 21 comments I built eSIMKitStore — helping travelers stay online with instant QR-based eSIMs 🌍 User Avatar 20 comments 🚀 Get Your Brand Featured on FaceSeek User Avatar 18 comments Day 6 - Slow days as a solo founder User Avatar 16 comments