I've been working for 9 years full-time as a software developer. This started way earlier - for around 17 years now I'm learning how to write software, learning multiple languages and frameworks, getting a Bachelors Degree and working in multiple companies.
But a dream of mine is writing software solutions by my own and being capable of living from it, so I can focus my time on working on my solutions, adding features and constantly make it better.
My first SaaS idea, which is not an innovation to be honest, evolved from a problem I had: I was learning to develop using Flutter, and when you create a multilingual app, you use .arb files to manage your labels in different languages.
This can become obstructive quickly.
- I had to update all .arb files before I could use it
- I could not see if a label is temporary or correctly translated
- I could not separate translation from development
So I started to create a platform, which should decouple the programming and the translating process - I program and add labels, translate them later and download the translation files into my workspace. Thats the idea behind Collingo.
- I moves the translation process
- I can concentrate on the translations
- The CLI tool makes it easy for developers
- The Web UI makes it easy to translate
- And it is even build to be used collaboratively in a team
But the whole development process took longer than expected and there are a lot of things I would do different on my next project.
Focus on the MVP, not on perfection
One of my biggest problems is my tendency to over-engineer things, because I want it to be perfect. I started to build an architecture, which is capable of switching into a microservice architecture. It was designed to be capable of running on multiple servers or in the cloud. But this had a cost:
I rewrote my architecture multiple times - without coming closer to a unsable product
An MVP (Minimal Viable Product) is the first version, which contains the minimal features of the product, so it can be used, but it doesn't contain all features.
When you want to create your own software, it is important that you define for yourself, what your MVP is - what it contains. And then work on it to reach this state as early as possible.
Don't get me wrong, I'm not talking about neglecting your software architecture and letting your code become a mess. I'm talking about priority. First make things work, then polish it. If something works, but it is not 100% like you want it, take a note and plan it for a later release. The most important thing is, that you not spend months with restructuring and refactoring your code, without letting your product become real.
Compliance is part of the development
Writing code is fun.
Dealing with legal requirements is not.
But the moment you have users, it becomes unavoidable.
I had to learn about
- Writing terms and service
- Creating a privacy policy
- Where are the services I use located
- What are the privacy policies of the services I use
This is also part of the product development process and should not be neglected. This consumes your work time, but does not enhance your project, but still - it is necessary.
Choose a stack with focus of quick development
Like mentioned, your first goal should be to create an MVP. I created a big architecture, while it was absolutely not necessary.
My tip is: choose a stack with technologies you like and with which you can quickly develop. Optimization is a task for later - but plan ahead.
If you think about a "quick dev stack" and a "final product stack", plan ahead, what steps are necessary to make the change. This planning will allow you to make progress between the MVP and the final product, while preventing to create a prototype, which you have to rewrite completely.
Functionality first, design afterwards
I am not a designer - I'm aware of that. When I try to design things, it always looks kinda not fitting. For this reason I focused on the functionality first, because this is generally the value to the user.
So for my first version, I've chosen DaisyUI for the UI. I like DaisyUI, because first, it has most I need. Second, it adds styles. So when I want something different, I just leave out the class and write something different, instead of removing existing styles and changing it, trying to bend it how it should be.
This gives me the advantage of thinking less of the design and working more on the functionality. It has also one great benefit: The MVP shows me what feels good and what feels weird.
So when I start with the UX/UI redesign, I can use the learned to improve the user experience.
Conclusion
Building my first SaaS product taught me something simple:
Shipping something imperfect beats building something perfect that doesn’t exist.
If you're working on your first product—focus on getting it into users' hands as fast as possible - everything else comes later.
And side note:
If you're dealing with translation chaos in your software projects, you might find Collingo useful!
Top comments (0)