Nova's Personal Website (+ Blog) banner

Nova's Personal Website (+ Blog)

7 devlogs
24h 19m 9s

My personal website! Featuring dynamic widgets, a fully-featured and fancy blog with an RSS feed, a portfolio of my other projects, and much more. There’s also a powerful admin panel for me to manage posts and projects, and a powerful, technical backend. Written in Next.JS with Tailwind CSS and PostgreSQL.

Loading README...

Ghost of Nova

Shipped this project!

Hours: 24.32
Cookies: 🍪 363
Multiplier: 14.93 cookies/hr

I completed the full website and blog! It’s a fancy, custom website for me to share things about me, my blog posts, and much more. I learned a lot by building this, as I had to work with many technical things (regex, APIs, a database, etc). I didn’t use AI on any part of this project, so I had to solve things without it, and learned more because of that. Also, I made dynamic widgets for things about my project, including one that integrates with a previous project of mine!

Ghost of Nova

I updated a bunch of things to prepare to ship! I deployed the site to a DigitalOcean VPS, added Docker build support, added CI workflows, and fixed bugs. I also drew an 88x31 button (not tracked on my time). I was originally planning on deploying this to Heroku, so I had some hours working on setting that up (~1 hour) that I had to revert due to an issue.
I had to make some pages “dynamic” for them to work in the production environment. I found a few other bugs as well, like RSS feed links not properly leading to my website. I also made all of the widgets fully operational (including the fancy clock on the front page). Overall, this was very technically complicated to figure out, but I got the site fully operational.

0
Ghost of Nova

I made a widget on my homepage for blog posts, made my projects page pull from the database, improved mobile support, and added project management to my admin panel! The projects page was originally constructed from an array, but uses the database now, so I can add new projects of mine without needing to edit the code. This also included building an admin panel for actually editing the projects. I also moved buttons around on mobile to make it look much better. I tried to change the background to an image, but my CSS didn’t end up working as I wanted it to, so I had to discard those changes.

0
Ghost of Nova

I built an RSS feed for my blog! This allows my posts to be seen on other platforms, so people wanting to read my posts don’t have to check my blog for new posts when there aren’t any. I also built an auto-save system on my admin panel for when I’m writing, which made me work very hard to sync state across the database, server, and client (my state hooks were causing issues with how I had them set up). I also added some other things, like the ability to download posts as .md files, improving the viewer for posts, sorting posts by published date, and improving error handling.

0
Ghost of Nova

I created most of the admin panel to manage blog posts, on both the frontend and backend. I had some challenges, mainly with sorting out how to build the PATCH requests to send as little data as possible (as I commonly write things on low data, and I want this to be practical for me to use). The end result turned out quite well, and I even implemented proper error handling!

2

Comments

Charmunk
Charmunk about 1 month ago

woahhh i might steal your blog software

Ghost of Nova
Ghost of Nova about 1 month ago

:3 that makes me happy to hear!
(it’s improved a fair bit from this devlog, now it has rss, full markdown support, autosave, and more!)

Ghost of Nova

I started on an admin panel for the blog! This was mostly backend work, as I wanted a lightweight auth system (it just uses an environment variable for the password).
It also included database work to add things like a “published” field to the schema (to allow me to hide blog posts without deleting them), as well as hooking the blog up to an actual PostgreSQL database (running on my Raspberry Pi for development).

Attachment
0
Ghost of Nova

I built the foundations of my blog (and its associated database), a footer, an about page that talks about me and things that I like, and a widget that integrates with another previous project of mine (called Universal Status)! The ongoing Nest outage has made it a bit harder for me to do this, as I typically use Nest PostgreSQL while developing, and Universal Status is hosted there. I got around the latter issue by running a local instance of Universal Status and pointing the site there, and the former issue by editing my function to temporarily use placeholder data (in the same schema the database will follow). This one was quite fun to work on, and I’m planning some very cool things with widgets soon!

1

Comments

Ghost of Nova
Ghost of Nova about 1 month ago

oh, my video uploaded twice :heavysob:
it’s the exact same video, so it should be fine

Ghost of Nova

got started on the site and built the foundations of my project list, home page, and “accounts” page. also included making a header and figuring out some fairly complex things, like tailwind css gradient text!
a lot of this work was getting started, and i am planning on starting the blog and doing a bunch of refinements soon.

0