Kristian Freeman
Obsidian is my website
How I Record Videos
About
Links
Projects
Four Ideas from Extensive Claude Code Usage
Setting up TeslaMate with Docker and Proxmox
Rewriting functionality with Claude Code
Skipping 𝕏 for Lent
Building a cleaning company
"Act as my personal strategic advisor"
Image Binding in Workers
Redesigning
Programatically generated weather SVGs
DIY Error Monitor
San Marcos TX Life
Linear Switch
Sleepy Time Tea
Caching Middleware with Deepseek and Workers
Integrating Workers Assets with Fullstack Apps
Recursively transcode FLAC files to MP3
Misogi 2025
My Morning Coffee
2024 Year in Review
Cloudflare Stream
Date and time numbers cheatsheet
How to Generate Types for a Supabase Project
How to filter shell output with grep
Recreating the Matrix Effect
Running a Ruby on Rails Application in Nix
Beverage Hydration Index
Just enough Obsidian
My starter macOS Nix Config
Message of the Day
Success with Obsidian
Effective web clipping with Obsidian
Install fonts with Homebrew
Get started with 𝕏 AI and Grok
Workers GraphQL Server v2
M4 Macs
Tailwind Child Selectors
Workers Entrypoints
An introduction to Cloudflare Workflows
Announcing the Astro Cloudflare Redirects integration
Recommended Icon Libraries
Donor Advised Funds
Indexer
Effective indexing
The Astro Rewrite
ShipFast Vulnerabilities
The McMaster-Carrification effect
Building Your Own Radio Network with Liquidsoap
Releasing my bearblog Chrome extension
Defer Loading CSS with One Line of Code
Increasing Lighthouse Score to 100
Understanding Astro's getStaticPaths function
An Introduction to Astro's Content System
How to Add Cloudflare Turnstile to Your Ruby on Rails Application
The big bearblog syntax highlighting hack
How to use Lucide icons via a CDN
Just enough Zustand
The quest for pure aspirin
Deploying Astro Applications to Cloudflare
shadcn/ui
Create a Zellij instance with a useful session name
Creating a custom post list page in Bear
Blog RSS auto-backlinks on a GitHub repo
IDGAF git commit
Shopping list of non-toxic products
Honor the change
Recent developer tool discoveries
What to do with a newsletter?
Digital throwaways, physical keepsakes
Full-stack development is a superpower
Replaying Majora's Mask
Second brain alternative
What comes next after simple chat UIs in AI?
Quick review of Zellij
LLMs and voice are really something else
ShipFast and the world of starter kits
The WHOOP is quite cool
A great usage of QR codes in the real world
Authenticity and producing content as a Developer Advocate
How to fix 𝕏's broken "Download an archive of your data" feature
Second Brain-less
Domain ranking experiment
'Cannot Use Import Statement Outside a Module'
How to check the installed version of Node.js
How to permanently update your shell $PATH
How to use the unofficial Threads API (with code samples)
Three open-source shell setups to improve your terminal experience
How to set up a new macOS system, using Homebrew and Brewfile
ROMs
YouTube Music
freeCodeCamp Basic CSS Certification - Complete Study Guide (1 Hour Video)
freeCodeCamp Basic HTML and HTML5 Certification
Building a ShareX-style screenshot workflow on macOS
How to learn React Native
Three quick JavaScript tips you can start using today
How to update Git in Ubuntu + Windows Subsystem for Linux
Get started with exception monitoring
Everything you need to know from GatsbyConf 2021 in less than 10 minutes
How to customize your Windows Terminal with custom themes and color schemes
Address Bar Hacks for Developers
Redirect anything with lilredirector
Getting started with Redis
Understanding the FileList API
Get started with Tailwind CSS, the utility-first CSS framework
What could we build with better tools for thought?
How to start using Emacs, the programmer's editor
How to build a Discord notification bot for new Ghost members
Here's what you need to learn and master Vim, the modal text editor
No-code: why does it matter for developers?
What is Jamstack? Exploring what you need to know, and how to get started
Everything you need to know to start with GraphQL
Flutter
Everything you need to know to understand Serverless
A brief guide to understanding Svelte.js
Human-computer interfaces, where we're at in 2020, and why it matters
How to capitalize the first letter of a string in JavaScript
Get an HTML element by class in JavaScript
How to quit Vim (in five seconds)
nvALT
Rooting the HTC One M8
Feeling for iPhone
Process on new Rails apps
Live Updating in Development
Sending books to the Kindle
Solo DevOps
ghissu.es
Unity
Hardcore Ruby
Retina MacBook Pro
Diff on Commit Idea
A thirty-one line test framework
You Should Learn Vim
Boxen
Mavericks
HTTPS For Free
Markdown Opinions
Dotfiles
Now Playing Script
Array.unwrap
Automatic Check-Ins with Tasker
Nginx and Subdomains - My Configuration
Hipchat + Ruby
Deploying a static Jekyll site
at_most: ActiveRecord limiting in Rails
AndroVM
Something Simple (In Todo Apps)
Tmux, Powerline, and info overload
ZSH and Octopress
Using new Rails defaults
Keyboard shortcuts: ↑/k - Up ↓/j - Down Enter - Open / - Search