MCCreations
MCCreations is a Minecraft-based UGC website where creators from around the world can upload creations that they've made in the game and share them with the community.
History
MCCreations began as the frustrated response to the state of other Minecraft community sites at the time. The most popular site to download maps at the time was beginning to seriously show its age and the admins had been gradually becoming less and less responsive making it harder and harder to get content uploaded. Seeing frustrations in the community and armed with my very limited knowledge of web development I decided to embark on a journey to build my own site from the ground up.
Starting Small
Realizing I didn't have the knowledge to build my own site from the ground up quite yet I built the first many iterations of the site in the Wix.com sitebuilder. Unlike other sitebuilders at the time, Wix allowed for heavy customization of the site's design and functionality through the use of their API and managed database services. This allowed me to start with a bare minimum of knowledge using their provided components and gradually build up my programming skills by expanding into using their API for more and more tasks.
In March of 2020 MCCreations launched looking like... this

Growth
I knew Wix was always going to be a stopgap solution, it was slow and clunky for both me and the sites users. There were several things I simply could not do, or at least could not do without significantly more effort than was reasonable. As I began finiding myself trying to work around the limitations of Wix rather than with them I began looking into alternatives for continuing the website.

As I progressed through college and my knowledge of web development grew I made several attempts at truly building the site from the ground up myself. First I tried plain React in late 2020, but quickly realized that I was not ready for the complexity of a full-fledged application. Sometime in 2021 I made another attempt, this time with Next.js instead of plain React but I couldn't quite get it off the ground. Finally in June of 2023, armed with the knowledge I had gained through college, I started my final attempt at building the site from the ground up.

MCCreations Now
Next.js was the obvious choice for the frontend, I was already very familiar with base React from my classes and Next.js provided several nicities that made it perfect for building a fairly large UGC driven website. Those being the built in file based routing and image optimization.

The backend was a bit more of a challenge. I originally set it up with Express because that was what we had been using in classes, but I was not super happy with the way it handled types. Eventually I settled in Fastify because it provided much better support for types and was a bit more modern than Express.

MongoDB was chosen as the database because it most closely represented the way data was stored in Wix. I also wanted to try something other than SQL and I had been using JSON extensively at my job at the time so it felt like the perfect match. While it has worked out ok for the site, at this point in the project I do wish I had gone with a slighly more traditional SQL model simply due to the lack of data safety in MongoDB.

The site is live at mccreations.net and is hosted on Vercel. The code is available on GitHub.