corpus.blog
Most cited
Talked about
Blogs
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
Not all OAuth2 tokens are made equal: user vs app tokens explained
original ↗
2 Jul 2026
AI agents and the new economics of account takeover
original ↗
20 May 2026
Unlocking Encrypted ZFS Volumes with a Passkey
original ↗
9 May 2026
Business logic does not (usually) belong in the database
original ↗
4 Mar 2026
On Designing a Distributed Actor Framework
original ↗
20 Jan 2026
2025
Building with Distributed Actors
original ↗
19 Nov 2025
High Availability over Tailscale with DNS-based Load Balancing
original ↗
23 Sept 2025
2023
A new architecture for Hereditas v0.3
original ↗
29 Mar 2023
2022
Essential Cryptography for JavaScript Developers
original ↗
1 Mar 2022
2021
Why storing secrets and passwords in Git is a bad idea
original ↗
7 May 2021
Developing x86 apps on ARM with VS Code
original ↗
11 Mar 2021
2020
Maybe we shouldn't want a fully decentralized web
original ↗
12 Nov 2020
Go, WebAssembly, HTTP requests and Promises
original ↗
3 Oct 2020
That time I accidentally built a spying app
original ↗
24 Sept 2020
Docker and Docker Compose on Raspberry Pi OS
original ↗
24 Jun 2020
Is this a dependency or devDependency?
original ↗
7 Jun 2020
How (and why) to sign Git commits
original ↗
17 May 2020
Please everyone, stop writing your own user authentication code
original ↗
8 Apr 2020
Watch: JavaScript apps going Inter-Planetary
original ↗
21 Jan 2020
Auto-mounting encrypted drives with a remote key on Linux
original ↗
19 Jan 2020
2019
Your next app may not have a backend
original ↗
16 Nov 2019
Reinstalling pfSense and restoring from backup
original ↗
14 Sept 2019
How to pass variables in Azure Pipelines YAML tasks
original ↗
5 Aug 2019
Cloud native, container-ready PHP
original ↗
24 Jul 2019
Yes, you can run Docker on Raspbian
original ↗
13 Jul 2019
I loved jQuery, and still do
original ↗
12 Apr 2019
Getting TLS certificates from Azure Key Vault with Go
original ↗
7 Apr 2019
Hugo and IPFS: how this blog works (and scales to serve 5,000% spikes instantly!)
original ↗
20 Mar 2019
What happens to your digital life after you're gone? Introducing Hereditas
original ↗
18 Mar 2019
When "Zoë" !== "Zoë". Or why you need to normalize Unicode strings
original ↗
11 Mar 2019
2018
Node.js web apps in Ubuntu, production-ready
original ↗
2 Dec 2018
Distributed Web: host your website with IPFS clusters, Cloudflare, and DevOps
original ↗
14 Nov 2018
2017
How to use s3cmd and any other Amazon S3-compatible app with Azure Blob Storage
original ↗
29 Oct 2017
Solving FreeNAS jails on a dedicated NIC
original ↗
17 Sept 2017
2016
Getting started with ZFS on FreeBSD on Azure
original ↗
21 Oct 2016
Adding a NuGet package source on macOS and Linux
original ↗
25 Sept 2016
Stop SSH brute force attempts
original ↗
15 Jul 2016
What I learnt from using WD Red disks to build a home NAS
original ↗
15 Jul 2016
Automation for MariaDB/Galera Cluster setup (Part 2)
original ↗
12 May 2016
Galera cluster, MariaDB, CoreOS and Docker (Part 1)
original ↗
9 Mar 2016
Create a RHEL 6 image for Microsoft Azure
original ↗
9 Jan 2016
2015
Preparing a Red Hat Enterprise Linux 7 image for Azure using VirtualBox
original ↗
22 Dec 2015