My biggest project ever, Dripleaf.
For those who aren’t aware, Dripleaf is a Minecraft server hosting network I have been developing since the start of the year.
But what does that mean?
To put it simply, a Minecraft server hosting network is where users can create a Minecraft server and will be able to connect to it through our lobby; thus creating a “network” of Minecraft servers.
How is this possible?
Dripleaf is made possible by so many amazing technologies. Let’s start with the proxy side of things, then we can get into the fun stuff later.
The “proxy” is the Minecraft server players connect to. It connects them to the entire network of Dripleaf, giving them access to play any currently running server.
- The proxy software of choice was Velocity due to its ease of use, regular updates, and security.
- For the proxy to connect with the backend, and vice versa, Pusher is used as our WebSocket client. Pusher was chosen due to how “complex” solutions like socket.io can be, as well as its support for serverless architecture
The entire frontend and backend of Dripleaf are bootstrapped with Create T3 App, which makes it easy for you to create an app with bootstrapped technologies. The stack of Dripleaf is meant to increase speed, and it surely succeeded at that.
- For our database, we’re using Planetscale with Prisma 5 as our ORM. This has been such an enjoyable experience, and I can’t imagine switching from Prisma.
- In terms of authentication, we use Clerk for that. Some people hate it, some people love it. We chose it here due to the simplicity, and relieves the burden of maintaining and rolling our own auth.
- For error logging and analytics, we use self-hosted instances of both Sentry and Plausible, both have been amazing so far.
- For our UI, we use various libraries to make it look good and function properly.
- We’ve built on top of Radix for the majority of our component library, so we can have our look without sacrificing functionality.
- File uploads are handled by UploadThing, which makes things very simple in a short period of time.
- For managing the several forms across the site, that’s where React Hook Form comes in. It provides easy-to-use validation and handling for any sort of form we need.
- Now, for our backend.
- The majority of our backend is written using tRPC, which creates a wonderful experience for both myself and the users. For routes that need to be easily accessed externally (e.g. in our Minecraft proxy), regular Next.js API routes are used.
- For payments, Stripe is used. Its developer experience has been top-tier as of right now.
- For our emails, we use Resend along with React Email to make them look awesome.
This seems great, how can I support you?
There are a few ways you can support Dripleaf 🎉