41554 blogs · [ { "id": "01a0877b-b70c-73b7-9f9f-c190c5c272ba", "title": "Inside GarronPress: Architecture, Templates, and Where Things Stand", "url": "https://www.garron.blog/posts/garronpress-under-the-hood.html", "published_at": "2026-07-15T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63001bd92", "title": "From Server Racks to the Bike Saddle: A 10-Year Consistency Check", "url": "https://www.garron.blog/posts/from-server-racks-to-the-bike-saddle-a-10-year-consistency-check.html", "published_at": "2026-06-14T22:32:36+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae630f0701b", "title": "I Asked an AI to Build My Blog Engine", "url": "https://www.garron.blog/posts/i-asked-an-ai-to-build-my-blog-engine.html", "published_at": "2026-06-10T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae631104557", "title": "Migadu vs. Self-Hosted Email: An Honest Answer", "url": "https://www.garron.blog/posts/migadu-vs-self-hosted-email.html", "published_at": "2026-05-31T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae631bef167", "title": "Into Running Again at 52", "url": "https://www.garron.blog/posts/into-running-again-at-52.html", "published_at": "2026-05-25T12:10:37+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63260fcf3", "title": "Trek singletrack 970", "url": "https://www.garron.blog/posts/trek-singletrack-970.html", "published_at": "2026-05-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63345481f", "title": "New workflow", "url": "https://www.garron.blog/posts/new-workflow.html", "published_at": "2026-05-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6336b9622", "title": "Testing site to start blogging again", "url": "https://www.garron.blog/notes/testing-site-to-start-blogging-again.html", "published_at": "2026-05-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae634238b2c", "title": "2004 Trek Gary Fisher Marlin GS", "url": "https://www.garron.blog/posts/gary-fisher.html", "published_at": "2025-09-18T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae634767289", "title": "1999 26er Specialized Hardrock", "url": "https://www.garron.blog/posts/specialized-hardrock.html", "published_at": "2025-08-14T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae635617f62", "title": "2016 26er GT Palomar", "url": "https://www.garron.blog/posts/gt-palomar.html", "published_at": "2025-07-18T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6359bf19f", "title": "My Specialized Stumpjumper: Still Rolling Strong", "url": "https://www.garron.blog/posts/specialized-stumpjumper.html", "published_at": "2025-07-17T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63601fef4", "title": "Giant Iguana 1995", "url": "https://www.garron.blog/posts/giant-iguana.html", "published_at": "2025-07-16T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6364e8989", "title": "Biking", "url": "https://www.garron.blog/posts/biking.html", "published_at": "2024-05-20T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6372f72b1", "title": "From Middleman to Blot.im", "url": "https://www.garron.blog/posts/middleman-to-blot.html", "published_at": "2023-06-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae637cab0f8", "title": "This is How You Can Use Kubernetes", "url": "https://www.garron.blog/posts/this-is-how-you-can-use-kubernetes.html", "published_at": "2021-04-02T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae638b1afdf", "title": "Mastodon Review", "url": "https://www.garron.blog/posts/mastodon-review.html", "published_at": "2020-08-24T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae638dc7342", "title": "My Top 10 Most Used Commands", "url": "https://www.garron.blog/notes/my-top-10-linux-commands.html", "published_at": "2020-08-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae639a8d6ad", "title": "Running update", "url": "https://www.garron.blog/notes/running-update.html", "published_at": "2020-08-16T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63a5a9c78", "title": "They finished", "url": "https://www.garron.blog/notes/finishing-100-days-to-offload.html", "published_at": "2020-08-12T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63a74ed87", "title": "How to self-host Plausible Analytics", "url": "https://www.garron.blog/posts/how-to-install-plausible-analytics.html", "published_at": "2020-08-08T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63b56d6c5", "title": "Happy Independence Day Bolivia", "url": "https://www.garron.blog/posts/bolivia-independence-day.html", "published_at": "2020-08-06T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63b7db309", "title": "Writing for nobody, writing for everybody", "url": "https://www.garron.blog/posts/writing-for-everybody.html", "published_at": "2020-08-02T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63baeff1c", "title": "Keep Writing", "url": "https://www.garron.blog/posts/keep-writing.html", "published_at": "2020-07-28T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63c68e08f", "title": "Bitwarden Review", "url": "https://www.garron.blog/posts/bitwarden-review.html", "published_at": "2020-07-26T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63cf080f2", "title": "How to self-host your email server", "url": "https://www.garron.blog/posts/host-your-email-server.html", "published_at": "2020-07-19T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63dd91ff3", "title": "How to decentralize the Internet", "url": "https://www.garron.blog/posts/eliuf.html", "published_at": "2020-07-18T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63e7243ec", "title": "Cloudflare outage and the risk in today's Internet", "url": "https://www.garron.blog/posts/cloudflare-outage.html", "published_at": "2020-07-18T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63e82ec37", "title": "AMP Pages", "url": "https://www.garron.blog/posts/amp-pages.html", "published_at": "2020-07-17T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63f0fca0f", "title": "Middleman on Docker, and automatic deploy of the site", "url": "https://www.garron.blog/posts/middleman-docker.html", "published_at": "2020-07-12T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63f2e95cd", "title": "Dockerize Everything", "url": "https://www.garron.blog/posts/dockerize-everything.html", "published_at": "2020-07-10T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63fdc27fa", "title": "Running in 2020", "url": "https://www.garron.blog/notes/running-2020.html", "published_at": "2020-07-06T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae63fdc5aa3", "title": "Featured Image with Middleman Blog", "url": "https://www.garron.blog/posts/featured-image-in-middleman.html", "published_at": "2020-07-05T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6405ed85d", "title": "Wallabag Review", "url": "https://www.garron.blog/posts/wallabag-review.html", "published_at": "2020-07-04T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae640d2de7e", "title": "Reading", "url": "https://www.garron.blog/posts/reading.html", "published_at": "2020-07-01T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae641a0182f", "title": "Webmentiond", "url": "https://www.garron.blog/posts/webmentiond-working.html", "published_at": "2020-06-30T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae641b9139d", "title": "Tombstone 1993", "url": "https://www.garron.blog/posts/tombstone-1993-movie.html", "published_at": "2020-06-27T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae642914fdf", "title": "Plausible Analytics Review", "url": "https://www.garron.blog/posts/plausible-review.html", "published_at": "2020-06-26T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae642a8b6b7", "title": "Re_Webmentiond", "url": "https://www.garron.blog/notes/re-webmentiond.html", "published_at": "2020-06-26T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6434dae4a", "title": "Night Walk", "url": "https://www.garron.blog/notes/night-walk.html", "published_at": "2020-06-24T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae643e2b3c1", "title": "From Google Analytics to AWStats", "url": "https://www.garron.blog/posts/from-google-analytics-to-awstats.html", "published_at": "2020-06-23T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae644dc93b2", "title": "Holiday, Improving the Blog and Hacker News front page", "url": "https://www.garron.blog/posts/hacker-news-holiday-changes.html", "published_at": "2020-06-22T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae644ebdce5", "title": "Thank you Kev", "url": "https://www.garron.blog/posts/thanks-kev.html", "published_at": "2020-06-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae644f96af9", "title": "Typora", "url": "https://www.garron.blog/posts/typora-markdown-editor.html", "published_at": "2020-06-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6450a6104", "title": "Create No-JavaScript friendly sites", "url": "https://www.garron.blog/posts/no-javascript-sites.html", "published_at": "2020-06-20T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6454bd2ac", "title": "Three months locked down", "url": "https://www.garron.blog/posts/three-months-lock-down.html", "published_at": "2020-06-20T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae646192dac", "title": "Like of: How Does Mastodon Work?", "url": "https://www.garron.blog/notes/how-mastodon-works.html", "published_at": "2020-06-20T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6470857ff", "title": "Like of: Permanent Writing vs. Temporary Writing", "url": "https://www.garron.blog/notes/permanent-vs-temporary-writing.html", "published_at": "2020-06-20T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae647a05c46", "title": "Working Copy App review", "url": "https://www.garron.blog/posts/working-copy-app-review.html", "published_at": "2020-06-17T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae647a57518", "title": "Github to change the name in master branch to avoid slavery references", "url": "https://www.garron.blog/notes/github-to-replace-master-with-alternative-term-to-avoid-slavery-references.html", "published_at": "2020-06-16T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae647cea9ee", "title": "How does running this blog cost?", "url": "https://www.garron.blog/posts/how-does-this-blog-cost.html", "published_at": "2020-06-15T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6480f3a20", "title": "New blogging workflow", "url": "https://www.garron.blog/posts/my-blogging-workflow.html", "published_at": "2020-06-13T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae648ce5fa7", "title": "Deploying to Vercel", "url": "https://www.garron.blog/notes/deploying-on-vercel.html", "published_at": "2020-06-13T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae649265aa6", "title": "Blogging from iPad", "url": "https://www.garron.blog/notes/posting-from-ipad.html", "published_at": "2020-06-13T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64986bb40", "title": "Web or System Fonts", "url": "https://www.garron.blog/posts/system-or-web-fonts.html", "published_at": "2020-06-11T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64a278b8c", "title": "Re: Mastodon Centralisation", "url": "https://www.garron.blog/notes/centralisation-and-mastodon.html", "published_at": "2020-06-08T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64a4813db", "title": "Own your domain", "url": "https://www.garron.blog/posts/own-your-domain.html", "published_at": "2020-06-07T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64a659477", "title": "Typography", "url": "https://www.garron.blog/notes/website-typography.html", "published_at": "2020-06-06T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64aed0467", "title": "Single User Mode on Mastodon", "url": "https://www.garron.blog/notes/mastodon-single-user-mode.html", "published_at": "2020-06-06T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64b9cca9e", "title": "Webmentions again", "url": "https://www.garron.blog/posts/webmentions-again.html", "published_at": "2020-06-05T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64bdcfd6a", "title": "I have changed this blog permalink structure", "url": "https://www.garron.blog/posts/change-in-site-structure.html", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64cc9794a", "title": "New friends at Mastodon", "url": "https://www.garron.blog/posts/mastodon-friends.html", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64cd96fa8", "title": "Getting rid of analytics on your blog", "url": "https://www.garron.blog/posts/getting-rid-of-analytics.html", "published_at": "2020-06-02T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64d727fa5", "title": "Self-hosting problems", "url": "https://www.garron.blog/posts/problem-when-self-hosting.html", "published_at": "2020-06-01T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64e144f38", "title": "Miniflux", "url": "https://www.garron.blog/posts/miniflux.html", "published_at": "2020-05-31T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64ebe81ae", "title": "Mother's day in Bolivia", "url": "https://www.garron.blog/posts/mothers-day-bolivia.html", "published_at": "2020-05-29T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64f30399e", "title": "DuckDuckGo", "url": "https://www.garron.blog/notes/duckduckgo.html", "published_at": "2020-05-26T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae64f938699", "title": "Freedom as risk", "url": "https://www.garron.blog/posts/freedom-at-risk.html", "published_at": "2020-05-24T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65062c563", "title": "Hosting your own email server", "url": "https://www.garron.blog/posts/push-imap-android.html", "published_at": "2020-05-23T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6508efcd5", "title": "On hosting your own mail server", "url": "https://www.garron.blog/notes/self-host-email-server.html", "published_at": "2020-05-22T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6512f3133", "title": "Notes", "url": "https://www.garron.blog/notes/notes.html", "published_at": "2020-05-22T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae651c09958", "title": "Bitwarden", "url": "https://www.garron.blog/posts/move-bitwarden.html", "published_at": "2020-05-21T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae652b601b1", "title": "Two months locked in", "url": "https://www.garron.blog/posts/two-months-locked-in.html", "published_at": "2020-05-20T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae652d9b8cd", "title": "New theme (again)", "url": "https://www.garron.blog/posts/change-theme.html", "published_at": "2020-05-20T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae653369de7", "title": "Tea for two", "url": "https://www.garron.blog/posts/tea-for-two.html", "published_at": "2020-05-19T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae653ff8ec8", "title": "PicoCMS", "url": "https://www.garron.blog/posts/testing-picocms.html", "published_at": "2020-05-17T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae654bdc653", "title": "Blogging is not dead", "url": "https://www.garron.blog/posts/blogging.html", "published_at": "2020-05-16T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65549869c", "title": "Dad's lessons", "url": "https://www.garron.blog/posts/dad-lessons.html", "published_at": "2020-05-14T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae6559e305e", "title": "Home-made empanadas", "url": "https://www.garron.blog/posts/home-made-empanadas.html", "published_at": "2020-05-13T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65656c810", "title": "Testing Pleroma", "url": "https://www.garron.blog/posts/testing-pleroma.html", "published_at": "2020-05-13T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65751da55", "title": "FOSS Spirit", "url": "https://www.garron.blog/posts/foss-spirit.html", "published_at": "2020-05-10T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65782058c", "title": "Webmentions", "url": "https://www.garron.blog/posts/webmentions.html", "published_at": "2020-05-09T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae658202283", "title": "Your passwords online", "url": "https://www.garron.blog/posts/your-passwords-online.html", "published_at": "2020-05-09T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae658a35817", "title": "Blogging from GitHub", "url": "https://www.garron.blog/posts/blogging-github.html", "published_at": "2020-05-08T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65919296d", "title": "Webmentions or Comments from Mastodon", "url": "https://www.garron.blog/posts/webmentions-mastodon-comments.html", "published_at": "2020-05-07T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae659ab4ce2", "title": "Ready to test NextCloud", "url": "https://www.garron.blog/posts/nextcloud.html", "published_at": "2020-05-06T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65a05f326", "title": "My Cloud Provider", "url": "https://www.garron.blog/posts/best-cloud-providers.html", "published_at": "2020-05-05T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65a9414e0", "title": "Back to a self hosted server", "url": "https://www.garron.blog/posts/back-self-hosted-server.html", "published_at": "2020-05-04T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65aacfaa6", "title": "My own Mastodon instance", "url": "https://www.garron.blog/posts/my-own-mastodon-server.html", "published_at": "2020-05-03T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65b9a9779", "title": "100 days to offload", "url": "https://www.garron.blog/posts/100-days-to-offload.html", "published_at": "2020-05-02T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65c5b1dfc", "title": "New Theme", "url": "https://www.garron.blog/posts/new-blog-theme.html", "published_at": "2020-05-02T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65d11c90c", "title": "Nothing to hide", "url": "https://www.garron.blog/posts/nothing-to-hide.html", "published_at": "2020-04-30T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65d3f0c54", "title": "The streets of Coronavirus", "url": "https://www.garron.blog/posts/santa-cruz-bolivia-coronavirus.html", "published_at": "2020-04-28T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65e12e800", "title": "Working from home will be the new \"normal\" situation", "url": "https://www.garron.blog/posts/working-from-home.html", "published_at": "2020-04-26T00:00:00+00:00" }, { "id": "01a0877b-b70d-7124-b8b3-5ae65e68b1f1", "title": "Why I have a blog", "url": "https://www.garron.blog/posts/why-i-have-a-blog.html", "published_at": "2020-04-25T00:00:00+00:00" } ] posts Claim your blog
Back to garron.blog
Blog · corpus.blog/blogs/garron.blog/posts

garron.blog

garron.blog

2026

2025

2024

2023

2021

2020