Jason McCreary built a tool that automates the process of upgrading Laravel applications between major versions. Ten years later, Shift is at $50k MRR — and it only takes him a few hours per day.
Here's Jason on how he did it. 👇
I've been programming since I was 15. I studied Computer Science in college. I've always had side projects. Some have done well — particularly a "March Madness" iOS app back in the early App Store days. I still work on side projects, especially now with AI. But Shift is by far the most successful and remains my primary focus.
Shift automates the process of upgrading Laravel applications between major versions. You sign in, connect your repo, and in less than a minute, get a pull request with all the changes in nice, atomic commits. It costs less than lunch.
I built and run Shift solo. In its ten years, Shift has performed over 175,000 upgrades. While a bit seasonal around the release cycle, it consistently generates over $50k MRR. Growth has slowed a bit with the adoption of AI and fewer Laravel changes. But customer retention is very high. Those who Shift, keep Shifting!
I gave a talk at a PHP Conference about upgrading Laravel in November of 2015. Taylor Otwell, the creator of Laravel, attended. After the talk, I asked him if any scripts automated the upgrade process. He said, "No. But I'd use it."
I started building Shift that night at the conference hackathon. When I had a working prototype, Taylor mentioned it on Twitter to help me find testers. I continued working on it when I got home. A few weeks later, I launched laravelshift.com on December 23, 2015.
Over the Christmas holiday, I made $80 — about 20 runs. Pricing was stupid back then. Having built iOS apps, I charged only a few dollars. But with people buying it over the holidays, I clearly had something.
I didn't consider it a business at the time. I was happy at my day job. I liked the problem. I knew I'd use it myself. Turned out, about 40,000 other Laravel developers would too.
The initial product was scrappy. A mashup of PHP and shell scripts. It was a true MVP. Although I didn't have a deadline, Taylor mentioned he was working on the next release, so I wanted to be ready. Ideally, I wanted to offer Shifts to cover three major releases (5.0, 5.1, 5.2).
I built a single-page site. No sign-in. Users connected with GitHub, Bitbucket, or GitLab. They chose their Shift. They paid via Stripe Checkout. The initial version immediately redirected users to their pull requests. It took about 60 hours over nights and weekends to make it launchable.
The initial version was incomplete. Jeffrey Way, who created Laracasts, ran it early and told me it was "buggy." He wasn't wrong. I cut corners to ship. I was also new to Laravel. So I didn't know all the ways it was used.. But it was worth it for two reasons.
First, launching quickly to meet the next release and meeting Taylor afterward was perfect timing. I was new to the Laravel community. Having its creator interested in the product was a huge boost. Second, those feedback emails were critical for iterating on the MVP. It would have been easy to think it failed, but it ended up being key to Shift's success.
As far as funding it, the initial overhead was minimal. Probably less than $50 for a domain and servers. It helped that I'm a developer. I built everything myself. While time is money, I had it to give. Those 60 hours came from nights and weekends. Before I had kids.
These days, I run a straightforward, familiar stack:
PHP + Laravel
Tailwind CSS
Stripe Checkout
Additional services: Pusher, AWS SES
I host everything with Cloudflare and Digital Ocean for dynamic workers on demand.
The underlying Shift "engine" is still a mashup of PHP and shell scripts, with a much better pipeline architecture. I expanded the website with a user dashboard and redesigned it a few times. But nothing fundamental has changed from the MVP, just a lot more Shifts.

