Hey! I'm on a mission to make 100 React.js projects. Please follow my dev.to profile or my twitter for updates and feel free to reach out if you have questions. Thanks for your support!
Link to today's deployed app: Link
Link to the repo: github
I'm writing you today to talk about failure, and the nature of success. I don't feel bad about it. There are people out there who believe in positivity like a religion (they are mostly in sales and marketing), they do not like to acknowledge failure. They fake it til they make it and see themselves as being perpetually better than all competition as a mindset (a.k.a. a "grindset").
That is not me. I am grounded in reality and believe in plain speaking. And all roads to success are paved with failure.
On Halloween of 2020 at the height of the pandemic in New York City I sat alone in my Brooklyn apartment and dedicated myself to doing 100 React projects in 100 days. It was one of the harder things I had ever done, but I knew it would force me to learn. Every day I made a new project in React, usually based on some concept I was learning in tutorials or on Youtube or from a blog, then I would blog about it.
The whole process probably took about 4 hours per day on average. Both the projects and the blog posts ended up taking equally large amounts of time. For this reason eventually (around project 25 I believe) the space between projects slowed from every day to every other day, and so on.
In this time I also ended up getting referred to a full time job and around project 80 I basically stopped doing the projects altogether. So now, 3 and a half years later I'm writing the final blog post for the 100 projects. Better to finish something you've started than not, even if it's late, no?
The last project I made in React, which I actually made about a year and a half ago in the fall of 2022, was called Portful.co. It is a React project with Context API, Typescript, Firebase, and hosted on Netlify. The idea was to make a space online where developers and creatives could display their portfolio easily and elegantly without having to buy a domain and code their own website. I still think it's a good idea, but this project wasn't it.
At the end of the project I tested, launched it, and after over a month of working on it realized that not only was it poorly styled and not a great substitute for hosting online creative work, but also that Create React App apps have no SEO ability. Even after working on React for multiple years it had never dawned on me that React alone was literally a "Single Page Application". It's technically only one page with different Javascript components being showed in a page-like manner to users. But search engines can only index actual pages.
After probably 150 hours of work I gave up and abandoned all hope. A friend who is a senior developer mentioned that this is why people use NextJS or Gatsby.
It's pretty funny that after all that time working on React, and even passing coding interviews and having a full-time job, since I'd never tried to build a real product before I'd never thought of the ramifications of a lack of SEO. Previously, I had thought SEO was for marketers, and I wanted nothing to do with it.
Still though, in building the project I learned about all the time it takes to actually launch a new site that was (close to) complete. It has auth, a database, routing, and I actually got a few people to use it although they abandoned it quickly.
I also likely became a better developer. Building out request-response cycles and storing the successfully queries in local state became second nature.
To summarize the 100 projects as a whole, although completing it in 100 days was a failure, I did learn a ton through practice and experience- something tutorials can never teach you. And in the process of writing thoughtful blog posts, I was forced to communicate the concepts learned which also feeds into learning. If I could do it all over again, I would. Though next time I take on something like this I'll stick to the time limit I do it in.
If you're interested in pursuing something like this, I recommend you go for it. There's nothing stopping you. By publishing your projects publicly you get social accountability, and by completing it you learn what you're made of. Most of all, by setting hard goals and attempting to achieve them, you learn about both the technology you're practicing and yourself through failure- which is the greatest teacher.
Thanks to everyone who supported me along the way. There's much more to come 🙏
If you like projects like this and want to stay up to date with more, check out my Twitter @jameshubert_com, I follow back! See you tomorrow for another project.
Top comments (0)