41554 blogs · [ { "id": "01a087cf-c496-7131-b6fb-e7ceb66feb67", "title": "An infinite loop bug in lua-http version 0.4", "url": "https://raphaelkabo.com/blog/lua-http-cve", "published_at": "2026-09-08T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7ceb6f6dc9b", "title": "We Hate The Big Light: Adventures In Making a Dumb Lamp Smart", "url": "https://raphaelkabo.com/blog/pooky-lamp-home-assistant", "published_at": "2026-08-22T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7ceb7c4e0d8", "title": "A Gardener for my Obsidian vault and a Morning Paper for my reMarkable", "url": "https://raphaelkabo.com/blog/gardener-and-morning-paper", "published_at": "2026-08-17T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7ceb863b104", "title": "Navigating git diffs in VSCode with VSCodeVim", "url": "https://raphaelkabo.com/blog/navigating-git-diffs-vscode-vim", "published_at": "2026-02-26T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7ceb8d75e63", "title": "Self-hosting Matrix Synapse with Docker Compose and Caddy", "url": "https://raphaelkabo.com/blog/self-hosted-matrix-synapse", "published_at": "2026-02-25T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7ceb972404e", "title": "The Framework 12 is the Thinkpad X220 we deserve in 2025", "url": "https://raphaelkabo.com/blog/framework-12", "published_at": "2025-07-04T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7ceba09e6a9", "title": "Building a Tell-Tale Heart with an Adafruit Prop-Maker FeatherWing", "url": "https://raphaelkabo.com/blog/tell-tale-heart", "published_at": "2025-04-13T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7ceba85239d", "title": "Using Eleventy and S3 to build a personal photo blog", "url": "https://raphaelkabo.com/blog/photo-blog-eleventy", "published_at": "2025-04-13T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebb6ffc68", "title": "OpenOrb - a curated RSS and Atom feed search engine", "url": "https://raphaelkabo.com/blog/openorb-curated-search-engine", "published_at": "2024-04-17T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebb99b722", "title": "WS2812 fairy lights with ESPHome and the Pimoroni Plasma Stick", "url": "https://raphaelkabo.com/blog/plasma-stick-2040-w-esphome", "published_at": "2023-04-14T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebc326e58", "title": "Best-fit D&D damage to dice calculator", "url": "https://raphaelkabo.com/blog/damage-to-dice-calculator", "published_at": "2023-02-02T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebcf33d73", "title": "Deploying an Astro site through SourceHut", "url": "https://raphaelkabo.com/blog/astro-sourcehut-deployment", "published_at": "2023-01-31T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebd10a9fb", "title": "Finding out when the bins need to go out using Python, Docker, and Pushover", "url": "https://raphaelkabo.com/blog/undocumented-bin-collection-api", "published_at": "2022-05-04T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebd3acfd7", "title": "Suspending on idle on Void Linux using Sway WM", "url": "https://raphaelkabo.com/blog/void-linux-swayidle", "published_at": "2022-03-16T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebd887e3b", "title": "Wiring up Wireguard, Caddy, and Docker on a home server", "url": "https://raphaelkabo.com/blog/wireguard-docker-caddy", "published_at": "2022-02-09T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebe0fd110", "title": "uvcdynctrl-udev.log - a 20GB logfile", "url": "https://raphaelkabo.com/blog/20gb-logfile", "published_at": "2021-02-07T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebe535cb4", "title": "Using a HD44780 LCD display with MicroPython on the Raspberry Pi Pico", "url": "https://raphaelkabo.com/blog/pi-pico-hd44780", "published_at": "2021-02-06T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebed84faa", "title": "A simple gocryptfs mounting/unmounting script", "url": "https://raphaelkabo.com/blog/gocryptfs-mounting-script", "published_at": "2020-07-23T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cebfb9e105", "title": "Announcing two new online utopian games", "url": "https://raphaelkabo.com/blog/two-online-utopian-games", "published_at": "2020-06-28T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec03dfc63", "title": "You should write a static site generator", "url": "https://raphaelkabo.com/blog/write-a-static-site-generator", "published_at": "2020-06-18T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec11257ac", "title": "HelloEdit: The demon child of a Markdown editor, Microsoft Word 5.1, and Macintosh System 7", "url": "https://raphaelkabo.com/blog/helloedit", "published_at": "2019-05-29T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec1f943a5", "title": "A script to create print-ready tiny zine layouts on macOS", "url": "https://raphaelkabo.com/blog/tiny-zines-script", "published_at": "2019-05-25T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec2bbe85f", "title": "Introducing DocDown, the easy way to turn academic Markdown into Word documents", "url": "https://raphaelkabo.com/blog/introducing-docdown", "published_at": "2019-01-12T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec3af0154", "title": "Wordpress in a subdirectory with Caddy", "url": "https://raphaelkabo.com/blog/caddy-wordpress-subdirectory", "published_at": "2019-01-10T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec495fd2a", "title": "Simple image captions in Jekyll", "url": "https://raphaelkabo.com/blog/jekyll-image-captions", "published_at": "2018-10-08T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec4f0b170", "title": "A command line die roller for D&D", "url": "https://raphaelkabo.com/blog/command-line-die-roller", "published_at": "2018-08-03T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec5ec64fd", "title": "A simple Jekyll rsync script", "url": "https://raphaelkabo.com/blog/jekyll-rsync-script", "published_at": "2018-08-03T12:00:00+00:00" }, { "id": "01a087cf-c496-7131-b6fb-e7cec6471d07", "title": "My workflow for transforming academic Markdown into beautiful Word documents", "url": "https://raphaelkabo.com/blog/markdown-to-word", "published_at": "2017-05-11T12:00:00+00:00" } ] posts Claim your blog
Back to Raphael Kabo
Blog · corpus.blog/blogs/raphaelkabo.com/posts

Raphael Kabo

raphaelkabo.com

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017