41554 blogs · [ { "id": "01a08c63-637c-7269-b625-f27260736aa6", "title": "Not all OAuth2 tokens are made equal: user vs app tokens explained", "url": "https://withblue.ink/2026/07/user-vs-app-tokens-oauth2-explained", "published_at": "2026-07-02T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272617110f7", "title": "AI agents and the new economics of account takeover", "url": "https://withblue.ink/2026/05/ai-agents-new-economics-account-takeover", "published_at": "2026-05-20T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27261aaa255", "title": "Unlocking Encrypted ZFS Volumes with a Passkey", "url": "https://withblue.ink/2026/05/revaulter-encrypted-zfs-passkey", "published_at": "2026-05-09T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726295ceb1", "title": "Business logic does not (usually) belong in the database", "url": "https://withblue.ink/2026/03/business-logic-does-not-belong-in-the-database", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726389f021", "title": "On Designing a Distributed Actor Framework", "url": "https://withblue.ink/2026/01/notes-on-designing-distributed-actor-framework", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27263a28b2f", "title": "Building with Distributed Actors", "url": "https://withblue.ink/2025/11/distributed-actors-model", "published_at": "2025-11-19T08:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27263b77ada", "title": "High Availability over Tailscale with DNS-based Load Balancing", "url": "https://withblue.ink/2025/09/ddup-high-availability-tailscale-dns-load-balancing", "published_at": "2025-09-23T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27264b25b68", "title": "A new architecture for Hereditas v0.3", "url": "https://withblue.ink/2023/03/hereditas-0.3-architecture-proposal", "published_at": "2023-03-29T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27264e94032", "title": "Essential Cryptography for JavaScript Developers", "url": "https://withblue.ink/2022/03/essential-cryptography-for-javascript-developers-book", "published_at": "2022-03-01T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726532f91d", "title": "Why storing secrets and passwords in Git is a bad idea", "url": "https://withblue.ink/2021/05/storing-secrets-and-passwords-in-git-is-bad", "published_at": "2021-05-07T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726536de19", "title": "Developing x86 apps on ARM with VS Code", "url": "https://withblue.ink/2021/03/developing-x86-apps-on-arm-with-vs-code", "published_at": "2021-03-11T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272662b84a7", "title": "Maybe we shouldn't want a fully decentralized web", "url": "https://withblue.ink/2020/11/maybe-we-shouldnt-want-a-fully-decentralized-web", "published_at": "2020-11-12T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272668cefb1", "title": "Go, WebAssembly, HTTP requests and Promises", "url": "https://withblue.ink/2020/10/go-webassembly-http-requests-and-promises", "published_at": "2020-10-03T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726708098f", "title": "That time I accidentally built a spying app", "url": "https://withblue.ink/2020/09/that-time-i-accidentally-built-a-spying-app", "published_at": "2020-09-24T17:29:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27267e97bfe", "title": "Docker and Docker Compose on Raspberry Pi OS", "url": "https://withblue.ink/2020/06/docker-and-docker-compose-on-raspberry-pi-os", "published_at": "2020-06-24T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726870f632", "title": "Is this a dependency or devDependency?", "url": "https://withblue.ink/2020/06/is-this-a-dependency-or-devdependency", "published_at": "2020-06-07T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27269290367", "title": "How (and why) to sign Git commits", "url": "https://withblue.ink/2020/05/how-and-why-to-sign-git-commits", "published_at": "2020-05-17T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726a22eddf", "title": "Please everyone, stop writing your own user authentication code", "url": "https://withblue.ink/2020/04/stop-writing-your-own-user-authentication-code", "published_at": "2020-04-08T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726a272b4b", "title": "Watch: JavaScript apps going Inter-Planetary", "url": "https://withblue.ink/2020/01/watch-javascript-apps-going-inter-planetary", "published_at": "2020-01-21T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726b0dab8a", "title": "Auto-mounting encrypted drives with a remote key on Linux", "url": "https://withblue.ink/2020/01/auto-mounting-encrypted-drives-with-a-remote-key-on-linux", "published_at": "2020-01-19T00:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726bec5240", "title": "Your next app may not have a backend", "url": "https://withblue.ink/2019/11/your-next-app-may-not-have-a-backend", "published_at": "2019-11-16T14:06:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726c9c4f01", "title": "Reinstalling pfSense and restoring from backup", "url": "https://withblue.ink/2019/09/reinstalling-pfsense-and-restoring-from-backup", "published_at": "2019-09-14T22:14:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726d81a252", "title": "How to pass variables in Azure Pipelines YAML tasks", "url": "https://withblue.ink/2019/08/how-to-pass-variables-in-azure-pipelines-yaml-tasks", "published_at": "2019-08-05T19:14:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726dbf1dd2", "title": "Cloud native, container-ready PHP", "url": "https://withblue.ink/2019/07/cloud-native-container-ready-php", "published_at": "2019-07-24T20:14:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726eb3f33b", "title": "Yes, you can run Docker on Raspbian", "url": "https://withblue.ink/2019/07/yes-you-can-run-docker-on-raspbian", "published_at": "2019-07-13T10:14:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726ed02aca", "title": "I loved jQuery, and still do", "url": "https://withblue.ink/2019/04/i-loved-jquery-and-still-do", "published_at": "2019-04-12T17:10:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726eeec4bb", "title": "Getting TLS certificates from Azure Key Vault with Go", "url": "https://withblue.ink/2019/04/getting-tls-certificates-from-azure-key-vault-with-go", "published_at": "2019-04-07T16:26:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2726fe1b152", "title": "Hugo and IPFS: how this blog works (and scales to serve 5,000% spikes instantly!)", "url": "https://withblue.ink/2019/03/hugo-and-ipfs-how-this-blog-works-and-scales", "published_at": "2019-03-20T07:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272709f029f", "title": "What happens to your digital life after you're gone? Introducing Hereditas", "url": "https://withblue.ink/2019/03/what-happens-to-your-digital-life-after-you-die-introducing-hereditas", "published_at": "2019-03-18T07:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2727109f832", "title": "When \"Zoë\" !== \"Zoë\". Or why you need to normalize Unicode strings", "url": "https://withblue.ink/2019/03/why-you-need-to-normalize-unicode-strings", "published_at": "2019-03-11T23:34:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27271c2f76b", "title": "Node.js web apps in Ubuntu, production-ready", "url": "https://withblue.ink/2018/12/node-js-web-apps-in-ubuntu-production-ready", "published_at": "2018-12-02T12:05:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272726ae8d5", "title": "Distributed Web: host your website with IPFS clusters, Cloudflare, and DevOps", "url": "https://withblue.ink/2018/11/distributed-web-host-your-website-with-ipfs-clusters-cloudflare-and-devops", "published_at": "2018-11-14T08:39:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27272d68614", "title": "How to use s3cmd and any other Amazon S3-compatible app with Azure Blob Storage", "url": "https://withblue.ink/2017/10/how-to-use-s3cmd-and-any-other-amazon-s3-compatible-app-with-azure-blob-storage", "published_at": "2017-10-29T21:44:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272733602a8", "title": "Solving FreeNAS jails on a dedicated NIC", "url": "https://withblue.ink/2017/09/solving-freenas-jails-on-a-dedicated-nic", "published_at": "2017-09-17T15:42:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272737ea752", "title": "Getting started with ZFS on FreeBSD on Azure", "url": "https://withblue.ink/2016/10/getting-started-with-zfs-on-freebsd-on-azure", "published_at": "2016-10-21T19:04:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27273b8f8f1", "title": "Adding a NuGet package source on macOS and Linux", "url": "https://withblue.ink/2016/09/adding-a-nuget-package-source-on-macos-and-linux", "published_at": "2016-09-25T20:42:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272742edd81", "title": "Stop SSH brute force attempts", "url": "https://withblue.ink/2016/07/stop-ssh-brute-force-attempts", "published_at": "2016-07-15T19:42:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f272743f4a10", "title": "What I learnt from using WD Red disks to build a home NAS", "url": "https://withblue.ink/2016/07/what-i-learnt-from-using-wd-red-disks-to-build-a-home-nas", "published_at": "2016-07-15T17:02:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27274ecf746", "title": "Automation for MariaDB/Galera Cluster setup (Part 2)", "url": "https://withblue.ink/2016/05/automation-for-mariadb-galera-cluster-setup-part-2", "published_at": "2016-05-12T19:02:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27275876a25", "title": "Galera cluster, MariaDB, CoreOS and Docker (Part 1)", "url": "https://withblue.ink/2016/03/galera-cluster-mariadb-coreos-and-docker-part-1", "published_at": "2016-03-09T23:35:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f27275f55701", "title": "Create a RHEL 6 image for Microsoft Azure", "url": "https://withblue.ink/2016/01/create-a-rhel-6-image-for-microsoft-azure", "published_at": "2016-01-09T01:00:00+00:00" }, { "id": "01a08c63-637c-7269-b625-f2727627589e", "title": "Preparing a Red Hat Enterprise Linux 7 image for Azure using VirtualBox", "url": "https://withblue.ink/2015/12/preparing-a-red-hat-enterprise-linux-7-image-for-azure-using-virtualbox", "published_at": "2015-12-22T18:00:00+00:00" } ] posts Claim your blog
Back to withblue.ink
Blog · corpus.blog/blogs/withblue.ink/posts

withblue.ink

withblue.ink

2026

2025

2023

2022

2021

2020

2019

2018

2017

2016

2015