Before we start, two small disclaimers:
- This post tells our own experience of building a SAAS application. It doesn't say anything about what you should or should not do. There is no universal truth when it comes to building something. Our goal is to give you inspiration and ideas to build your application or project.
- We also use AI-generated images from Bing image creator to illustrate the sections. If you don't like them, tell me, I can change it, if it causes issues in the reading.
Building a SaaS product is an exciting journey, filled with learning and challenges. In this post, I’ll walk you through how we created Touchlead—an all-in-one marketing solution for businesses—starting with just a small development team. While this isn’t about selling anything, we’ll share the steps we took from ideation to launch, hoping you find some useful takeaways. You can check out Touchlead at touchlead.app.
1. Before we start
Why We Created SaaS
The idea of building our own product had always been exciting. With SaaS, we could experiment quickly compared to hardware or on-premise software. The ability to iterate rapidly based on feedback and continuously improve was incredibly appealing.
We also had some past experience building SaaS applications, and starting this project on the side while maintaining our full-time jobs helped avoid the pressure of diving in too fast. It allowed us the freedom to test ideas without the risk of jumping into something prematurely.
Finding the Idea
One of the most important things when creating a product is picking a domain you understand and enjoy. In our case, sales and marketing are critical for many businesses, and it was something we were familiar with. This was our focus for Touchlead: building a solution to simplify marketing for small businesses, helping them generate more leads and close more deals.
Gathering a Team
You don’t need a big team to start. In fact, the more people you add, the harder it becomes to coordinate everything. Initially, I started this project solo, handling everything from coding to marketing. As the idea matured, I reached out to professionals from my network and friends to lend their expertise. If you're starting out, don’t hesitate to work solo—additional help can always come later.
Picking the Name
Choosing the right name for your product can feel daunting, but it doesn’t have to be perfect. The key is to find something easy to understand and relevant to your audience. For us, Touchlead made sense. It reflects our product’s mission: helping businesses get in touch with more leads. Don’t overthink it—many successful applications use simple and effective names.
Our Tech Stack
There’s no universal "best" tech stack. We decided to go with what we knew best: TypeScript, Node.js, Koa, React, and Vite. This is a common and well-supported stack that allowed us to build fast and efficiently. These technologies have large communities and plenty of resources, which made it easier to find solutions when we ran into problems.
However, the most important thing is to use technologies that you and your team are comfortable with, as long as they meet your product’s requirements. What matters most is being able to iterate quickly and stay adaptable as your project evolves.
Make Smart Choices for Multiplatform
From the very beginning, we knew we wanted Touchlead to be accessible on multiple platforms. This meant the technology stack we chose had to support cross-platform functionality without requiring us to rebuild the app multiple times for different devices or operating systems.
That’s why we opted for web technologies. By using a stack based on React for the frontend, we could easily build an interface that works on desktop, tablet, and mobile without needing separate codebases for each platform. With a responsive design, the same React code adapts to various screen sizes, ensuring seamless user experience on any device.
On the backend, Node.js allowed us to create a robust API that works equally well for any front-end client, whether it’s a web browser or a mobile app. This decision also opened the door for future possibilities like packaging the app as a Progressive Web App (PWA) or even using frameworks like React Native to create mobile applications without reworking everything from scratch.
This approach saved us countless hours in development time and ensured that as we expand, we can support multiple platforms with minimal friction. Whether on Windows, macOS, iOS, or Android, our users get the same consistent experience—all without having to build and maintain 10 different versions of the app.
In short, by choosing a web-first tech stack, we future-proofed our development efforts while keeping things flexible and efficient, ensuring Touchlead is accessible wherever users need it.
Hosting Provider
In the early stages, it’s easy to overthink hosting, but the truth is: keep it simple. When we first started, we ran everything locally while testing the application. This allowed us to develop and iterate without incurring any hosting costs.
As we prepared to go live and gain our first users, we opted to rent a single OVH VPS (Virtual Private Server) to host everything, including the app itself, the database, and any tools we needed. This approach kept our costs extremely low while giving us enough control and flexibility to scale as needed. Cloud providers like AWS or Google Cloud can offer great services, but they can quickly become expensive, especially in the early stages when you're trying to stay lean.
By using an OVH VPS, we were able to host our entire stack—from the front-end app to the backend API and database—on a single server. This setup worked well for our initial traffic and allowed us to have everything in one place, simplifying management. For most small projects, this is more than sufficient until you start getting significant traffic.
Managing Costs
Cost control is crucial when you’re a small team, especially when you don’t yet have paying users. With cloud providers, the temptation to spin up multiple services—load balancers, database instances, scaling groups—can quickly drive up your monthly expenses. Instead, by sticking to a single server, we were able to run efficiently without unnecessary overhead.
We chose OVH because it offered reliable service at an affordable price, but similar providers such as DigitalOcean, Linode, or Vultr would work just as well. For us, it was all about finding a balance between performance and affordability.
Scaling as You Grow
As your application grows and traffic starts to increase, you can look into more advanced solutions. One option is to offload certain components (like databases) to specialized cloud services or scale horizontally by adding more servers. Another route is using Docker as a service, which can simplify deployment and scaling by packaging your app into containers.
But there’s no need to rush into this. Early on, keeping your infrastructure simple and costs low allows you to focus more on building features and gathering user feedback. Once you start seeing consistent traffic and usage, then you can explore more sophisticated hosting options.
2. Let's get started
Start Coding
When you start coding, resist the urge to build too many features right away. Focus on the core functionality that solves your users' most immediate needs. It won’t be perfect, and that’s okay—your architecture can always be revised later. Write some tests, but don’t get bogged down in trying to make everything flawless at the start.
Launch and Get Feedback
The sooner you can get feedback, the better. Launching early helps you catch mistakes and fine-tune your product based on real-world usage. Engage with communities, forums, and blogs to gather insights. We used platforms like Touchlead’s feedback system to collect feedback, and it’s been invaluable. Take suggestions seriously, but keep your vision in mind. Ultimately, the only feedback that truly matters is from your real users.
Sales and Marketing
As a small team, you need to get creative with sales and marketing. We relied heavily on free, automated tools like Google Search Console, Google Analytics, and in-app logs. Don’t neglect your onboarding process or marketing website—it’s the front page of your product. Building a professional site can be expensive, but there are plenty of free resources out there (e.g., free themes or platforms like WordPress) to get you started.
3. Once it's live
Iteration
Iteration is the key to success. We keep a list of features and improvements we want to work on and are constantly iterating based on user feedback. You don’t need a complex structure to manage tasks—tools like Trello can be just as effective as more robust platforms like Jira. The goal is to stay flexible and continuously improve.
4. Conclusion
I hope this post provided some helpful insights into the journey of building a multi-platform SaaS with a small team. Feel free to share your thoughts or ask any questions—I'd love to hear your feedback!
Top comments (0)