41554 blogs · [ { "id": "01a0d934-6a72-729c-bad6-542be5819bdd", "title": "Hotkeying browser extensions in Ungoogled Chromium", "url": "https://joshblais.com/blog/hotkeying-browser-extensions/", "published_at": "2026-09-25T00:00:00+00:00" }, { "id": "01a08790-ec1f-7240-a2cf-60dc219b71ca", "title": "AI Writing is an Insult to Humanity", "url": "https://joshblais.com/blog/ai-writing-is-an-insult/", "published_at": "2026-08-31T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559966a9e904", "title": "Growth at all costs is cancer", "url": "https://joshblais.com/blog/growth-at-all-costs-is-cancer/", "published_at": "2026-08-27T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996778a2ee", "title": "My phone is now just an emacs interface", "url": "https://joshblais.com/blog/i-made-my-phone-emacs/", "published_at": "2026-08-20T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559967b08740", "title": "If programming is dead why go all in", "url": "https://joshblais.com/blog/if-programming-is-dead-why-am-i-going-all-in-on-programming/", "published_at": "2026-08-18T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559967f9dff4", "title": "Its not nostaligia", "url": "https://joshblais.com/blog/its-not-nostaligia/", "published_at": "2026-08-05T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996813477c", "title": "Building a Ferricy Keyboard", "url": "https://joshblais.com/blog/building-a-ferricy-keyboard/", "published_at": "2026-07-23T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559968760df5", "title": "My (mis)Adventures in Soldering", "url": "https://joshblais.com/blog/my-misadventures-in-soldering/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559968eae620", "title": "Studium Emacs", "url": "https://joshblais.com/blog/studium-emacs/", "published_at": "2026-06-18T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-5599698a28d7", "title": "Mediocrity is Death of the Soul", "url": "https://joshblais.com/blog/mediocrity-is-death-of-the-soul/", "published_at": "2026-06-04T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996a1fef7f", "title": "It's always been the damn phone", "url": "https://joshblais.com/blog/its-always-been-the-damn-phone/", "published_at": "2026-06-02T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996a2590b0", "title": "Installing Non-Guix System", "url": "https://joshblais.com/blog/installing-non-guix/", "published_at": "2026-05-28T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996b122961", "title": "If you dont read the primary source you dont get an opinion", "url": "https://joshblais.com/blog/if-you-dont-read-the-primary-source-you-dont-get-an-opinion/", "published_at": "2026-05-26T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996b9c0907", "title": "On Magnifica Humanitas", "url": "https://joshblais.com/blog/on-magnifica-humanitas/", "published_at": "2026-05-25T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996c897270", "title": "My bank started vibecoding", "url": "https://joshblais.com/blog/my-bank-started-vibecoding/", "published_at": "2026-05-20T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996d0474e1", "title": "Back to silence", "url": "https://joshblais.com/blog/back-to-silence/", "published_at": "2026-05-19T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996d064467", "title": "5k subscriber special - My Computers", "url": "https://joshblais.com/blog/5k-subscriber-special-my-computer-collection/", "published_at": "2026-05-11T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996dccecb3", "title": "Love is Infinite", "url": "https://joshblais.com/blog/love-is-the-infinite-resource/", "published_at": "2026-04-30T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996ec42cf1", "title": "Using the internet like its 1999", "url": "https://joshblais.com/blog/using-the-internet-like-its-1999/", "published_at": "2026-04-23T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996f69878b", "title": "A fully soverign feed system", "url": "https://joshblais.com/blog/a-fully-soverign-feed-system/", "published_at": "2026-04-21T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996faa9735", "title": "Emacs is my browser", "url": "https://joshblais.com/blog/emacs-as-my-browser/", "published_at": "2026-04-20T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996fb30c4e", "title": "How I use org-roam", "url": "https://joshblais.com/blog/how-i-use-org-roam/", "published_at": "2026-04-10T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55996fe3e634", "title": "Meow Made me Leave Evil-Mode", "url": "https://joshblais.com/blog/meow-in-emacs/", "published_at": "2026-04-09T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559970a67562", "title": "Emacs Philosophy and Infinite Depth with Protesilaos", "url": "https://joshblais.com/blog/emacs-philosophy-and-infinite-depth-with-protesilaos/", "published_at": "2026-03-05T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55997131f307", "title": "How NixOS keeps me focused", "url": "https://joshblais.com/blog/how-nixos-keeps-me-focused/", "published_at": "2026-02-24T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559971b9334f", "title": "My RSS Feed should now be working", "url": "https://joshblais.com/blog/my-rss-feed-should-now-be-working/", "published_at": "2026-02-21T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559971d0547f", "title": "What is on my phone in 2026", "url": "https://joshblais.com/blog/what-is-on-my-phone-in-2026/", "published_at": "2026-02-20T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55997246b956", "title": "A Pursuit of Mastery", "url": "https://joshblais.com/blog/a-pursuit-of-mastery/", "published_at": "2026-02-17T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559972e3cc7c", "title": "Using search engines properly", "url": "https://joshblais.com/blog/using-search-engines-properly/", "published_at": "2026-02-13T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559972fdfc39", "title": "Distraction is a Sin", "url": "https://joshblais.com/blog/distraction-is-a-sin/", "published_at": "2026-02-02T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559973f6e0c2", "title": "My Media Storage Infrastructure for 2026", "url": "https://joshblais.com/blog/my-media-storage-infrastructure-for-2026/", "published_at": "2026-01-30T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559974b79c40", "title": "You Cannot Choose Truth", "url": "https://joshblais.com/blog/you-cannot-choose-truth/", "published_at": "2026-01-29T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559974cbdccb", "title": "The rabbit hole", "url": "https://joshblais.com/blog/the-rabbit-hole/", "published_at": "2026-01-25T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-55997590782b", "title": "Make everything a git repo", "url": "https://joshblais.com/blog/everything-is-a-git-repo/", "published_at": "2026-01-12T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559975d7b1bf", "title": "A year in review 2025", "url": "https://joshblais.com/blog/a-year-in-review-2025/", "published_at": "2025-12-23T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-5599763de741", "title": "My Stack for 2026", "url": "https://joshblais.com/blog/my-stack-2026/", "published_at": "2025-12-22T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559976e920ff", "title": "A very Unix Christmas with tony-btw", "url": "https://joshblais.com/blog/a-very-unix-christmas-with-tony-btw/", "published_at": "2025-12-21T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559977a3ca0f", "title": "Reading in a Distracted World", "url": "https://joshblais.com/blog/reading-in-a-distracted-world/", "published_at": "2025-12-11T12:00:54+00:00" }, { "id": "01a08790-ec20-7057-86ce-5599789013d7", "title": "Sovereignty in Distributed Compute (Why Laptops dont matter)", "url": "https://joshblais.com/blog/laptops-dont-matter/", "published_at": "2025-12-09T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-559978cffe73", "title": "Setting up a brand new nixos machine", "url": "https://joshblais.com/blog/setting-up-a-brand-new-nixos-machine/", "published_at": "2025-12-05T00:00:00+00:00" }, { "id": "01a08790-ec20-7057-86ce-5599799f61cf", "title": "Compline - A colorscheme for deep contemplation and work", "url": "https://joshblais.com/blog/compline-a-colorscheme-for-deep-contemplation-and-work/", "published_at": "2025-11-27T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b6a990d8", "title": "Going all in on reality", "url": "https://joshblais.com/blog/going-all-in-on-reality/", "published_at": "2025-11-26T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b6f1465d", "title": "How I am deeply integrating emacs", "url": "https://joshblais.com/blog/how-i-am-deeply-integrating-emacs/", "published_at": "2025-11-05T12:00:54+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b736d67a", "title": "How I Turn Off my Laptop keyboard", "url": "https://joshblais.com/blog/turn-off-or-on-your-laptop-keyboard/", "published_at": "2025-11-03T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b7616738", "title": "Supernote with Linux is lovely", "url": "https://joshblais.com/blog/supernote-with-linux/", "published_at": "2025-10-21T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b76caeb5", "title": "How I publish tooling with nix", "url": "https://joshblais.com/blog/how-i-publish-tooling-with-nix/", "published_at": "2025-09-25T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b7b76f12", "title": "NixOS is the endgame of distrohopping", "url": "https://joshblais.com/blog/nixos-is-the-endgame-of-distrohopping/", "published_at": "2025-08-11T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b7efde07", "title": "Welcome to the new site", "url": "https://joshblais.com/blog/welcome-to-the-new-site/", "published_at": "2025-08-08T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b822b8c5", "title": "I was on an Emacs vs Neovim Debate", "url": "https://joshblais.com/blog/emacs-vs-neovim-debate/", "published_at": "2025-07-21T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b8b690e7", "title": "Migrating Email the Easy Way", "url": "https://joshblais.com/blog/migrating-email-the-easy-way/", "published_at": "2025-07-15T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b97457b1", "title": "Leaving Disqus", "url": "https://joshblais.com/blog/leaving-disqus/", "published_at": "2025-07-13T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7b9b2e540", "title": "Tea", "url": "https://joshblais.com/blog/tea/", "published_at": "2025-07-12T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7ba18af13", "title": "How do you reconcile the immediacy of life?", "url": "https://joshblais.com/blog/the-immediacy-of-life/", "published_at": "2025-06-25T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7ba1991fb", "title": "Selfhosting Everything", "url": "https://joshblais.com/blog/selfhosting/", "published_at": "2025-06-16T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bab8c286", "title": "The canonical point of truth", "url": "https://joshblais.com/blog/the-canonical-point-of-truth/", "published_at": "2025-06-11T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bb47b9ad", "title": "We want your soul", "url": "https://joshblais.com/blog/we-want-your-soul/", "published_at": "2025-06-10T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bc21533e", "title": "Time Tracking in Emacs", "url": "https://joshblais.com/blog/time-tracking-in-emacs/", "published_at": "2025-06-09T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bc342ff3", "title": "I built a launcher in emacs", "url": "https://joshblais.com/blog/i-built-a-launcher-in-emacs/", "published_at": "2025-06-04T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bceb6e43", "title": "Global org capture for everywhere", "url": "https://joshblais.com/blog/global-org-capture-everywhere/", "published_at": "2025-05-05T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bd8586d3", "title": "God is not the universe", "url": "https://joshblais.com/blog/god-is-not-the-universe/", "published_at": "2025-04-17T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bdaaa545", "title": "Waydroid", "url": "https://joshblais.com/blog/waydroid/", "published_at": "2025-04-16T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bdd893dc", "title": "How to install KoReader on a Kobo", "url": "https://joshblais.com/blog/koreader/", "published_at": "2025-04-15T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7be6734e9", "title": "How I Handle Bookmarking in the Browser", "url": "https://joshblais.com/blog/how-to-handle-bookmarking/", "published_at": "2025-04-14T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bf260344", "title": "Does emacs startup time matter?", "url": "https://joshblais.com/blog/does-emacs-startup-time-matter/", "published_at": "2025-04-10T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7bfc16c4a", "title": "Depth", "url": "https://joshblais.com/blog/depth/", "published_at": "2025-04-08T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c014a789", "title": "Integrating Emacs into GNOME with keyboard shortcuts", "url": "https://joshblais.com/blog/integrating-emacs-into-gnome/", "published_at": "2025-04-04T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c0ff86cc", "title": "How to integrate org-mode and google calendar", "url": "https://joshblais.com/blog/integrate-org-mode-google/", "published_at": "2025-04-03T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c19ce0f4", "title": "GNU Stow is the way to manage Dotfiles", "url": "https://joshblais.com/blog/gnu-stow/", "published_at": "2025-03-21T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c1bcf966", "title": "Emacs for Everything", "url": "https://joshblais.com/blog/emacs-for-everything/", "published_at": "2025-03-13T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c2a4df12", "title": "Rereading my old stuff", "url": "https://joshblais.com/blog/rereading-my-old-stuff/", "published_at": "2025-03-12T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c322e70b", "title": "My Literate Doom Emacs Configuration", "url": "https://joshblais.com/blog/literate-doom-emacs-config/", "published_at": "2025-03-08T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c33a0404", "title": "How to install pass on android", "url": "https://joshblais.com/blog/how-to-install-pass-on-andorid/", "published_at": "2025-03-05T00:00:00+00:00" }, { "id": "01a08790-ec21-70c6-97a0-e0b7c3d88e79", "title": "Archiving the internet", "url": "https://joshblais.com/blog/archiving-sites/", "published_at": "2025-03-04T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b021b00993", "title": "The Beautiful Simplicity of Org Mode", "url": "https://joshblais.com/blog/org-mode-beautiful-simplicity/", "published_at": "2025-02-27T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02234b9dc", "title": "Hopping on the Zen Browser Train", "url": "https://joshblais.com/blog/zen-browser/", "published_at": "2025-02-21T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b0231c2bab", "title": "How to use Social Media Without losing your Soul", "url": "https://joshblais.com/blog/how-to-use-social-media/", "published_at": "2025-02-10T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b023de4f5f", "title": "Adding custom choc keycaps", "url": "https://joshblais.com/blog/adding-3d-printed-keycaps/", "published_at": "2025-02-03T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b024079b26", "title": "Why Deepseek Matters", "url": "https://joshblais.com/blog/why-deepseek-matters/", "published_at": "2025-01-29T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b0246848e3", "title": "What's on my phone for 2025", "url": "https://joshblais.com/blog/whats-on-my-phone-2025/", "published_at": "2025-01-28T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b024c27372", "title": "Making OBS play nice on Wayland", "url": "https://joshblais.com/blog/making-obs-play-nice-in-wayland/", "published_at": "2025-01-10T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b024ed4fa0", "title": "I convinced Claude.ai that God exists", "url": "https://joshblais.com/blog/convincing-ai-god-exists/", "published_at": "2025-01-07T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b025a0e89c", "title": "Hugo and Org Mode", "url": "https://joshblais.com/blog/hugo-and-org-mode/", "published_at": "2025-01-06T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b026182b4b", "title": "Goals for 2025", "url": "https://joshblais.com/blog/goals-for-2025/", "published_at": "2025-01-03T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b026906d7d", "title": "2024 - A Year in Review", "url": "https://joshblais.com/blog/a-year-in-review/", "published_at": "2025-01-02T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b026cbddbf", "title": "Everyday can be January 1st", "url": "https://joshblais.com/blog/everyday-is-jan-1/", "published_at": "2025-01-01T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b0273d5496", "title": "Merry Christmas!", "url": "https://joshblais.com/blog/merry-christmas/", "published_at": "2024-12-25T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b027ce9124", "title": "How to migrate GPG Key Pairs", "url": "https://joshblais.com/blog/how-to-migrate-gpg-keys/", "published_at": "2024-12-22T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02812c6c2", "title": "Not all those who wander are lost", "url": "https://joshblais.com/blog/not-all-who-wander/", "published_at": "2024-12-18T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b028d1ebae", "title": "Returning to the Church (of Emacs)", "url": "https://joshblais.com/blog/returning-to-emacs/", "published_at": "2024-12-04T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b0292d132e", "title": "Why I Left a Tiling WM for Gnome", "url": "https://joshblais.com/blog/switched-to-gnome/", "published_at": "2024-12-02T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b029d82629", "title": "How I Stopped using the Mouse", "url": "https://joshblais.com/blog/how-i-stopped-using-the-mouse/", "published_at": "2024-11-30T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02a3a1254", "title": "How I Never Forget Things", "url": "https://joshblais.com/blog/never-forget-things/", "published_at": "2024-11-15T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02b0fbc51", "title": "The Cathedral", "url": "https://joshblais.com/blog/the-cathedral/", "published_at": "2024-10-16T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02b80ed74", "title": "Why I am Not a Stoic", "url": "https://joshblais.com/blog/why-i-am-not-stoic/", "published_at": "2024-10-09T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02c457e22", "title": "Zen Workstation - Keybindings", "url": "https://joshblais.com/blog/zen-workstation-keybindings/", "published_at": "2024-09-24T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02d3a7cc9", "title": "Floor Sleeping", "url": "https://joshblais.com/blog/sleeping-on-the-floor/", "published_at": "2024-09-17T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02d886100", "title": "Why I use the Command Line", "url": "https://joshblais.com/blog/why-use-command-line/", "published_at": "2024-09-09T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02dff2ef4", "title": "On Durov and the lockstep toward banning encryption", "url": "https://joshblais.com/blog/on-telegram-durov-banning-encryption/", "published_at": "2024-08-28T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02e4e00d6", "title": "How to block internet distractions", "url": "https://joshblais.com/blog/block-internet-distractions/", "published_at": "2024-08-27T00:00:00+00:00" }, { "id": "01a08790-ec22-712e-aa03-15b02f32b379", "title": "Why I switched to Neovim from Emacs", "url": "https://joshblais.com/blog/why-i-left-emacs-for-neovim/", "published_at": "2024-08-21T00:00:00+00:00" } ] posts Claim your blog
Back to joshblais.com
Blog · corpus.blog/blogs/joshblais.com/posts

joshblais.com

joshblais.com

2026

2025

12 Jul 2025

2024