Build Log: Cutting Down My Blog Post Publishing Process

Friendcatchers are a good idea so let's make it easy to publish mine on the internet. How? By setting up a blogging system that makes it easy for me to hit publish.

I have been self-hosting a ghost instance on Railway for a few months now and it's quite cheap at about $3 a month. So I'm thinking I'll just hook it up to a Next.js frontend and call it a day.

The deadline for v1 of this project is 5 days from now. Let's see how well or badly I do.

20/02/2024 eod update

I've been able to set up a new repo with typescript configured. I'm using a mix of articles to work on this:

Using the Content API JavaScript Client turned out to be a little difficult. From this forum discussion, I learned that Next 14 seems to break its functionality. So I switched to interacting with the API directly.

Achieved

Set up the project.
✅ Interacted with the ghost content API.
✅ Displayed the titles of published posts.

Next Steps

Rendering a single post.

21/02/2024 eod update

I just realized that I never set the "success state" for this project. It could be called the scope or the goal. Because I was just thinking to myself, okay, I have a functional blog, what next?

Anyways, that's tomorrow's problem. Right now, I'll state my wins and pending things.

Achieved

✅ Render a single post.
✅ Make the post display on the blog page pretty. Display post title, excerpt, publish date and estimated read time.

Next Steps

Establish success metrics for the project.
Consider if fixing the ghost bookmark feature is worthwhile.
Create a navbar. Consider if making it responsive is a priority for v1.
Consider if fixing the SEO stuff like site name and such is a priority for v1. (I think it is)
Consider adding a footer blending https://maxschmitt.me/ and https://2019.maxschmitt.me/

23/02/2024 eod update

Yesterday I didn't work on this so there was no update.

Today I added a navbar and made it responsive without even going through the whole thought process of whether or not responsiveness is a priority for v1. Bad Adrian, bad. Anyways, it's done now.

Achieved

✅ Create a navbar & make it responsive.
✅ Decided that fixing the bookmark feature is not worthwhile for V1.
✅ Created a footer and a cool hire me button.
✅ Add analytics.
✅ Fixed the SEO stuff. Site title & description.
✅ Added the favicon.

Next Steps

Migrate the old site's pages to the new site.
Move the DNS stuff over to Vercel.
Re-route defunct pages to the relevant places. Eg about page -> home page
Migrate next.config.js file.
Establish success metrics for the project.
Set up the old site on a subdomain?

24/02/2024 eod update

Achieved

✅ Ported over the about me page.
✅ Ported over the now page.
✅ Added a section that talks about things I've done in the past.
✅ Ported over the talks page.
✅ Ported over the projects page.
✅ Ported over the technical writing page.
✅ The success metric is to get this site functional by eod 24/02/2024
✅ Migrate next.config.js file.
✅ Re-route defunct pages to the relevant places. Eg about page -> home page, now page -> home page.

Next Steps

Move the DNS stuff over to Vercel.
Write about this process. Write a tutorial? (like this one)
Set up the old site on a subdomain?

Next iteration aka wishlist

A big part of shipping this project was cutting scope so that I'm able to ship in 5 days. So herein lay the things that were cut and will hopefully be revisited in the next iteration.

SEO stuff:

  • Add OG images that are auto-generated. (this can be a stretch goal if I finish the project early)
  • Add sitemap & robots.txt.

Show my work stuff:

  • Re-work the projects page to show off my work better.
  • Add a "testimonial" section on the home page that displays what my managers have said about me.
  • Create a case study for the work you did for Fluid Tech Global. Maybe make a video that shows the before and after of their website? Display this on your personal website landing page under the title: "Some things I have done. (example: maxrozen, maxschmitt). Maybe use a tool like remotion to make the said video.
  • Port over the case studies from my previous portfolio site.
  • Migrate the Wordle project to Vercel DNS.

UX stuff:

  • Style visited links a different colour.
  • Fix the bookmark card.
  • Highlight the active page on the navbar.

Conclusion

I was able to ship this in 5 days 🎉 using Typescript nonetheless! Though it mostly stayed out of my way and I appreciated that.

Achievements

✅ Built my first typescript project.
✅ Managed the scope of the project and shipped it on time.