Shift started with a single revenue stream: pay-as-you-go runs. I charged $3 to $7, depending on the number of versions upgraded. Embarrassingly low in hindsight. I introduced subscriptions later, once developers trusted the service. Today, revenue splits evenly between the two.
Expanding the catalog has been an obvious driver of revenue growth. Every new Laravel release creates a new Shift. But I also built adjacent products: a test generator, code modernizer, and one-off refactors. These help normalize seasonal revenue.
Pricing has been the biggest lever. I find pricing extremely personal. I started with what I would pay. Then I dialed it in. It took a few increases to get where it is now. It's easy for someone to say, "Charge more." But for me, charging less in the early days may have helped Shift grow. You have to start with what works for you. Then, be willing to increase. Over the years, I moved to tiered pricing, aligning costs with the age of the Laravel version. Older versions cost more. This approach works two ways: it incentivizes customers to stay current and increases revenue.
In the last year, I moved to localized pricing using Stripe's new features. I intended to help customers avoid currency conversion fees. But it slightly increased revenue, given my customer base in the EU and UK. Ultimately, this helped offset the slight decline from AI.
The margins are absurd. $100 a month in overhead against $50k+ MRR.
Over the years, I've brought in a few contractors. Mostly, when I needed extra capacity or just wanted some company instead of running the business solo. But no employees. No investors.
Now with AI, I'm back to doing it all myself. Total overhead is still around $100 a month. I do a few hours of support in the morning. A true lifestyle business.
With essentially no overhead, I've had a lot of flexibility to experiment, make mistakes, and figure it out as I go.
The biggest growth lever has always been community. From day one, Taylor Otwell backed Shift with a tweet. That one retweet reached exactly the right audience. That definitely gave Shift the initial boost most projects never get.
Taylor's tweets were gold. But I didn't always have them. I needed to build my own audience. I got involved. Spoke at Laracon. Got on community podcasts. Wrote blog posts. Built courses where I saw knowledge gaps. None of it explicitly marketed Shift. I'm not salesy. But I was never afraid to mention Shift when it added value to the conversation.
I did that in community chats, forums, Twitter, and Reddit. I'm old school. Given my developer audience, I still mostly do Twitter. I also send a weekly newsletter to Shift users and try to livestream every Wednesday.
I run a monthly ad on Laravel News, too. I don't think it moves the needle. But it's a good deal and keeps Shift in front of eyeballs. You never know what content reaches people. So, I stay consistent. A shotgun approach.
I enjoy being part of the Laravel community. It's not a marketing tactic. It's who I am. I think that shines through and ultimately builds authority and trust. All the same things you want good marketing to do.
Two things have been particularly helpful: luck and feedback.
The luck part was meeting Taylor at that conference. It was exactly the right time, with exactly the right idea. His early backing gave Shift that intial boost.. I'm never afraid to acknowledge that luck is a big factor.
The feedback was those early email follow-ups. From day one, I sent an email follow-up every single user 48 hours after they ran a Shift. Two simple questions: What manual changes did you still have to make? How did you find out about Shift? The answers weren't always what I wanted to hear. But I replied to every one. I still do.
That feedback loop turned a lucky MVP into a service Laravel developers trust. If there's one thing I'd tell any indie hacker, it's that: Talk to your users. As many as you can. You don't always have to act on their feedback, but listening helps.
Other than that, here's my advice: Ship it!
Shift was buggy at launch. I knew it. I shipped anyway. I could have easily spent a year building the full catalog and getting the automation perfect. But I might have missed my window.
And it's okay to stay small. Freedom is the goal. Not the exit. Find a real problem in a community you're already part of. Your idea doesn't have to be the next trillion-dollar company. It can be something you and the people around you pay for. That's it.
The path I'm on has been Ikigai. The intersection of what I'm good at, what I enjoy, what the world needs, and what I can be paid for. Ten years in and it's still fun.
Life has changed over the last 10 years. Married, two kids, getting older. My goal is to keep Shift going as long as I can. It has an end, likely from the rise of AI or the fall of Laravel. Both of those are probably far enough off that I can retire from Shift.
So, I'll adapt Shift to AI. And I'll keep saving for retirement.
You can follow along on X and my personal website. And check out Shift!
Leave a Comment
Love seeing a $50k MRR business proudly labeled as a 'lifestyle business.' It's easy to get sucked into the venture-scale trap of hiring a massive team the moment a dev tool gets traction. Keeping the overhead low and maintaining complete freedom while serving a technical audience is the absolute dream. Massive congrats on protecting your time while building a monster product!
The part that stands out to me is that it took 10 years to get here — that patience is underrated. Most people would have pivoted or chased VC funding long before hitting that $50k MRR mark.
Great story. What stood out to me wasn't the impressive MRR, but how much of the success came from solving a very specific problem for a community Jason was already part of. Shipping early, listening to every customer, and steadily improving over a decade is a refreshing reminder that sustainable SaaS businesses don't always need huge teams or VC funding. Thanks for sharing such an honest look behind the scenes.
Inspiring
Great story. Thanks for sharing your journey and the lessons you've learned over the years
The biggest lesson here isn't the $50k MRR — it's the consistency. Shipping an imperfect product, talking to users for 10 years, and focusing on a single painful problem created a moat that's hard to replicate. Too many founders chase new ideas when the real opportunity is often doubling down on one thing that already works. Great case study. 🚀
Developer tools as a business model feels like a goldmine that gets overlooked. There's so much willingness to pay among developers for tools that save time and frustration. The key seems to be staying focused on the core problem rather than trying to be everything. How do you decide what features to build vs. what to leave out?
In the beginning it was pretty obvious to just keep expanding the catalog. Over time, all those users emails guided new features. I'd wait until 2-3 users gave the same feedback in tight succession, then make that into something. Didn't always work out. But mostly did.
Fantastic breakdown of the Shift journey. What I appreciate most is your honest discussion of pricing decisions and the importance of user feedback. The emphasis on "talk to your users" is advice that resonates across all industries. Building a lifestyle business around a tool that solves a real problem for the Laravel community is exactly the kind of sustainable approach more indie makers should pursue. Great work!
Love this story - showing that developer tools have incredible staying power when they solve real problems. The fact you got a retweet from the Laravel creator early on shows how important it is to build tools that developers actually want. Ten years of consistent revenue working just a few hours per week is the dream. Did community engagement and word-of-mouth drive most of your growth, or did paid marketing play a role?
I never did any paid marking. It was all "organic" - word-of-mouth, speaking, posting, sharing. I run a paid ad now on Laravel News. But honestly, it's mostly to support another community founder than it is driving growth.
Great article.
"Freedom is the goal. Not the exit." is probably my favorite line from this post.
I'm currently building my own nutrition startup, and it's a great reminder that the ultimate goal isn't necessarily a huge exit, it's creating something valuable while maintaining the freedom to choose what you work on and how you live.
Thanks for sharing your journey.
“This is the definition of a true indie hacker business. 10 years, 175k upgrades, $50k MRR, and $100 overhead—absurd margins indeed.
The line that stuck with me: ‘Freedom is the goal. Not the exit.’ That’s so rare to hear, especially in SaaS. Thanks for showing that a business doesn’t need to be a unicorn to be a massive success. Following your journey now.”
What stood out to me is how different this story is from the usual “build an audience first” advice. He had no real following, but he built something for a very specific pain inside an existing community, got it in front of one credible person, and then spent years listening to actual users.
I’m learning the hard way that building the product is often the easy part. Figuring out exactly who needs it, where those people already are, and getting it in front of them is a completely different skill.
The 48-hour follow-up email might be the most valuable part of this whole story. 175,000 upgrades means 175,000 opportunities to learn what the product got wrong. Hard for any competitor to replicate that accumulated knowledge.
Indeed, the "one credible person" was the "luck". The "175,000 opportunities to learn" was the "grind". I have no doubt those two made Shift successful.
The line "Freedom is the goal. Not the exit." was my favorite <3. I also appreciate how openly you talk about luck, timing, and customer feedback instead of making success sound like a perfectly planned journey. Congrats on building something that's been creating value for a whole decade.
This is incredibly inspiring! Building a $50k MRR business without letting it consume your entire life is a massive win.
Our small family team is currently managing two niche products at different stages (one in growth, one just wrapped testing). As a solo or small team, execution focus is everything.
Looking back at your journey, how did you manage your time and avoid burnout during the early days when you were trying to get traction? Wishing you continued success! 🙌
I honestly never had any burnout. I hinted at Ikigai. I love what I do. It doesn't feel like work. And I've always been good at work/life balance.
Sometimes I'd get down if there were several negative feedback emails in a row. Or the occasional refund/dispute. When that happened, I'd take a break. Come back to the reply with a cooler head.
The detail that stands out most to me is that Shift's real moat isn't the automation logic, it's ten years of accumulated edge-case knowledge from those 48-hour follow-up emails, which is the kind of tacit knowledge a general-purpose LLM can't replicate just by reading Laravel's changelog. I've seen similar dev-tool businesses get nervous about AI because the surface-level task looks automatable, but the actual value is in knowing which upgrade paths silently break production and why, which only comes from watching thousands of real repos fail over a decade. Using Shift for the deterministic transformation and AI for the 'last mile' seems like the right sequencing rather than trying to out-flexibility the LLMs. Do you expect AI to eat the pay-as-you-go side first since those are lower-trust, one-off purchases, while the subscription base stays sticky longer because switching cost and accumulated trust matter more there?
Yes. Shift has probably seen its best years. Last year was essential "flat" if you factor out the currency conversion lever. This year with another "minor" major release of Laravel and the mass-adoption of AI, I expect maybe a 20% down year.
My guess is exactly what you said - the indie dev pay-as-you-go DIYers are probably throwing the "minor" upgrade at AI, while my indie "fans" and teams are sticking around.
"stop the bleed" framing converts so much better than "grow your revenue" — found the same thing building closereply for local service businesses. "you're losing jobs to whoever calls back first" hits completely different than "AI can grow your business." people buy stabilizers when they're actively bleeding. growth tools are a luxury they'll think about later.
Incredible journey—what stood out to me most wasn't the revenue, but how consistently you listened to users and iterated over a decade. Looking back, what's one piece of customer feedback that completely changed the direction of Shift?
Two things come to mind. First, it took customers literally telling me to "charge more" to get comfortable raising prices. Second, users kept saying how much they enjoyed the PR comments it left. I always looked at those as a "failure" since they referenced things the developer should review manually. But most devs seemed to view it as a curated, customized Upgrade Guide.
That's a really interesting shift in perspective. It makes me wonder how many founders unknowingly undervalue the things customers love most. Out of curiosity, did those insights eventually change how you interviewed users or prioritized new features?
No. My follow-up email has been the same two questions since the beginning. However, the "charge more" responses eventually gave me confidence to change prices.
Hi Michael, thanks again for replying to my comments on your Shift post. I'm new to the Indie Hackers community and found your 10-year journey incredibly insightful. I had one or two questions about building developer tools—if you ever have a few minutes, I'd really appreciate your perspective. No pressure at all.
lol the "shotgun approach" line got me because that's literally what I did today. Shipped something this week and just fired it off everywhere — HN, a couple subreddits, X — no real plan, just trying stuff. Kind of comforting that even 10 years in he still can't tell you which channel actually worked. Guess you just keep doing it and let it add up.
Yeah, I'm sure some people can. I just can't. For all I know, it could all be word of mouth.
Congrats on the launch! 🎉 I really like how focused your product is. Wishing you an amazing launch day!
This is the case study that should get pinned everywhere instead of the "$0 to $10k in 30 days" stuff. The real pattern here isn't the tech, it's that he had an existing community (Laravel) and one credible person in it (Taylor) who could vouch for him on day one. That's the unlock most solo builders don't have and can't manufacture quickly — it took him being in that world already, not marketing into it from outside.
The other thing that stands out: he shipped buggy and let real usage find the gaps, then closed the loop by personally emailing every single user for feedback for ten years. Not a survey tool, not automation — him, replying, every time. That's unglamorous and slow, which is probably why it works and why most people skip it.
Indeed, the validation from that market's biggest influencer can not be underestimated. Definite unlock.
T
Spent way too long polishing before my first launch and it made no difference to the people who actually wanted it anyway. The 48 hour follow up email is so simple but I have never seen anyone actually do it consistently and that is probably why it works. Most people ask for feedback once and move on but doing it with every single user for ten years is a completely different thing.
Nice work! Curious how you found your first users?
All initial users came from that initial RT by Taylor. I had no "Laravel following" at the time. From there my guess is word-of-mouth from devs impressed with Shift, and, eventually my own involvement in the community. Though I was never very "salesy" about Shift.
I wanna be successful as you are. Thanks for posting this, wonderful journey
"The part that jumped out: knowing when to stop building features and start shipping. Most solopreneurs optimize for 'more features = more valuable' because shipping something imperfect feels risky. But you hit on the real unlock — 'good enough product + distribution beats perfect product + no one knows about it.'
Your timeline (10 years from Larval → 5 years of active building) also shows something important: lifestyle business profitability isn't always about the first year. You had runway to iterate and compound. A lot of solo founders underestimate how much time it takes to get from 'working product' to 'sustainable revenue.' The discipline to say 'ship it, see what breaks, fix it' instead of chasing that one more feature is rare. Props for being patient enough to let it compound."
"good enough" is indeed good enough.
Exactly. Ship to learn. Optimize to compound. Month 1 signal > Month 6 perfection.
"Freedom is the goal. Not the exit." — this needs to be printed on a poster in every co-working space.
Jason's story is a great reminder that $50k MRR working a few hours a day is a legitimate end goal, not a stepping stone to something bigger. The $100/mo overhead and lean operations mindset is what actually makes that possible.
I think about this a lot at goldenweeks, a 2-week deep work retreat in Zanzibar. A recurring theme with founders who come is that they've been optimizing for growth when what they actually wanted was time. Sitting with that for two weeks — away from the noise — can reframe a lot of decisions.
The 48-hour feedback email trick is something I'm stealing immediately.
Steal away!
I love side projects too. And thanks a lot for the advice: Other than that, here's my advice: Ship it!
Great read. What stood out to me most wasn't the revenue, but how consistently you kept improving the product over many years instead of chasing shortcuts. As someone currently building my own SaaS, it's a good reminder that shipping, listening to users, and improving steadily matters more than trying to make everything perfect before launch. Thanks for sharing your journey.
Really interesting to see how much of this came down to timing + community more than just the tech itself. The “ship early, then listen closely” loop with users feels like the real unlock here. Also the margin/solo setup is kind of wild—$100 overhead for that level of revenue is rare.
I'm admittedly frugal. In addition, my "off season" gives me time to take on optimization projects. So I've brought down costs more than I "needed" to, just because I can. For a more feature intensive project, I probably wouldn't have had the opportunity. Or such effort wouldn't be worth it.
"Freedom over exit" really resonates. I'm about 1 hour/day into a couple of small Figma plugins right now, and the constant pull is to build more features instead of just talking to the handful of users I already have. The pay-as-you-go + subscription split is interesting too — did that emerge from what users actually asked for, or did you design it in from day one?
Shift was pay-as-you-go for the first few years. I went to subscriptions once I had a large enough catalog and "grouping" Shifts started to make sense. It was never really to increase revenue. Subscribing is actually a better deal for the customer than pay-as-you-go.
looking nice
Ten years. $50k MRR. $100/mo overhead. One guy.
The part that gutted me: "I could have spent a year building the full catalog. But I might have missed my window."
Every dead project I've shipped died the same way. Not from bugs. From polish.
Jason shipped PHP + shell scripts in 60 hours. Nights and weekends. Made $80 the first week. Ten years later he's printing $50k/mo working mornings.
The 48-hour follow-up email is the real cheat code. Two questions. Every user. For a decade.
"What did you still have to fix manually?" "How did you find Shift?"
That's not a growth hack. That's a moat.
Nobody does it. It's boring. It doesn't scale. That's exactly why it works.
Also — respect for naming luck. Taylor's retweet was the unlock. But luck doesn't cash a check on an empty repo. He'd shipped something worth retweeting.
The whole playbook, stolen:
Boring stack
Painful niche
Ship it ugly
Reply to every email
Stay small on purpose
Freedom > exit. Underrated take in 2026.
Thanks! Respect on the respect.
the bit about the "engine" still being PHP + shell scripts with a better pipeline architecture actually makes total sense when you think about it. a lot of devs would be tempted to rewrite the whole thing in something more "modern" every couple years, but that kind of churn kills solo projects. boring stack + good abstractions around it is genuinely underrated.
also the localized pricing via Stripe is something i've been looking at for my own stuff. curious if you went with Stripe's automatic currency conversion or if you're managing seperate price objects per region? the automatic conversion is convenient but you lose some control over the exact price points in each market, which matters more than people think when you're dealing with EU VAT included vs excluded pricing.
I use both "adaptive pricing" which is the ability to pay in their local currency at current market conversion, as well as set pricing for direct markets. So my Shift products in Stripe have a price in USD, EUR, and GBP currencies. Stripe swaps it at checkout based on customer/geolocation.
Very impressive story of gaining that freedom by solving a real problem. Good point about keeping it small and not dreaming to build the next unicorn. Also important to ship and MVP that works, spread the word at the right time and improve by following up on feedbacks.
One thing that really stood out to me was the 48-hour follow-up email. Asking every user what manual work they still had to do is such a simple but powerful feedback loop. It's a great reminder that talking to users consistently is often a bigger advantage than building more features. Thanks for sharing your journey!
Yes, it proved to be a differentiator for sure.
This is inspiring. Proof that solving a real problem consistently beats chasing trends. Congrats!
The "No. But I'd use it." moment gave me chills.
That's the whole validation playbook in one sentence — find someone whose opinion matters, describe the problem, watch their reaction.
I'm early in my own build (an AI companion app called Remira) and the thing that stuck with me most here is the ten years part. Not because it took that long, but because he kept going through the slow seasons.
That retention stat says everything. Build something people actually need, price it fairly, and the ones who stay, stay forever.
Saving this one for the hard days. Thanks for sharing it.
Nice. Keep grinding!
Thank you Jason! Your article was one of the things that made me believe it was possible. Keep building 🙏
Everyone says do it, but not everyone does it. It's worth clarifying, I am by no means saying, "the customer is always right". I'm only saying to listen. Plenty of customers provided feedback that would have taken Shift in a crazy direction. A few complain about the same thing I have never changed. But I still listened and responded.
Fascinating journey. It's interesting how Shift transitioned from being a 'manual-heavy' script automation to something that now has to compete with generalist AI
Very Inspiring
I learned something similar while building my own product. My first instinct whenever people didn't use it was "I need another feature." But after shipping more, I realized distribution was usually the bottleneck, not the product itself.
It's surprisingly easy to spend weeks improving something that almost nobody is seeing. Changing where you find users often teaches you more than changing another screen in the app.
I really liked your point about launching before the product was perfect and using early feedback to shape it. I’m also building a small Windows utility, and I’ve found that real user feedback is far more valuable than trying to predict every feature in advance. Your approach of following up with every user after 48 hours was especially insightful.
This was a great read. What impressed me most wasn't the technical side—it was how quickly you shipped an MVP and let real users shape the product. Too many founders spend months polishing before getting any feedback.
I also liked your point about pricing. Starting with a price that felt comfortable and increasing it over time seems much more sustainable than trying to maximize revenue from day one.
I'm building LaunchLoopIO, an AI platform that helps founders discover and validate business ideas, and one pattern I keep seeing is that the most successful products usually solve one very specific pain exceptionally well. Shift is a perfect example of that.
Congratulations on building something that's been valuable to the Laravel community for a decade. Reaching that level of longevity is probably harder than building the product itself.
Thanks!
Love the honesty about luck and AI adoption. A lot of people think AI will instantly kill dev tools like this, but 10 years of building trust within the Laravel community is a massive moat. Users know Shift won't break their production code, and that's something a raw LLM prompt can't guarantee yet.
"Users know Shift won't break their production code" - that's my biggest "moat" with AI currently. Shift is still far more deterministic and thorough with its changes. AI will get there. Like you said, just not "yet".
This is one of the best examples of solving a specific problem for a specific audience instead of chasing the next big trend. What stood out to me wasn't just the $50k MRR—it was the consistency over 10 years, the tiny operating costs, and the relentless feedback loop with customers.
The biggest takeaway for me is that community and trust can become a much stronger moat than complex technology. Shipping an imperfect MVP, listening to users, gradually increasing prices, and staying deeply involved in the Laravel ecosystem created a business that's difficult to replicate.
Also appreciated Jason's honesty about luck. Meeting the right person at the right time mattered, but he still had to build, iterate, and deliver value for a decade to turn that opportunity into a sustainable business.
A great reminder that freedom and longevity can be better goals than chasing hypergrowth.
I find it nuts when founders dismiss "luck". Maybe "luck" is not always the right term, but there is definitely an element of luck/fate/serendipity in their story.
The $100/month overhead line is the detail that should stop every bootstrapper who reads this. Most solo founders don't track overhead carefully enough to even know what theirs is. Jason does, and it's not an accident — it's the structural advantage of owning the entire stack and never taking investment that would pressure him to spend.
The part I keep thinking about is the AI risk he mentions almost casually at the end. Shift's core job — parsing changelogs, applying upgrade rules, generating PRs — is the exact kind of structured transformation that LLMs handle well now. But here's what any AI wrapper competitor would be missing: 175,000 upgrades worth of edge case data from those 48-hour follow-up emails. That feedback corpus IS the product at this point, not the scripts.
Running 10+ apps myself, I can confirm that the "adjacent products to smooth seasonality" strategy is underrated. We do the same thing — different tools that share a user base but peak at different moments. It's boring compared to chasing new markets, but the LTV math is significantly better when you're cross-selling to people who already trust you.
The Ikigai framing is honest in a way most founders won't admit to. "I'll adapt Shift to AI and keep saving for retirement" isn't a moonshot story. It's a sustainable one. And ten years of evidence suggests it works.
AI is a real risk. But I'm taking it in stride. There's also no competing with it. The way forward for Shift is more collaborative. Ideally using Shift to do what it's done well for the last 10 years, and use AI for the "last mile" of automation. Best of both worlds.
Congrats on 10 years, this is the kind of longevity most of us can only aspire to. The detail I keep coming back to is the tiered pricing where older Laravel versions cost more. Most SaaS pricing punishes loyal customers with increases over time. Yours does the opposite. It charges for procrastination. The customer who stays current pays less, upgrades more often, and generates more recurring revenue anyway. That’s pricing as product design, not just monetization. It nudges users toward the exact behavior that makes them successful with the tool. I suspect that alignment is a quiet reason behind the crazy retention you mentioned.
Maybe. It just made sense in my head. Having the latest version be the lowest cost is both a "carrot" and a "thanks" at the same time.
Freedom is the goal that frames everything. Most founders measure success by revenue or users, but those are just proxies; the actual goal is time and autonomy. 10 years solo at $50k MRR with a few hours per day is a better outcome than a VC-backed team doing 10x the revenue with zero freedom.
The community authority point in section 7 is something I'm learning right now at month 7 of building dailyaitools.io, showing up consistently in the right places, compounds in ways that paid acquisition never does. slow, but it actually sticks.
Exactly, I have no clue which "channel" has the most customer acquisition. I just do my silly "shotgun approach" and Shift keeps growing. I share for me, not necessarily for Shift. Somehow it all factors in. But, in the end, I really have no idea.
That's actually reassuring to hear; most distribution advice assumes you can attribute everything cleanly, but reality is messier. The shotgun approach working over 10 years suggests that consistency matters more than channel optimization. showing up everywhere with genuine content compounds even when you can't track it directly.
Congrates DEAR
The part about luck and timing really resonates. I'm in the early days of building FamiStream — a parental control layer for IPTV. Found the problem the hard way when my kid found something he really shouldn't have on our IPTV setup.
Your point about shipping scrappy hit home too. I've been overthinking perfection when I should just be getting users.
One question: how did you handle the period between 'I have something working' and 'people actually trust it enough to pay'? That's exactly where I am now.
I just kept grinding - made improvements based on the feedback emails, extended the catalog, and did lots of community engagement (SO, reddit, forums, etc). It probably took about 18 months before Shift reached that "ok, people are using this" phase. But I still do the same "grind" today.
The seasonality problem is the quiet engineering in this story. Shift's demand spikes around each Laravel release and then flattens. The adjacent products — test generator, code modernizer, one-off refactors — aren't just extra revenue, they're the answer to that valley between releases. Most solo founders fight seasonality with discounts or more ad spend. Building adjacent SKUs for the same audience with different timing is a much cleaner fix.
The localized pricing detail is also underrated. Usually framed as 'doing right by international customers,' but Jason's honest that it slightly increased revenue from EU/UK — because currency friction was suppressing conversions that were already there.
The deeper lesson for me: when your product is tied to someone else's release cycle, your job isn't to fight the seasonality, it's to fill the gaps with adjacent problems the same customer has.
Good call. I may have dismissed these as a "revenue generator", but they very much are a "revenue stabilizer".
"stop the bleed" framing converts so much better than "grow your revenue" — found the same thing building closereply for local service businesses. "you're losing jobs to whoever calls back first" hits completely different than "AI can grow your business." people buy stabilizers when they're actively bleeding. growth tools are a luxury they'll think about later.
The "charge less early, raise later" path is the opposite of the advice this site usually gives, and it's right for the situation: with a skeptical dev audience, a few-dollar price de-risked the trial, and retention did the rest once the value was obvious. The deeper moat isn't the tool (scripts AI can now approximate), it's that Jason owns the exact moment in the Laravel lifecycle where the pain spikes, backed by ten years of trust in one community. That's the part nobody clones with a weekend and a wrapper.
The 48-hour follow-up email is the detail I keep coming back to. Two questions, every user, every run, for ten years. Most founders automate that loop away or skip it entirely. Were the "what manual changes did you still have to make" answers the main driver for which Shifts you built next, or did they mostly confirm things you already suspected? And did the format of those two questions ever change, or have you been asking exactly that since 2015?
No, I wanted a straightforward email. So those two questions have never really changed. I figured it had a better chance at replies. I'd say 1 in 10 do. Sometimes just to say, "worked perfectly, no changes".
Yes, the "what manual changes did you still have to make" helps improve the automation. Shift will never be able to automate 100% of the changes for 100% of the project. But as you said, tweaking it just a bit based on this feedback for 10 years gets it pretty close.
The "charge less early, raise later" path is the opposite of the advice this site usually gives, and it's right for the situation: with a skeptical dev audience, a few-dollar price de-risked the trial, and retention did the rest once the value was obvious. The deeper moat isn't the tool (scripts AI can now approximate), it's that Jason owns the exact moment in the Laravel lifecycle where the pain spikes, backed by ten years of trust in one community. That's the part nobody clones with a weekend and a wrapper.
Yes, I really don't think I could have charged $39 from day one. Is that what Shift is "worth"? Sure, maybe even more. But that wasn't my view in the beginning. Especially coming off selling iOS apps for a $1.
My view on pricing has changed a lot over the years. I think it's all about "perceived value". That's just as much your view, as it is the customers. It took me years to be comfortable raising prices. I didn't want to "raise prices once I got popular". But if Shift was going to be a "real business", it was almost required. In fairness, tiered pricing is more approachable than the weird "waterfall pricing" I had.
I haven't told you this in person because... well I don't know why... anyway, your work with Shift and its success for you as a solopreneur has been an aspirational example for me for a long time
Thanks for being so dang awesome dude
Thanks Simon. Love the work you're doing with NativePHP!
Congrats this is awesome!
Congrats — $50k MRR on a developer tool is no small feat, devs are famously hard to charge. What actually got them to pay? Was there a clear "this saves me hours" moment, or did it spread inside teams first and convert on usage?
Those initial tweets from Taylor likely convinced the first few customers. I also think the ridiculously low pricing "derisked" the service. After trying it, the value was obvious - as measured by Shift's crazy high retention rate.
Incredible journey, Jason! The line 'Freedom is the goal. Not the exit.' really resonates. In a world so obsessed with unicorn valuations and venture capital, it's incredibly refreshing to see a 10-year masterclass in building a highly profitable, sustainable lifestyle business. Your dedication to the unsalable stuff—like replying to every single feedback email for a decade—clearly paid massive dividends in building community trust. Congrats on the success
Yes, while hard to measure, all those replies created some "true fans".
Very good and congrats on 50k$ MRR on a developer tool is no a small feat
Congrats — $50k MRR on a developer tool is no small feat, devs are famously hard to charge. What actually got them to pay? Was there a clear "this saves me hours" moment, or did it spread inside teams first and convert on usage?
Thanks! Yes, as a dev, I'll admit, I don't pay for much. I think that ridiculously low initial pricing helped mitigate devs skepticism. A sort of, "it's only a few bucks" kind of thing. Once they realized it indeed saved them hours of work, they gladly paid more.
Shift is definitely B2C than it is B2B. That is, the pay-as-you-go Shifts generate more revenue than subscriptions.
"Insane motivation! Building solo with low overhead ($100/mo) is the absolute dream. I’m currently on a similar solo journey, building (an AI listing generator for e-commerce) using a lean stack to keep costs near zero. Seeing posts like this proves that you don't need a massive team to create value.
To any other solo founders here: what’s your current stack for keeping overhead low?"
link in bio
The "shipped it buggy and let user feedback fill the gaps" part really hit. We're building Qampanion for mobile E2E testing and see the same pattern, the teams that win ship early and lean on a fast feedback loop to catch what they missed, not a flawless launch.
How did you di it ? . It's really amazing .
I'm also a beginner looking something to satrt with .
Help me out .
Có bao giờ bạn đứng trước tủ quần áo gần 15 phút nhưng vẫn thốt lên: "Ủa... mặc gì bây giờ?"
Đó chính là ý tưởng khiến nhóm mình tạo ra Ủa Mặc Gì? – một website được xây dựng với mong muốn giúp việc lựa chọn trang phục trở nên nhanh chóng, đơn giản và phù hợp hơn mỗi ngày.
Thay vì mất nhiều thời gian suy nghĩ hay thử đi thử lại nhiều bộ đồ, người dùng chỉ cần chọn một vài thông tin như thời tiết, dịp sử dụng hoặc phong cách yêu thích, hệ thống sẽ đưa ra những gợi ý trang phục phù hợp. Bên cạnh đó, website còn cung cấp các bài viết về xu hướng thời trang, mẹo phối đồ và những kinh nghiệm giúp mọi người tự tin hơn với phong cách của mình.
Đối với nhóm mình, đây không chỉ là một bài tập hay một dự án trên lớp, mà còn là cơ hội để áp dụng kiến thức về phân tích hệ thống, thiết kế giao diện, xây dựng cơ sở dữ liệu và phát triển website vào một sản phẩm có tính ứng dụng thực tế.
Hy vọng rằng trong tương lai, khi ai đó vô tình hỏi: "Ủa, mặc gì hôm nay?" thì câu trả lời sẽ không còn là một nỗi băn khoăn, mà chỉ cần mở Ủa Mặc Gì? là đã có ngay những gợi ý phù hợp.
Hãy truy cập với chúng tôi:
https:/(/)topzonevnfake.infinityfreeapp.c(o)m/
Bỏ 2 dấu ngoặc kép
✨ Mỗi dự án đều bắt đầu từ một vấn đề rất nhỏ trong cuộc sống, và tụi mình mong muốn góp phần giải quyết vấn đề đó bằng công nghệ.
#UaMacGi #WebDevelopment #StudentProject #FashionTech #UIUX #SoftwareEngineering #TeamProject
Turning a developer tool into a $50k MRR lifestyle business means finding a specific problem developers face, building a simple solution, and growing recurring monthly revenue to around $50,000 while keeping operations lean. It focuses on steady income, customer retention, and sustainable growth rather than rapid scaling or raising investment.
PolicyKit is live on Product Hunt today
Launching on PH — free Privacy Policy generator I built after Stripe asked for a live policy URL.
Privacy = free. Terms + Cookie = $9 once.
One thing that stands out is the focus on staying lean. Hitting $50k MRR isn't just about adding customers—it's about building a product people keep paying for month after month. Retention often tells a more interesting story than growth.