Linguino

Jan Jenicek | Oct 23, 2022

Summary

Linguino began as my side project but soon evolved into an international web application. The purpose of this project is to make language learning more effective and enjoyable. While there are many apps focused on language acquisition, not many of them manage to be both very effective and enjoyable.

At first, I was responsible for developing both the backend and the frontend. The frontend was built with the help of React, Redux, and JavaScript, while the backend used Node.js and NoSQL Firestore database.

After releasing the Alpha version and celebrating our first 100 users, two other people joined the team, and I had to move into a more managerial position. The small app focused mainly on vocabulary and grammar, now expanded to include all aspects of learning a language, including reading, listening, pronunciation, and interactive speaking.

After two years, we released a public Beta version.

Now I am responsible for the project as a whole while also working on the frontend side.

Project analysis

Linguino was one of the projects where I gained the most experience with the frontend, backend, project management, and business.

On the front-end side, I learned about the React framework, state management using Redux, and writing functional code. On the backend side, I learned about designing REST API and explored the NoSQL databases and all the complexities that come with them.

One of the biggest challenges I faced was scaling the project when other people joined the team. In the beginning, I never thought that this project would evolve into something bigger, and I neglected all the important parts of building scalable apps.

I had to rethink the whole application, conduct proper analyses, rethink the architecture, set new standards for quality code, and start all over again.

We started using Figma and Storybook for a smoother application design. We also moved from JavaScript to TypeScript, started using Next.js, migrated from NoSQL to SQL, and applied more scalable design patterns on both sides of the app.

We also started to tailor the app more to the users. We conducted proper research, designed a new UI, and explored the world of User Experience.

While this wasn’t an easy process, it taught me a lot about the different problems that come with building scalable projects.

Thanks to the mistakes we made along the way, we have learned a lot about software engineering. Now we are moving faster than ever while building the app we have always dreamed of.

Technologies used

  • React, Redux, Next.js
  • i18next localisation
  • TypeScript, JavaScript
  • NoSQL, SQL
  • Node.js
  • Google Cloud Platform
  • Figma, Storybook