Published on Sat Oct 17, 2026

Taken in Kyoto, Japan. September 2026.
I’ve had a bit of free time lately which I’ve dedicated to a long-overdue rewrite of my website! Most things should look pretty much the same as they did before. The most notable user-facing changes are a new photos page, a hierarchical navbar, a zillion tiny pixel and color pushes, and, assuming I didn’t miss something, every page now starts with a photo I’ve taken.
The bulk of the changes were behind the scenes. The guts of my previous website
were getting pretty rusty, with a lot of half-assed abandoned experiments
sitting around making it difficult to focus on what I really wanted to use this
space for: sharing my ideas, knowledge, and photos. I’m still rocking jekyll to render everything, but this time I’ve replaced HTML/Liquid templates with slim. For whatever reason I’ve chosen to die
on the hill of continuing to write and maintain my own HTML and CSS in the era
of clankers, but I at least made it easier on myself by clearing out all the
< and >s. As an example, here’s what my index.slim page looks like:
---
layout: base
title: Home
cover_image:
file: '000356120032.jpg'
caption: El convento de Cuilápam in Oaxaca, Mexico. Taken in January, 2026.
---
.container
h1 Home
== partial('callout.slim', emoji: "🚧") do
markdown:
You're seeing a recently released rewrite of my website. I'm just one
dude working on this, so if you see anything that looks awry please
[let me know](mailto:s@vesto.me) and I'll patch it up.
== partial('cover_image.slim')
markdown:
I'm a software engineer who enjoys sailing, cycling, photography, vegan
cooking, and urban planning.
This space is a digital garden for my writing, notes, artwork, and projects.
A place for experimenting with working in the open for friends, family, and
wanderers to hopefully find useful or interesting.
h1 Journal
markdown:
If you'd like to keep tabs on what I'm up to you can follow me via [RSS](https://www.vesto.me/feed.xml), [Mastodon](https://merveilles.town/@vesto) or a [monthly newsletter](https://buttondown.com/vesto).
.index--journal-box
== partial('post_index.slim', posts: site.posts.reverse[0..5])I can even blend Ruby into my templates! Here’s the code that renders lists of posts with differing icons depending on the category:
ruby:
@map_emoji = ->(post) do
if post.data['categories'].include?('microblog')
"🌐"
elsif post.data['categories'].include?('links')
"💬"
elsif post.data['categories'].include?('photos')
"🖼️"
else
"📔"
end
end
ul.post-index
- posts.sort_by { |p| p.date }.reverse.each do |post|
[... more code here that I won't bore you with]It’s such an improvement over constantly fumbling with logic in Liquid templates1. Trying to bolt a stripped-down programming language into HTML always felt dirty to me. I’m glad Slim just gives me Ruby and lets me fling filth of my own making around my layouts.
Anyways, today was a milestone for me so I figured I’d cap off the work with a post to celebrate. My hope is that this new site ends up unclogging a bunch of things I’ve been meaning to publish but have consistently put off due to how much of a hassle it was to build and deploy my last site.
Long live the small web!