Ryan Welch
  • Home
  • Blog
  • Projects
  • About
Apr 15

Getting word timestamps out of kokoro-js

Extracting word-level timestamps from kokoro-js which discards the phoneme duration data the ONNX model produces internally.

Feb 26

Automated Split DNS for a Kubernetes cluster

How I set up split DNS for my Kubernetes homelab so services get automatic internal DNS records and optional external access through a VPS and Tailscale.

Feb 06

Adding D2 diagrams to an Astro site

How to add D2 diagram support to an Astro site using astro-d2, with working dark mode support and Docker deployment.

Mar 13, 2025

Most useful markdown plugins to use with Astro

Discover my curated list of the best Markdown plugins for Astro, handpicked to enhance your blog. Learn what each plugin does, why they’re essential, and how they can improve your Markdown content.

Mar 06, 2025

Port forward with Tailscale

Learn how to expose self-hosted services to the internet using a cloud-based Tailscale VPN gateway.

Nov 01, 2021

Using External DNS instead of a Load Balancer for Kubernetes

Replace costly load balancers with External DNS in Kubernetes to reduce costs, support UDP traffic, and simplify node-level routing.

  • Previous
  • 1
  • 2
  • Next

© 2012-2026 Ryan Welch