Building a SaaS takes time. Quite a lot of it — at least for most of us. I was curious about how to speed things up, so I did some research and read the first-hand experiences of other indie hackers trying to speed up development time.
Here's what I found. 👇
Code faster
The best way to code a product faster is to code faster. Crazy, right? Here's how:
- Choose the right tech stack: This will obviously have a big impact, and the most important thing is that you feel comfortable with the stack you choose. Also important: speed, third-party support, community support, etc.
- Choose the right IDE: What you choose for your Integrated Development Environment really depends on your specific needs and language. Choose wisely.
- Use one repo: Some folks use different repos for the interface, API, infrastructure, etc., but using one repo for all can simplify development.
- Leverage third-party solutions: Third-party solutions, open-source libraries, etc. mean you don't have to reinvent the wheel. Use what someone else already created.
- Reuse code: EDIT: This one is from @johnrushx in the comments, and I'm adding it because it's solid. Reuse code instead of starting from scratch. There are platforms for code reusage, like Flutterflow, MarsX, and Xano.
- Outsource: How much is your time worth to you? Outsourcing some of the simpler work can be a huge time saver. @philmcp gave the example of outsourcing when he needed someone to write a small piece of code to scrape data.
- Leverage low code (or even no code): Less coding often means quicker sprints. Here's an article I wrote with some info on no code.
- Avoid hardcoding: Writing values directly into code can cause hassles down the road. Avoid where possible.
- CI/CD pipeline: If you happen to be working with a team, consider Continuous Integration/Continuous Delivery pipelines, where everyone is continuously merging code to a central repo, and releases are automated.
- Avoid technical debt: Cutting corners can work in a pinch, but it'll cost in the long run unless you clear that debt at the earliest possible moment. If you aren't good at remembering to fix it, then don't ever accumulate debt (i.e. don't cut corners). If you do choose to have some technical debt, keep track of it.
- Slow down: Often, slower is faster. Avoid rework.
- Don't be a perfectionist: Ok, so I've said that writing quality code is what speeds up development in the long run. But the short run is sometimes what is necessary - particularly for MVPs. So don't forget that "good enough" is good enough. It's a balance.
- Always be learning: The best thing you can do to get faster is to get more experience. Experiment with new technologies, create new products, contribute to open-source projects, pair-program, join bootcamps, try a hackathon, and just generally be curious. Getting a job or freelance clients are great ways to learn too. Experiment and learn… but build with what you know.
Test faster
- Automate your testing: Automation testing requires some time up front, but it can significantly speed up the development process, as less testing will be required on your end.
- Don't use unit tests (maybe): Though it's controversial, some folks, like @philmcp don't do unit testing that on things like side-projects.
- Shift Left testing: Essentially, this just means starting the testing process earlier in the development process. Catch bugs early!
Plan your scope
- Analyze the market right away: Before you write a line of code, analyze the market and find out what your potential customers want. This will avoid rework later.
- Identify and prioritize features: It's important to identify a finite scope that can be completed quickly. Not sure what features to prioritize? The DIE approach is a great one for indie hackers. The RICE method is also very popular among indie hackers. If you want something quick and dirty, go for Value vs Effort. More on each of these (and others) in this article.
- Avoid scope creep: Seriously. Yes, that feature sounds cool, but the MVP should not change after the requirements are set. Period. I know of so many people who never launched their products because they got real creepy.
Manage yourself
- Break tasks down as much as possible: Break projects into tasks, tasks into subtasks, and so on. The smaller, the better (within reason).
- Limit WIPs: Following your enthusiasm is great, but you don't want a bunch of in-progress tasks. It's usually best to close a task before starting the next. The exception is if you've hit a wall — then moving on for a bit can help.
- Set your KPIs: Figure out what metrics are most important to you. And not your products' KPIs, but yours too. How do you judge your progress — lines of code written? Features completed? Number of bugs?
- Set REALISTIC expectations: Failing and becoming disheartened doesn't make you more efficient. Neither does getting overwhelmed. Set goals that are tight but doable.
- Don't multitask: Studies have shown that multitasking doesn't work. Don't do it.
- Adopt a "lean" mentality: Truly "lean" development isn't really a thing without a team, but you can still benefit from the principles.
- Create a routine: Figure out when you're most productive, and then plan your schedule around it. Most people peak once in the morning and once in the afternoon. Use these times for deep work.
- Pomodoro technique: Work for 25 minutes, then take a 5-minute break. After completing four "Pomodoros," take a longer break. Note: This may not work for deep work, so block out time for that too.
- Batch similar tasks: Transitioning takes time so if you're in the flow with something, keep it going.
- Eat that frog: This just means knocking out the most impactful, essential task first. I'd also add that it can be helpful to knock out the task that you have the most resistance to.
- Time blocking: Block out time in your calendar to focus solely on a given (important) task.
- Get into flow state: I wrote about how to do this here. You'll never do better work than when you're in flow.
Change your mindset
- Be okay with doing less: Doing more work isn't necessarily more valuable. Be discerning about what you do and what you don't do. And focus on results; not hours.
- Say no more often: Bosses, clients, customers, family — learn to say no.
- Stop being a perfectionist: Of course, it's important to do good work. But at a certain point, it's just procrastination.
Optimize your lifestyle
- Work less: Seems counterintuitive, but it's true. Most people can only be truly productive for short periods of time. Working long hours leads to rework. I recently spoke with x-workaholic, @joshtronic of Holiday API ($6,500/mo), and he backed this up, "I've been finding the less day-to-day effort I've been putting into things has yielded the same results, if not better results."
- Take breaks: And be intentional about them.
- Eat healthy: According to one study, two servings of vegetables per day gives a person the focus of someone 5 years younger. Leafy greens and blueberries are especially good for concentration.
- Sleep: I'm talking 6-8 hours a night. And it needs to be good sleep.
- Exercise: Regular exercise can actually increase your brain's growth rate.
- Stay hydrated: According to one study, being hydrated allows you to think 14% faster, focus longer, and be more creative.
- Create the optimal desk/office setup: I've found this surprisingly helpful. You'll be at your desk a lot in your life, so make it something that makes your work faster and better. And something that is good for your body. Check out this article for more info.
- Remove distractions: Whether it's in your physical space or your digital space, remove anything that will distract you. Android phones have a "digital well-being" mode that blocks notifications and apps. @jssk6's screen turns to black and white at a specific time. There are app/website blockers aplenty, like StayFocusd and AppBlock. Or just leave your phone in a different room while you work.
Use productivity tools
- KissTodo is a solid todo list app by @maximedupre
- timeivy by @typologist tracks how much time you spend in apps and websites each day to keep you accountable.
- Focusmate gives you access to accountability buddies.
- ClickUp is an app that does it all — tasks, docs, chat, goals, etc. And they boldly guarantee that you'll save one day per week. I can't verify that, but it sounds impressive.
- Brain.fm provides music that improves focus.
- Focus is a website and app blocker.
- StayFocusd keeps track of what you do online and blocks the sites that take up the most time.
- Toggl allows you to track your time.
What did I miss?
Thanks for these insights, I especially agree with Optimizing the founder's lifestyle. I remember being stressed out for a long time about building up a pipeline. It was only when I started creating a balance between work, family and life things started looking up
Great insights, James! Your tips on speeding up development, especially the focus on choosing the right tech stack and using third-party solutions, are super helpful. I love the reminder that "good enough" can be fine for MVPs. The productivity tools you mentioned are a fantastic resource too. Thanks for sharing! 🚀
There's one thing I learned about Gtm that will stick with me forever:
Forget android, iOS, etc. And build for web. The ROI on building for web is prolly 100x in terms of how fast you can change and adapt.
Interesting, I didn't know that about the ROI! Makes sense, though.
But in any case if you are targeting iOS and Android app development, consider outsourcing UI part of the code, I at UiWorks.io deliver UI code at fix price so your development team can focus on real business logic and you can save cost, time and effort.
Great read. I was wondering, how do you know when a product is ready to transition from an MVP to a paid product? How do you differentiate between scope creep & your product just simply not being ready?
I transitioned from software engineering at Facebook to indie hacking and no-code has been a game changer, especially for pre-product/market fit companies. Webflow + AirTable + Zapier is a crazy fast tech stack for the early stage product teams...and marketing teams at prettty much any level.
Personally, I'm a fan of technical debt. It allows me to code faster, and it's totally fine for an MVP. If the product gets validated by the market, then I'll come back to it and refactor. If not, well then I just saved a bunch of time.
This makes sense. Especially if you are still validating the idea. Make it work, then make it fast.
Hello , Its an Amazing Article . Very Appreciated your effort . Is it possible to make a video and discuss all these point ?
Great sharing. Lot's of insights. Thanks!
This is like the Lean startup method, good book to read
I use NextJS whenever I try to do something new. Now, Remix also could be a good option.
Great post
There is a lot of good stuff here!
My implementation on the monorepo approach is to split my code into a mono front-end and a mono back-end. Then, within each repo, organize and isolate my code by core functionality (e.g. authentication, payments, email) and maintain on the master branch. When I want to implement a new idea, I branch off master and can immediately start to write the business logic.
It can be a bit of a hassle when I'm really grinding on an idea and need to make updates to the core modules, but the only alternative I've thought of is to create all my ideas on one branch and just leave some code dormant, and I'm hesitant to do that.
(I will elaborate on this design once I'm allowed to post.)
Expected this to be focused on technology and was positively surprised because its about a lot more as you explained. Thanks for this thoughtful post, @IndieJames!
I'd like to add one thing you've addressed lightly in "Plan your scope" but it wasn't stressed enough in my opinion.
User-Centered Design is of utmost importance. Include prospective users early into the development process and always be guided by what's valuable to them.
Great sharing. Lot's of insights. Thanks!
Super important!
@IndieJames, very insightful post!
What I could add from myself ... is, that all that should be done on right idea :)
What could be worse than perfectly executed wrong idea?
Reuse code instead of creating new from scratch. That saves the most time.
99% of everything has been created.
Lets say you wanna build Airbnb? Search on github, find a clone, fork it and launch. Really quick.
Or use platforms that focus on the code reusage. Flutterflow, MarsX, Xano and etc
That's a great one, thanks!
Vibehut.io is great for talking to people on-demand.
Want feedback for your designs?
Looking to talk to investors?
Want someone to test your login flow?
Check it out. It is made for builders and designers for when they are out to get some fresh air.
Very insightful! Thanks for sharing this information!
Great tips and thanks for the mention @IndieJames!
For me, the key thing to realise is that not all hours (or methods) of work generate the same level of output.
Recently, I've been trying to be as brutally efficient as I can (as my time is limited these days) by doing a lot of the things you mentioned
Totally agree — it's all about finding the times and methods that work best for you, then leveraging them. Otherwise you're just working for the sake of working.
Gonna have to check out Kisstodo - BIG fan of Todoist over here.
Productivity tools are very good.
Amazing read!
Amazing article, really inspiring and priming for speed. At the same time, I feel like I really want to have more concrete tools and process to deliver stuff faster — like we are doing at the venture builder right now.
We use such a setup for building SaaS quickly [be cautious, we are still experimenting]:
1/ Promo Landing — use Framer. Don't build websites with code — build with Framer, add analytics & domain, and add minimal logic.
2/ Co-pilot for writing code— use CursorAI. Don't write code alone, always go with AI. 2x faster coding.
3/ Deploy or host — use vercel. 10x faster than any other CI/CD, even though not so powerful.
James, this is an incredibly comprehensive list! 🚀
There's a lot to digest here, but you've effectively categorized the challenges and best practices of development into easy-to-understand sections. As someone who's been in the indie developer community for quite some time, I can attest to many of these points, especially from a SaaS development perspective. Let me add some thoughts:
Code Faster: Your point about leveraging third-party solutions cannot be emphasized enough. For indie developers, especially when starting out, it's tempting to build everything from scratch for the sake of "full control." However, the trade-off in time and potential errors might not be worth it. Also, "Slow down: Often, slower is faster" - this is golden advice, especially for devs like me who tend to rush into things, only to regret it later.
Manage Yourself: "Eat that frog" is one of my favorite strategies. Often the mental load of that one task we're avoiding can slow down the whole day.
Change Your Mindset: This is probably the toughest yet most essential part. Recognizing the value of one's work outside the amount of effort or time put into it can be challenging but is essential for long-term success.
Optimize Your Lifestyle: Honestly, this section should be plastered on every developer's wall. Especially the part about sleep and exercise. Physical well-being directly impacts mental well-being, and this plays a significant role in development speed and quality.
Thanks for sharing! Such a great info!
I really needed to read this. Thanks for sharing this.
If we talk about speed and the market, I think nowadays the best path is no-code to build an MVP and see if you have product-market fit. Even better, use no-code templates for version 1 of the MVP, then move to custom no-code and only then move to custom code if needed.
Love "Change your mindset" part 🙌
Nice one!
Nice, do you have particular tech stack preferences?
Great Post. Reminded me a bit of the lean startup book.
Loved the work less and slow down bits. As counterintuitive as they are. Need to pay more attention to these. 😅
I really needed this
Great post! Not just for indie hackers but for non-technical founders, most of whom don't know what they don't know. The misunderstanding of a MVP alone is thing. When thinking tech stack Bubble, Gumroad, Zapier, Notion, Jotform, Weflow etc is not what you'll hear, much less reusing existing code. This lack of understanding is what is costing so many Founders.
Hello,
If you want to hit the market by developing a high-performance and quality app or website you can consult with the AppClues Infotech team. As a leading development agency in the USA, they have a dedicated team of designers and developers for multiple platforms.
Snippets and code generators are another awesome tool that can help speed you up a lot.
Create custom snippets for code patterns you write often using:
https://snippet-generator.app/?description=Console.log&tabtrigger=clg&snippet=console.log("%241"%2C+%241)&mode=vscode
Worked for several years as a writer and digital marketer, Alice started her career as a blogger a few years ago. She has been successfully spreading knowledge about medicines, their effects on health and everything about fitness and healthy lifestyle through her blogs. She is a blogger by passion and it fuels her zest for life, as she says always.
https://nootrashop.com/
Could not agree more about hardcoding - can't tell you how many times I've caused problems for myself because of hardcoding values!!
This is an awesome and comrohensive post. Thank you so much!
Actually, I am working on speed up the development process too with my team. I just want to mention about that. We are building nocode app templates on Bubble and the entrepreneurs can install our template and run their business immediately. I don't know you are find this a good way or bad way, but as my experience, this is really super fast way to speed up development and start marketing.
We have several templates just like clone of OnlyFans, Uber Eats, Getir, Netflix and much more... You could examine them from here.
I really curious about that you guys what are you thinking about app templates? What would you expect from an app template?
This is truly an amazing post, covers everything goes through most of the important stuff in a short and simplified manner, keep going!
Great post!
One thing I would add: start charging immediately. Even if it feels too early, it gives you the actual (and brutal) market validation that determines success or failure.
Agreed. In most cases, the sooner the better.
Well compiled.
Most of the products are not able to hit the market since they do not have MVP. Many Services think of themselves as startup and puts huge pressure trying to make the perfect product with creating value. I have done this mistake.
Now I treat every Startup as Micro SaaS to start (I mostly do SaaS) and focus on core functionality that will attract audience to me rather than good to have stuff that can be developed later.
Nice! Microsaas is a good way of looking at it.
Yes I have met a lots of people who calls the idea a startup. A startup has to start 1st and up can be added. But most idea gets killed during inception since core functionality is vague and then nice to have features on top of vague core functionality takes priority. I have done that look at www.shopypall.com that I built. It’s a nice idea but i completely ignored the core. Everything else is there but the core is still missing.
Thanks for this post, I am building a product, but I code too slow because I keep thinking how user will use the product (user experience) and as a result, I sometimes spent too much time on feature that should be faster to build.
Ya know, I started writing a novel once, and when I got about 8 chapters in, I started editing those chapters. And then I kept editing them. And then I never wrote the remaining chapters. 😅
Point is, you're not alone. I think a lot of people have this problem! You can't know what your users will want until they show you what they want. That's why I think it's best to put something out quickly, then optimize.
Great post! The "say no more often" really resonates.
The easiest code to maintain is the one you did not need to code.
Well said :)
The "Manage yourself" resonated with me a lot. I feel that descoping is sth that we should emphasise more and more. It's easier to reach small successes and (in)validate assumptions in limited batches.
Agreed!
Thanks for the tips! I just started exploring indie hacking. Is there any advice on user management design?
Great post! Especially about the point of being comfortable with the tech stack. I made this mistake once. Also if anyone knows Ruby on Rails already just use that, you can't have faster development time than that (hot take?)
Very helpful info, thanks for sharing! I am actually working on a project - ClickStack to make spinning up backed services much much faster.
Thank you for sharing all these tips to speed up the development. It took 5 months to build my first SaaS and it's already too long with a lot of mistake along the road.
To reduce this time by 80%, I've built Nextless.js a React SaaS Boilerplate and it perfectly fits the two sections of this article: Code Faster and Test faster. Nextless.js handles all the common features needed by a SaaS.
So, you can focus on your business instead of losing your time reinventing the wheel: like losing your time to "choosing the right stack", "choosing the right IDE", "leveraging low code" by going further with serverless, add "CI/CD pipeline" quoted from this post.
You'll get all the common features needed by all SaaS:
You can find more information at https://nextlessjs.com
You will see how Nextless.js can give you more time to "Plan your scope", "manage yourself", "Optimize your lifestyle" by "eat healthy", "Sleep", "Exercise" and at the same time, earning your first MRR.
what database do you use with nextjs?
I use DynamoDB with nextjs, perfect database for Serverless environment: scale to zero, pay per request, no server management, etc.
Thanks for this very interesting thread. I personally would have added Notion in the productivity tools to organize the development of the application.
Yeah, Notion is a great tool! I know people who use it exclusively.
Yeah, I can attest to that one 😅 I've got WIPs for days.