Rhyce.dev
Hey! That's this site!
2021
Next.js
Vercel
React
TypeScript
Supabase
Luxon
GitHub
TailwindCSS
Zustand
PostHog
What is it?
This site was built using Next.js, TailwindCSS, and TypeScript. It is hosted on Vercel. As you've probably already guessed, this is my own website built with my own features and functionality in mind.
Why is it?
My original site was built using WordPress which, if you know me, I have a dislike for. The old site, for some reason, ran slow and, being PHP based, wasn't very extensible by me. I felt it would be best to make a massive move to Next.js, since I was initially learning React in 2020.
Since that time, I've been working on the site on-and-off to build everything from the ground up. Since then, I've built, essentially, my own CMS where I can create and edit posts. I've also recently built a basic media manager, allowing me to upload and manage images and videos. Upon completion of this, I was able to shut down the old site and operate this one fully independently.
DB Troubles
MySQL to MongoDB to PostgreSQL and Supabase
Back in the early days of my new site, I was using a Express.js backend to handle a connection my new database, which ran on MongoDB. Why did I move away from this? At a place I worked at, we used Supabase for our database provider and I found out it was super simple and easy to use. This made me feel that I was adding extra steps to my site for no reason. So I decided to take some time to convert over to Supabase. Luckily I hadn't made new posts using the new database yet so I went back to my old website instance.
This was a fun one, WordPress uses MySQL as its database of choice while my new provider, Supabase, uses PostgreSQL. The fun part was converting some columns to have the correct types.
The Editor
This is probably my favorite part of the site. Behind the scenes in my custom built Admin panel. I have a custom post editor made using Monaco which is the same text editor used in VSCode. I found a module that allowed a quick drop in solution for React and Next.js and I've been using that since.
One of the main things I had to consider was the format for posts, was I going to stick with HTML, like WordPress, or switch to something else? I decided to make the switch over to Markdown, while the pain of converting my current posts was excruciating, the long-term benefits balance it out.
I can now easily make posts while ensuring the styling is consistent across posts.