Project Goal
I originally learned about web development by going through The Odin Project ’s JavaScript course, which covers vanilla JavaScript, React, and Express. At some point during the Express course, I got sidetracked and started exploring using Next.js for my backend instead, so I never reached the final project of The Odin Project’s course: creating a Facebook Clone!
I eventually came back to this project and created Benjibook! I created this project to thoroughly test my skills, and ultimately I just wanted to see if I could create a huge project like this.
The Stack
For this project, I used a collection of technologies known as The T3 Stack. This stack emphasizes type-safety, so TypeScript is at the front and center of everything.
This stack is built upon Next.js, which is the web framework I had the most experience with, so I felt comfortable using for this project. Other technologies that I used included:
- Prisma ORM, because it provides an easy and type-safe way to query my database
- Next Auth, because it allows me to securely self-host the user authentication required for this app
- Tailwind, because it allows me to write CSS quickly directly in my HTML
- tRPC, because it allows me to create backend routes, which are completely validated and type-safe easily
While tRPC is a relatively new library, I was particularly excited to use it in Benjibook and I enjoyed my experience with it immensely.
Lessons Learned
- How to successfully deploy software to a variety of different services (Vercel, Linode, Cloudinary)
- Starting with a requirements document and turning it into a full application
- Managing project tasks via a Kanban Board
- Maintaining full type-safety throughout my application using tRPC, Prisma, and the other T3 libraries