Hi! I’m Juraj Kostolanský, a software engineer from Slovakia. Alongside my full-time job, I’m working on my side projects. The main one is currently LocaleData.com — a simple translation management platform for Ruby on Rails apps.
I worked for a local edtech startup and my job was to create a web-based enterprise learning platform. It was an international Ruby on Rails application, so we collaborated with our external translators who helped us localize it into multiple languages.
The Ruby on Rails framework supports multiple different ways to store translations. For our purposes and requirements, the best option was the default one — a special file format called YAML. These files are good for computers and programmers, unfortunately, they are terrible for collaboration with non-technical translators.
What we really needed was a simple web interface to manage our translations. We wanted to (1) upload our YAML files, (2) invite the translators, (3) let them do their job, and (4) download the result. And we found such solutions. They also provided some really cool features which we didn’t really needed, therefore they were too pricey for us.
I’ve been always interested in small micro-services built as side projects. And this seemed to be a hot candidate, something I could personally use in the future, too. So I decided to accept this challenge, surprise my teammates and create such a tool.
It took about six months from the first project idea to the first public deployment. This seems to be a very long time, however, my productivity during the summer was quite low — among other things, I walked the beautiful Wales Coast Path for two week. It could probably be finished much sooner, but there was no reason to rush it.
I publicly deployed the first release in November 2017. I canceled the third-party subscription our company was using, uploaded our translation files into LocaleData and introduced this new tool to my team and our translators. Long story short: They liked it even better than the previous pricey solution (and, to my surprise, not only for its price).
In that time, LocaleData was publicly available as a beta version for free. I didn’t do a lot of marketing, but some people were able to find it. During the next months, I was receiving some feedback from the first users, fixing bugs, adding new features. I finally added a paywall into the application in April 2019. And, 7 days later, the first customer added his credit card and payed for the subscription. Since then, several other people have subscribed, too.
Attracting new users. I’m a software engineer, so building and deploying a product isn’t too hard for me. But marketing is something I’m still just learning.
The market also seems to be quite small in this case. Most of web applications don’t need to be translated into other languages, and only a fraction of them are built in Ruby on Rails, and only a fraction of them really need a third-party online tool to manage the translations
The cost of switching such a tool can be high, so companies probably don’t want to force their teams and translators to learn another new tool. And if they are already using some other tools, I’m not able to compete on features — I want LocaleData to stay simple and lean.
The first paying customers! I created something on my own, and some unknown people from the other side of the globe found it and wanted to use it so much that they pulled out their credit cards and gave me their money.
It was not about the dollars (or, in my case, euros), it was about the validation that I’m able to come up with and idea, build it and sell it to the world. That was a whole new experience for me.
I’ve done little to no marketing yet. I’ve just published some information about the product on some places on the Internet, such as ProductHunt, Betalist, Quora, etc. All of the paying customers have found LocaleData via a search engine.
I don’t know if this helped to retain my customers, but I’ve sent a personal email to every customer after the first payment. I’ve created and attached a photo of myself holding a piece of paper with a hand-written note “Thank you, <name>!” I’ve also offered a 50% discount to my early users.
I think that personal and friendly approach can be one of the biggest advantages of small companies. Being helpful, kind, open and transparent is a very high priority for me.
When the first MVP was ready, I soft-launched it in the company I was working for. Then I launched it publicly. I mentioned it on different places on the Internet and waited for the early birds. I spent the following evenings replying to messages, acting on feedback, fixing bugs, and adding new features. When I saw some traction, I implemented a paywall and got my first paying customers.
I published the project on ProductHunt and Betalist pretty early. And that was a mistake, because I didn’t have any audience at that time. And I didn’t have the knowledge how to approach a product launch on such platforms, so only a couple of people noticed that.
LocaleData is a SaaS, so I decided to use a classical subscription-based model with a free trial and three simple pricing tiers. They are based only on the number of managed translations. Unlike many of my competitors, LocaleData offers unlimited projects, seats and languages in every plan.
One of the biggest challenges for me has been the legal stuff. I didn’t know pretty much anything about invoices or taxes. Fortunately, at the same time, I decided to transition from an employee to a freelancer, so I needed to figure that out anyway.
And my long term goal for the future is to turn my side projects into my primary source of income.
There is a huge backlog full of ideas for new features and potential improvements, but there is no deal breaker in that list. I asked my customers if there is something they would change, but the answer was no, it’s good as it is.
So, except for minor improvements along the way, I’m not planning any new big features in the near future. LocaleData currently requires only minimal maintenance. Most of the work is related only to things like security updates, and making sure everything is working as intended.
This project isn’t currently making enough money to be a significant revenue stream for me, so it can’t be my primary focus, at least for now. However, I’m personally using LocaleData for every single new Ruby on Rails application I’m working on. I’m my own customer, and I’m definitely not planning to shut it down anytime soon, regardless of the number of customers.
One thing I’m considering to work on in the future is marketing. I have the greatest chance to attract those potential new customers who are actively looking for a solution, so the most useful channel for me seems to be the SEO. Maybe I will start a LocaleData blog related to Ruby on Rails localization, so that people could find the project easier. But, as I’ve already mentioned, I have a full-time job, so dedicating enough time for that is something I’m currently struggling with.
Solo entrepreneurs have to juggle lots of balls in the air, all at once. Especially when they are new in the business. Product development, prioritization, marketing, customer support, legal stuff, … Every area is difficult enough on its own. I spent a lot of my time absorbing as much information as possible, from many different sources. And I learned a lot!
Also, it was sometimes quite hard to find some extra time and push myself to work on a side project alongside my full-time job. One thing that definitely helped me was consistency. I need to do something for my goal regularly, preferably daily. New feature, minor enhancement, a small bug fix. Three minutes or three hours, that doesn’t matter. Just to keep that momentum going, to see some real progress. I’ve found that this really helps me stay productive and motivated.
I decided to use the stack I was already very familiar with:
I don’t think I have only one most inspirational founder, there are plenty of them. Here are some off the top of my head: Jason Fried and David Heinemeier Hansson (Basecamp), Justin Jackson (Transistor.fm), AJ (Carrd), Pieter Levels (NomadList), Adam Wathan and Steve Schoger (Refactoring UI), Nathan Barry (ConvertKit), Josh Pigford (Baremetrics), Sahil Lavingia (Gumroad), … The list is endless.
It’s hard to say which resources has been the most influential. After all, it’s the broad mixture of all the acquired knowledge that counts. But one of the most important resources for me has been the IndieHackers site. The forum, interviews and podcasts contain a lot of really helpful insights and tips for new entrepreneurs. I’ve also joined the MegaMaker community created by Justin Jackson. There are super kind and helpful members, so I can learn from more experienced founders and I’ve never felt alone in my journey.
Always learn. Build things you are passionate about, for the people you want to serve long term. Talk to your target audience as soon as you can. Listen carefully. Create real value. Be kind and helpful. Don’t be afraid to try and fail, that’s how you learn. And have fun!
Related Interviews