Todo App: Why is it a Good Choice for a Pet Project?
Tags: programming, beginners, todo, webdev
Published: 2023-07-10 15:38:12

Have you ever pondered whether it's worth it for newbie programmers to invest their time in creating yet another Todo App as a starter project?

The Todo App has become a classic, often seen as a clichéd and overused concept for initial projects. But, what if we reconsider and view it from a fresh perspective? 

In this piece, I'm keen on sharing my insights and experiences, aiming to benefit developers who are setting out on their programming journey, just like I did.

### 🐝 Todo App: A Simple Task that Demands Comprehensive Knowledge

A Todo App is a typical task manager.  You add tasks, mark them as completed, and delete them. It seems pretty straightforward at first. However, I strongly believe that it's an excellent exercise for beginners, and I'm going to try to convince you.

Despite being a small project, it requires a vast range of knowledge. It's an opportunity to put into practice all the tools you've learned so far. 

For instance, while working on a React task, I had substantial hands-on experience with _hooks_ and understood the advantages of using _Context_ and general state management tools. Moreover, I utilized tools like _React.memo_, _useMemo_, and _useCallback_ to optimize the application.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q2tpqkxmbvqwfbia8og9.png)

### 👀 Todo App: Pay Attention to Project Structure

Although the project may seem small, undertaking it makes you appreciate the significance of structuring your application properly, dividing logic into separate components and files, and maintaining code readability.

### 🎓 Todo App: A Chance to Familiarize Yourself with Additional Libraries

If you're considering building a Todo App, I'd suggest deciding in advance the libraries you'd like to experiment with. For example, I used the [i18next](https://www.i18next.com/) library to understand how to create multilingual applications and the [React Transition Group](https://reactcommunity.org/react-transition-group/) to make the application more engaging and fluid. 

I assure you, a Todo App can be more than a simple starter project - it can be a playground for enhancing your skills.

### 🖥 Todo App: Not Just a Front-end Project

You could develop the Todo App as a front-end-only project, handling the task list locally. But you could also take a step further and create a complete full-stack project. While working on this project, I used a student API provided by my school (_Mate academy_🚀), which gave me practical experience working with APIs on the client side. However, I intend to return to the project and create my own _RESTful API_ using _Node.js_. This will be a practice that, while simple, will be incredibly useful.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b4lqx6jjgwdg4zm4y6o4.png)

If you wish, you can take it even further and add user authentication functionality so that the application can be used by multiple users. This will surely be a beneficial experience for your future career.

### Conclusion.

A Todo App is an excellent method to bring your first extensive project to life, applying your existing knowledge while also learning and exploring new tools. Of course, more intricate projects would make your portfolio stand out, but remember that your initial project should be achievable and enjoyable, both in process and outcome. 

For me, the Todo App was the gateway to experiencing programming and developing a lifelong passion for it.

🙏 I appreciate your time spent reading this article. Since it's my first attempt at writing, your feedback and insights are invaluable to me.