This site: Hexo on Vercel

UPDATE Nov 2024: I have since moved this site to DigitalOcean. Nothing wrong with Vercel, but DigitalOcean provides more general cloud services and also has the ability to monitor a git repository and automatically build a Hexo site.

This is a static website built using hexo.io. It is deployed on Vercel. I write entirely in VS Code in the Markdown language. Vercel monitors a git repository for changes, and when it detects changes it runs a hexo generate to build the new site. I basically manage zero infrastructure and have a simple static site. No big CMS solution, or tons of code that has to run in your browser. This is ideal for me, as someone who fondly remembers the internet made of personal sites made with very simple HTML markup.

The workflow with Hexo is quite simple:

1
hexo new draft "This very post"

This creates a Markdown file under /source/_drafts called This-very-post.md. Open this in your favored editor and write blog posts as comfortably as you would write code.

1
hexo publish This-very-post

When you are done writing your post it’s easy to publish it. This will at a timestamp to the posts’s front matter (the bit at the top) and move the file to /source/_posts.

1
hexo generate

The generate command will build the actual static website files. To preview your site just do

1
hexo server

…and your site will be at http://localhost:4000

It is not complicated to update posts after they have been published. Simply edit the Markdown in /source/_posts. You can even adjust the timestamps or anything else in the front matter. The hexo generate command will have no problems updating your blog.

If for some reason you want or need to build your site from a clean starting point, just run…

1
hexo clean

… all of your post data will still be there. Hexo will just purge its generated content so you can do a clean build.

Hexo supports plugins as well. I use hexo-generator-feed to publish the site’s RSS feed. Because hexo is a node.js application you can install plugins with npm.

Configuring various options for your site is simple too. Hexo reads your settings in _config.yml. The developers of hexo, plugins, and themes will provide guidance on what to put in your _config.yml to set them up.

I really enjoy blogging this way. I don’t have to login to some website or app and suffer some half-baked editor or deal with awful Markdown support and rendering. Best of all I have all my content saved automatically as source code. My content itself is not stored in any proprietary format, just Markdown.

For fun, to generate my site and send it up to git I have a little script called yeet.sh. Nothing fancy at all but it saves typing.

1
2
3
4
#!/bin/bash
echo "Yeeting the blog"
hexo generate && git add * && git commit -m "update" && git push
echo "The blog has been yote"

The internet is for information, not tons of JavaScript and trackers and ads or obstrusive UI. That’s why I like this. If you visit this site all you get is the content. There’s nothing else here, and the effort for me is minimal!