My First Business Idea Failed: Reasons and Lessons

Thomas Simmer
5 min readFeb 17, 2024

--

The project

In May 2023, an idea emerged to enhance my foreign language skills: a platform where users could read texts and click on words to receive definitions with examples of their usage. While aware of LingQ, I found its interface lacking and couldn’t seamlessly translate text from physical books. Also, ChatGPT, growing in popularity, offered an API that could generate text in foreign languages, which seemed promising to me.

On May 23, I then started to code a website. The features I wanted to achieve for the first release were:

  • Import text by copy-paste, by detecting text in images, and by asking ChatGPT to generate text about subjects of interest.
  • Possibility to click on words and get translations with examples.
  • Ability to save words and play memory games for retention.
  • Email/password and Google authentications, with a profile page where you can set a profile picture.
  • Vocabulary page for viewing and managing saved words.
  • A system of credit so that people can’t make too many API calls.
  • All features are usable on mobile and desktop.

I found the name NeoTexto during development. I like names starting with Neo and this app was mainly about reading texts.

I was a full-time software engineer at this time (and still am) and finished these features in my free time by August 5.

I used the following technologies:

  • Backend stack: Python, Django, and Postgres. I had around two years of experience in this.
  • Frontend stack: Next.js (v13). I had zero experience with it, but I had six months of React and two years of JavaScript experience.
  • Tailwind CSS, a utility-first CSS framework for rapidly building modern websites without ever leaving your HTML. I had zero experience with it.
  • Radix UI, an open-source UI component library for building high-quality, accessible design systems and web apps. I had zero experience with it.

I wanted a minimalist design and nothing to disturb you while you learn.

Home page. Text and translations for the word “Citoyen”.

I put it online on neotexto.com in August, using Hostinger. I had to pay around 10 dollars for the domain name for a year and 10 dollars every month for the server. Except OpenAI, the APIs I used were free as I did not use them a lot. I spent less than 5 dollars in total for OpenAI API.

I shared the website with people around me. I attempted to increase its visibility on platforms like Twitter and TikTok without investing in paid advertising. After around two or three months, no one would ever really use it. In December, I decided to shut it down.

Reasons for the failure

On the “technical” aspect, NeoTexto was not practical enough to use. Reading a text and clicking on words you don’t know may not be that fun. You would have to be really motivated to stay on the platform. The website was not enough “addictive”. The platform lacked social interaction and gamification elements. I personally used it for a month or two, but then my motivation faded and other priorities came up.

On the “marketing” aspect, I clearly did not advertise it enough. I hesitated to invest in advertising without a guaranteed user base. I was also afraid it would “blow up” and force me to handle it like a proper business. I had never done that before, and the administrative and legal aspects of business really bother me.

Finally, I did not want people to know about this potential failure and never associated NeoTexto with my name. Thus, I did not post it on my LinkedIn.

Home screen before authentication.

Positive sides

I achieved all the features I wanted, except one I did not mention yet. I wanted users to be able to generate podcasts out of their texts. This would be possible today, but it’s too expensive, in my opinion.

The development took me some time, but I felt I was fast and never wasted hours on a mysterious bug.

I can now start a new project using the template I created for this one.

Lessons I learned

I should always produce clean code. It does not really matter if your website has to appear on the market quickly. Your code should be clean. By doing that, you leave a good trace behind in case it’s a failure. And if the project goes on, coming developments will be much easier. Before I recently released the code in open source, I did some cleaning, but it’s still far from perfect, in my opinion. As the project is over, I consider it a waste of time to improve it more.

Advertise more. Ask people what they think of your idea, don’t be too scared that they might steal it. Trust yourself and share what you did if it’s supposed to be a business in the end.

Target a market. Take time to identify who could be the first targets of your project and start to advertise them first.

Consider writing tests for your project to ensure stability and functionality. It can help you test a feature during development. I wrote only three tests for the backend, but I think it was fine, the backend was not so complicated.

Prioritize quality over quantity when implementing features. When the few most important are done, have a few people test your first version. It should help you take a step back on your work and make it more “user-oriented”.

What’s next?

The project has been open-sourced. You can explore the code and even use it on your machine if you’re interested, requiring only API keys for translations. While the OpenAI API is not free, Microsoft’s Translation is available for free within certain limits, as are Yandex’s Translation and Google’s Authentication and Vision APIs.

At present, I don’t have immediate plans for further development unless there is significant interest from the community. However, I welcome your feedback and suggestions regarding the project or its codebase.

I am now waiting for a new idea to emerge.

Thank you for reading, and please share your thoughts on the concept!

You can find the code here: https://github.com/thomassimmer/neotexto.

NeoTexto’s logo.

--

--