We are finally here! In 2026. After all these years.
I previously had a Jekyll static site/blog that I've been meaning to port. Life got in the way. Then shiny object syndrome got in the way. I kept getting stuck on picking the right stack or the right design. This time I finally decided to just ship new year, new me and choose something from scratch.
What I built it with
- Next.js 15 with the App Router
- Tailwind CSS for styling
- MDX files in the repo for blog posts and project entries
- Vercel for hosting with automatic deploys on every push
Why this stack
I've been through a few iterations in this space over the years.
In college I had Blogspot, then Wordpress, then Blogspot again. I despised both. The software felt like it was fighting me the entire time. Plugins, themes, an admin UI I couldn't control or customize. I didn't know it at the time, but I didn't want a CMS. I wanted my own stack and full control without having to start from hello world in HTML/CSS/Javascript.
Jekyll with Markdown and GitHub Pages was a real upgrade. Write in Markdown, commit to Git, deploy for free. To this day, this was the closest to getting it right at the time. And for a while, it was perfectly adequate. I shut it down eventually because Jekyll build times became annoying even at my modest scales. Ruby dependency management became a headache. Side rant, but to this day dependency management is an unsolved problem in software. I don't care what language or stack you work with, there will be something that eats up your time because there's some conflict with dependencies.
After Jekyll around 2017, I was homeless pretty much and tired of searching for a home. I looked at Hugo and Gatsby. I quickly discarded them both. Gatsby forced GraphQL as the data layer for everything, including reading local Markdown files off disk. Writing a GraphQL query to get a blog post is insane and I want to write a whole separate post on what GraphQL is actually good and bad for. Hugo was fast and the content layer was great. But the layout of components and the templating system uses Go template syntax, which is tough to write. And I wasn't comfortable enough in Go to want to fight through that just to build a personal site. I probably should have given Hugo a better go after Jekyll in retrospect.
But alas, no use crying over spilt milk. Because I finally have a new home. Next.js is where I eventually landed. I have React experience, so the component model is familiar. I still get MDX files for posts, basically Markdown with the option to drop in React components when I need them. Simple enough to write by hand, structured enough to be AI-readable and AI-generatable. And the ceiling is high. Next.js isn't a static site generator. It's a full framework. If I want to add bells and whistles, that option is always there. If I want to add full text search, a database, an API, interactive ML demos and visualizations, I can do it in the same codebase without restructuring anything. But I also get the bare minimum that I need and I can keep it like this indefinitely.
This is my new home. Danny has finally found his new home.
What's next
I'll definitely be writing more posts here, some of which are posts that I have had locked away in a dungeon for a while. I'll write about software and then non software. And with non software topics, I intend to write about all sorts of topics. Expect reviews on books. Expect reviews on fitness programs. Expect analysis on MMA. Expect shower thoughts and rambling about life, parenting.
I also have some projects to share. Expect projects on AI, machine learning. There will be Kaggle projects. There will be random hacks shared like home automation, 3D printing. There will be technical paper reviews, technical blog reviews. There will be blood.