corpus.blog
Most cited
Talked about
Blogs
41554 blogs · [ { "id": "01a087e7-c433-7181-874e-9d3b5a3bbd65", "title": "NUT: Network UPS Tools for Home Labs That Don't Want to Crash", "url": "https://sumguy.com/nut-ups-power-monitoring/", "published_at": "2026-08-01T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5a8ac5e6", "title": "Wezterm vs Alacritty vs Kitty: Modern Terminals", "url": "https://sumguy.com/wezterm-vs-alacritty-vs-kitty/", "published_at": "2026-08-01T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5ad00222", "title": "Mozilla Sync Server Self-Hosted: Still Viable?", "url": "https://sumguy.com/mozilla-sync-server-self-hosted/", "published_at": "2026-08-01T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5b966258", "title": "Memos: Self-Hosted Microblog Meets Daily Note", "url": "https://sumguy.com/memos-self-hosted-notes/", "published_at": "2026-07-31T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5c0c7fc2", "title": "Mullvad VPN Containers via Gluetun: Per-App VPN", "url": "https://sumguy.com/mullvad-gluetun-per-app-vpn/", "published_at": "2026-07-31T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5c7d8cd6", "title": "OPA & Rego: Policy as Code Beyond Kubernetes", "url": "https://sumguy.com/opa-rego-policy-as-code/", "published_at": "2026-07-31T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5d319791", "title": "Convoy: Self-Hosted Webhook Delivery That Doesn't Drop Events", "url": "https://sumguy.com/convoy-self-hosted-webhooks/", "published_at": "2026-07-31T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5da38577", "title": "Local Coding Agents Need Less Context", "url": "https://sumguy.com/local-coding-agents-context-discipline/", "published_at": "2026-07-31T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5e300a41", "title": "Vaultwarden Behind Authelia: 2FA That Holds", "url": "https://sumguy.com/vaultwarden-behind-authelia/", "published_at": "2026-07-30T16:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5e69b5cb", "title": "LM Studio vs Jan vs GPT4All: Desktop LLM Clients", "url": "https://sumguy.com/lm-studio-vs-jan-vs-gpt4all/", "published_at": "2026-07-30T12:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5e80670d", "title": "Joplin Server vs Trilium vs Standard Notes", "url": "https://sumguy.com/joplin-vs-trilium-vs-standard-notes/", "published_at": "2026-07-30T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5f0ce7d8", "title": "Invidious, Piped, Redlib, Nitter: 2026 Status", "url": "https://sumguy.com/invidious-piped-redlib-nitter-2026/", "published_at": "2026-07-29T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5f5ccd67", "title": "cgroups v2 in Practice: Limits, Pressure, Containers", "url": "https://sumguy.com/cgroups-v2-deep-dive/", "published_at": "2026-07-29T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b5fc77684", "title": "BTCPay Server: Self-Hosted Crypto Payments", "url": "https://sumguy.com/btcpay-server-self-hosted-crypto/", "published_at": "2026-07-29T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b605502a9", "title": "Tang & Clevis: LUKS Auto-Unlock Without a Typed Passphrase", "url": "https://sumguy.com/tang-clevis-network-bound-encryption/", "published_at": "2026-07-29T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6118dc10", "title": "LibreSpeed: Hosting Your Own Speed Test", "url": "https://sumguy.com/librespeed-hosting-your-own-speed-test/", "published_at": "2026-07-28T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b61223968", "title": "crun vs runc vs youki: OCI Runtimes Compared", "url": "https://sumguy.com/crun-runc-youki-oci-runtimes/", "published_at": "2026-07-28T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b61786c82", "title": "LibreTranslate: Local Translation Without Google", "url": "https://sumguy.com/libretranslate-local-translation/", "published_at": "2026-07-28T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b61aac335", "title": "RAGAS: Evaluating RAG Without Vibes", "url": "https://sumguy.com/ragas-evaluating-rag-pipelines/", "published_at": "2026-07-28T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b620c873a", "title": "Collateral Freedom: Costly to Block", "url": "https://sumguy.com/collateral-freedom-relay-cascade/", "published_at": "2026-07-27T18:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b627fd1ca", "title": "SearXNG vs Whoogle: Private Search Frontends", "url": "https://sumguy.com/searxng-vs-whoogle-private-search/", "published_at": "2026-07-27T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b62a30479", "title": "Meshtastic vs Reticulum", "url": "https://sumguy.com/meshtastic-vs-reticulum-lxmf/", "published_at": "2026-07-27T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b62d7d7b3", "title": "Stirling-PDF: Stop Uploading Your Tax Returns to Sketchy Sites", "url": "https://sumguy.com/stirling-pdf-self-hosted/", "published_at": "2026-07-27T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b63713bdc", "title": "AdGuard DNS Sync Across Two Instances", "url": "https://sumguy.com/adguard-dns-sync-across-instances/", "published_at": "2026-07-27T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b63c1c107", "title": "wg-easy: WireGuard for Humans Who Hate Config Files", "url": "https://sumguy.com/wg-easy-wireguard-normal-humans/", "published_at": "2026-07-27T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b64466a46", "title": "REALITY: Borrowing a TLS Handshake", "url": "https://sumguy.com/reality-tls-handshake-mimicry/", "published_at": "2026-07-26T18:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b651e8830", "title": "Forgejo Actions: Self-Hosted GitHub-Style CI", "url": "https://sumguy.com/forgejo-actions-runners-self-hosted/", "published_at": "2026-07-26T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b65f56700", "title": "LoRa Mesh Hardware Buying Guide", "url": "https://sumguy.com/lora-mesh-hardware-buying-guide/", "published_at": "2026-07-26T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b660435fa", "title": "Self-Hosted Email Aliasing on Your Own Domain", "url": "https://sumguy.com/self-hosted-email-aliasing-own-domain/", "published_at": "2026-07-26T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b66e8e6f6", "title": "CryptPad vs EtherCalc: Privacy Collaboration", "url": "https://sumguy.com/cryptpad-vs-ethercalc-privacy/", "published_at": "2026-07-26T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b670052be", "title": "nftables in 2026: Stop Pretending iptables Will Live Forever", "url": "https://sumguy.com/nftables-migration-iptables/", "published_at": "2026-07-26T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b673ad94c", "title": "Why Your VPN Is Already Detected", "url": "https://sumguy.com/why-your-vpn-is-already-detected/", "published_at": "2026-07-25T18:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b67d0ff7c", "title": "KV Cache Quantization: Free LLM Context, Almost", "url": "https://sumguy.com/llm-kv-cache-quantization/", "published_at": "2026-07-25T16:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b68372a87", "title": "LoRa Mesh vs LoRaWAN vs Helium", "url": "https://sumguy.com/lora-mesh-vs-lorawan-vs-helium/", "published_at": "2026-07-25T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b69239123", "title": "NextDNS vs Self-Hosted: When SaaS Wins", "url": "https://sumguy.com/nextdns-vs-self-hosted-when-saas-wins/", "published_at": "2026-07-25T12:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b699ebbdc", "title": "Self-Hosted CAPTCHA Alternatives in 2026", "url": "https://sumguy.com/self-hosted-captcha-alternatives-2026/", "published_at": "2026-07-25T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b69a97642", "title": "Skopeo: Container Image Surgery Without a Daemon", "url": "https://sumguy.com/skopeo-image-management/", "published_at": "2026-07-24T16:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6a7d2223", "title": "Meshtastic vs MeshCore in 2026", "url": "https://sumguy.com/meshtastic-vs-meshcore-2026/", "published_at": "2026-07-24T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6ab66a5e", "title": "DNS-over-HTTPS at Home: cloudflared vs dnscrypt-proxy", "url": "https://sumguy.com/doh-at-home-cloudflared-vs-dnscrypt-proxy/", "published_at": "2026-07-24T12:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6b07e254", "title": "Komga vs Kavita: Self-Hosted Comic & Manga Servers", "url": "https://sumguy.com/komga-vs-kavita-comic-servers/", "published_at": "2026-07-24T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6b11393b", "title": "Headlamp: K8s UI Without the License Drama", "url": "https://sumguy.com/headlamp-k8s-ui-without-license-drama/", "published_at": "2026-07-23T16:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6b3f0640", "title": "YubiKey + age: Hardware-Backed Encryption Without GPG", "url": "https://sumguy.com/yubikey-age-portable-encryption/", "published_at": "2026-07-23T12:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6b4b8145", "title": "K9s vs Lens vs Headlamp: Cluster UIs", "url": "https://sumguy.com/k9s-vs-lens-vs-headlamp/", "published_at": "2026-07-23T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6bb76b83", "title": "Pangolin: Self-Hosted Cloudflare Tunnel Alternative", "url": "https://sumguy.com/pangolin-self-hosted-tunnels/", "published_at": "2026-07-22T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6c21b7fe", "title": "Krew: Kubectl Plugins You'll Actually Use", "url": "https://sumguy.com/krew-kubectl-plugins-actually-use/", "published_at": "2026-07-22T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6c8a83c3", "title": "Aider & Cline: Terminal AI Coding That Actually Ships", "url": "https://sumguy.com/aider-cline-terminal-ai-coding/", "published_at": "2026-07-22T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6d4465be", "title": "systemd-resolved: The DNS Resolver You're Already Using Wrong", "url": "https://sumguy.com/systemd-resolved-deep-dive/", "published_at": "2026-07-22T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6d4dffa5", "title": "KEDA: Event-Driven Autoscaling Self-Hosted", "url": "https://sumguy.com/keda-event-driven-autoscaling/", "published_at": "2026-07-21T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6de65a79", "title": "Beszel: Server Monitoring Without the Prometheus Tax", "url": "https://sumguy.com/beszel-lightweight-monitoring/", "published_at": "2026-07-21T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6eaa1d8c", "title": "Crossplane vs Terraform for Home Lab", "url": "https://sumguy.com/crossplane-vs-terraform-home-lab/", "published_at": "2026-07-21T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6ed497ec", "title": "OpenTofu in 2026: Where the Terraform Fork Stands", "url": "https://sumguy.com/opentofu-after-terraform-fork/", "published_at": "2026-07-21T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b6f684594", "title": "Goldilocks + VPA: Right-Size Pods Without Guessing", "url": "https://sumguy.com/goldilocks-vpa-right-size-pods/", "published_at": "2026-07-20T17:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7046468e", "title": "Capsule: Multi-Tenancy for Home Lab k3s", "url": "https://sumguy.com/capsule-multi-tenancy-home-lab-k3s/", "published_at": "2026-07-20T14:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7081733b", "title": "Sigstore + Gitsign: Signed Commits Without GPG Pain", "url": "https://sumguy.com/sigstore-gitsign-signed-commits/", "published_at": "2026-07-20T11:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b70e5f82a", "title": "Sealed Secrets vs External Secrets Operator", "url": "https://sumguy.com/sealed-secrets-vs-external-secrets-operator/", "published_at": "2026-07-20T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b711841c5", "title": "Mixture of Experts (MoE) for Self-Hosters, Demystified", "url": "https://sumguy.com/moe-mixture-of-experts-self-hosters/", "published_at": "2026-07-19T16:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b71b478f5", "title": "Dragonfly: P2P Container Image Distribution at Scale", "url": "https://sumguy.com/dragonfly-p2p-container-distribution/", "published_at": "2026-07-19T12:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b722c1be3", "title": "Reloader: Auto-Reload Pods on ConfigMap Change", "url": "https://sumguy.com/reloader-auto-reload-pods-configmap/", "published_at": "2026-07-19T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7262786d", "title": "Python Libraries Worth Your Time in 2026", "url": "https://sumguy.com/python-libraries-worth-your-time-2026/", "published_at": "2026-07-19T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b72b368a7", "title": "Atuin: Shell History That Actually Works Across Machines", "url": "https://sumguy.com/atuin-shell-history-sync/", "published_at": "2026-07-18T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b72b52ab1", "title": "Cilium on k3s: When eBPF Networking Pays", "url": "https://sumguy.com/cilium-on-k3s-when-ebpf-pays/", "published_at": "2026-07-18T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b732bf0f5", "title": "k3s + Tailscale: Cluster Across Two Sites", "url": "https://sumguy.com/k3s-tailscale-cross-site-cluster/", "published_at": "2026-07-17T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7413c4ec", "title": "Renovate vs Dependabot: Self-Hosted Dependency Bots", "url": "https://sumguy.com/renovate-vs-dependabot-self-hosted/", "published_at": "2026-07-17T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7417f92e", "title": "KubeVirt on k3s: VMs Next to Pods", "url": "https://sumguy.com/kubevirt-on-k3s-vms-next-to-pods/", "published_at": "2026-07-16T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b74fb7245", "title": "Mesh VPN Showdown: Tailscale, Nebula, ZeroTier, NetBird", "url": "https://sumguy.com/mesh-vpn-showdown-2026/", "published_at": "2026-07-16T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b75f4fcc9", "title": "ClickHouse vs DuckDB vs StarRocks: Light OLAP", "url": "https://sumguy.com/clickhouse-vs-duckdb-vs-starrocks/", "published_at": "2026-07-15T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7601a8b8", "title": "Speculative Decoding: Faster LLMs With a Tiny Sidekick", "url": "https://sumguy.com/speculative-decoding-draft-models/", "published_at": "2026-07-15T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b76c53289", "title": "Gitea Actions vs Woodpecker CI", "url": "https://sumguy.com/gitea-actions-vs-woodpecker/", "published_at": "2026-07-14T12:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b77613707", "title": "Adding NOT NULL on a Big Table Without Downtime", "url": "https://sumguy.com/adding-not-null-on-big-table/", "published_at": "2026-07-14T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b777afad9", "title": "Karakeep: Self-Hosted Bookmarks With AI Tagging", "url": "https://sumguy.com/karakeep-ai-tagged-bookmarks/", "published_at": "2026-07-14T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b77bc1a58", "title": "Firefly III vs Actual vs Fava (Beancount)", "url": "https://sumguy.com/firefly-vs-actual-vs-fava/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b780a82d1", "title": "io_uring: Linux's Async I/O Future Is Already Here", "url": "https://sumguy.com/io-uring-high-performance-io/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7897a472", "title": "Postgres HA: Patroni + etcd + HAProxy", "url": "https://sumguy.com/postgres-ha-patroni-etcd-haproxy/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b78a8f56a", "title": "Syncthing for Dotfiles: Sync vs Manage", "url": "https://sumguy.com/syncthing-for-dotfiles/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b78fbbe79", "title": "Btrfs RAID 5/6: Still Don't", "url": "https://sumguy.com/btrfs-raid-5-6-write-hole/", "published_at": "2026-07-12T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7906a663", "title": "Dragonfly vs Redis: Single-Binary Performance", "url": "https://sumguy.com/dragonfly-vs-redis-single-binary/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b797775a5", "title": "ntfy vs Gotify vs Apprise: Push Stacks", "url": "https://sumguy.com/ntfy-vs-gotify-vs-apprise/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b79d5ad68", "title": "Syncthing Through Untrusted VPS Relays", "url": "https://sumguy.com/syncthing-untrusted-vps-relay-mesh/", "published_at": "2026-07-12T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7a065e15", "title": "SnapRAID: Parity Without Real-Time RAID", "url": "https://sumguy.com/snapraid-parity-without-realtime/", "published_at": "2026-07-11T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7ad33c43", "title": "KeyDB: A Redis Fork With Multi-Threading", "url": "https://sumguy.com/keydb-redis-fork-multi-threading/", "published_at": "2026-07-11T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7b98ac56", "title": "Mastodon vs Misskey vs Pleroma 2026", "url": "https://sumguy.com/mastodon-vs-misskey-vs-pleroma/", "published_at": "2026-07-11T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7c0ebbc4", "title": "mdadm Day-2: Grow, Replace, Scrub", "url": "https://sumguy.com/mdadm-day-2-operations/", "published_at": "2026-07-10T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7c548136", "title": "Self-Hosted Email Gateways in 2026", "url": "https://sumguy.com/self-hosted-secure-email-gateways/", "published_at": "2026-07-10T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7cc9e6e5", "title": "pg_repack vs VACUUM FULL: Reclaim Bloat Live", "url": "https://sumguy.com/pg-repack-vs-vacuum-full/", "published_at": "2026-07-10T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7dbc208c", "title": "Vikunja vs Focalboard vs Taiga", "url": "https://sumguy.com/vikunja-vs-focalboard-vs-taiga/", "published_at": "2026-07-10T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7e175258", "title": "Hardware RAID vs Software RAID in 2026", "url": "https://sumguy.com/hardware-vs-software-raid/", "published_at": "2026-07-09T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7f0e7e69", "title": "FreshRSS vs Miniflux vs Tiny Tiny RSS", "url": "https://sumguy.com/freshrss-vs-miniflux-vs-ttrss/", "published_at": "2026-07-09T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b7f977e84", "title": "pg_stat_statements: What Most Tutorials Miss", "url": "https://sumguy.com/pg-stat-statements-what-tutorials-miss/", "published_at": "2026-07-09T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b803d5776", "title": "RAID-Z and dRAID: ZFS Parity Explained", "url": "https://sumguy.com/raid-z-and-draid-explained/", "published_at": "2026-07-08T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b80b0455a", "title": "Assume Your App Gets Popped", "url": "https://sumguy.com/assume-your-app-gets-popped/", "published_at": "2026-07-08T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b80bfeb5b", "title": "Mealie vs Tandoor vs Grocy Kitchen Stack", "url": "https://sumguy.com/mealie-vs-tandoor-vs-grocy/", "published_at": "2026-07-08T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b81505d45", "title": "Postgres EXPLAIN ANALYZE Without Crying", "url": "https://sumguy.com/postgres-explain-analyze-without-crying/", "published_at": "2026-07-08T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b82054615", "title": "RAID 50/60: Nested Parity Done Right", "url": "https://sumguy.com/raid-50-vs-60-nested/", "published_at": "2026-07-07T08:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b821e913f", "title": "Linkding vs Hoarder vs Wallabag in 2026", "url": "https://sumguy.com/linkding-vs-hoarder-vs-wallabag/", "published_at": "2026-07-07T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b82a3718b", "title": "pgAdmin vs Adminer vs CloudBeaver: Web UIs", "url": "https://sumguy.com/pgadmin-vs-adminer-vs-cloudbeaver/", "published_at": "2026-07-07T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b833805be", "title": "Borgmatic: Borg Backup, Done Right", "url": "https://sumguy.com/borgmatic-borg-with-scheduling/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b840d51c8", "title": "Owncast vs PeerTube vs nginx-rtmp", "url": "https://sumguy.com/owncast-vs-peertube-vs-nginx-rtmp/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b848ea668", "title": "PostgreSQL on ZFS: Tuning, Snapshots, Pitfalls", "url": "https://sumguy.com/postgresql-on-zfs-tuning-snapshots/", "published_at": "2026-07-06T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b85709463", "title": "Kasm Workspaces: Browser Desktops", "url": "https://sumguy.com/kasm-workspaces-disposable-desktops/", "published_at": "2026-07-05T00:00:00+00:00" }, { "id": "01a087e7-c433-7181-874e-9d3b8627401a", "title": "Navidrome vs Airsonic vs gonic", "url": "https://sumguy.com/navidrome-vs-airsonic-vs-gonic/", "published_at": "2026-07-05T00:00:00+00:00" } ] posts
Claim your blog
Back to sumguy.com
Blog · corpus.blog/blogs/sumguy.com/posts
sumguy.com
sumguy.com
2026
NUT: Network UPS Tools for Home Labs That Don't Want to Crash
original ↗
1 Aug 2026
Wezterm vs Alacritty vs Kitty: Modern Terminals
original ↗
1 Aug 2026
Mozilla Sync Server Self-Hosted: Still Viable?
original ↗
1 Aug 2026
Memos: Self-Hosted Microblog Meets Daily Note
original ↗
31 Jul 2026
Mullvad VPN Containers via Gluetun: Per-App VPN
original ↗
31 Jul 2026
OPA & Rego: Policy as Code Beyond Kubernetes
original ↗
31 Jul 2026
Convoy: Self-Hosted Webhook Delivery That Doesn't Drop Events
original ↗
31 Jul 2026
Local Coding Agents Need Less Context
original ↗
31 Jul 2026
Vaultwarden Behind Authelia: 2FA That Holds
original ↗
30 Jul 2026
LM Studio vs Jan vs GPT4All: Desktop LLM Clients
original ↗
30 Jul 2026
Joplin Server vs Trilium vs Standard Notes
original ↗
30 Jul 2026
Invidious, Piped, Redlib, Nitter: 2026 Status
original ↗
29 Jul 2026
cgroups v2 in Practice: Limits, Pressure, Containers
original ↗
29 Jul 2026
BTCPay Server: Self-Hosted Crypto Payments
original ↗
29 Jul 2026
Tang & Clevis: LUKS Auto-Unlock Without a Typed Passphrase
original ↗
29 Jul 2026
LibreSpeed: Hosting Your Own Speed Test
original ↗
28 Jul 2026
crun vs runc vs youki: OCI Runtimes Compared
original ↗
28 Jul 2026
LibreTranslate: Local Translation Without Google
original ↗
28 Jul 2026
RAGAS: Evaluating RAG Without Vibes
original ↗
28 Jul 2026
Collateral Freedom: Costly to Block
original ↗
27 Jul 2026
SearXNG vs Whoogle: Private Search Frontends
original ↗
27 Jul 2026
Meshtastic vs Reticulum
original ↗
27 Jul 2026
Stirling-PDF: Stop Uploading Your Tax Returns to Sketchy Sites
original ↗
27 Jul 2026
AdGuard DNS Sync Across Two Instances
original ↗
27 Jul 2026
wg-easy: WireGuard for Humans Who Hate Config Files
original ↗
27 Jul 2026
REALITY: Borrowing a TLS Handshake
original ↗
26 Jul 2026
Forgejo Actions: Self-Hosted GitHub-Style CI
original ↗
26 Jul 2026
LoRa Mesh Hardware Buying Guide
original ↗
26 Jul 2026
Self-Hosted Email Aliasing on Your Own Domain
original ↗
26 Jul 2026
CryptPad vs EtherCalc: Privacy Collaboration
original ↗
26 Jul 2026
nftables in 2026: Stop Pretending iptables Will Live Forever
original ↗
26 Jul 2026
Why Your VPN Is Already Detected
original ↗
25 Jul 2026
KV Cache Quantization: Free LLM Context, Almost
original ↗
25 Jul 2026
LoRa Mesh vs LoRaWAN vs Helium
original ↗
25 Jul 2026
NextDNS vs Self-Hosted: When SaaS Wins
original ↗
25 Jul 2026
Self-Hosted CAPTCHA Alternatives in 2026
original ↗
25 Jul 2026
Skopeo: Container Image Surgery Without a Daemon
original ↗
24 Jul 2026
Meshtastic vs MeshCore in 2026
original ↗
24 Jul 2026
DNS-over-HTTPS at Home: cloudflared vs dnscrypt-proxy
original ↗
24 Jul 2026
Komga vs Kavita: Self-Hosted Comic & Manga Servers
original ↗
24 Jul 2026
Headlamp: K8s UI Without the License Drama
original ↗
23 Jul 2026
YubiKey + age: Hardware-Backed Encryption Without GPG
original ↗
23 Jul 2026
K9s vs Lens vs Headlamp: Cluster UIs
original ↗
23 Jul 2026
Pangolin: Self-Hosted Cloudflare Tunnel Alternative
original ↗
22 Jul 2026
Krew: Kubectl Plugins You'll Actually Use
original ↗
22 Jul 2026
Aider & Cline: Terminal AI Coding That Actually Ships
original ↗
22 Jul 2026
systemd-resolved: The DNS Resolver You're Already Using Wrong
original ↗
22 Jul 2026
KEDA: Event-Driven Autoscaling Self-Hosted
original ↗
21 Jul 2026
Beszel: Server Monitoring Without the Prometheus Tax
original ↗
21 Jul 2026
Crossplane vs Terraform for Home Lab
original ↗
21 Jul 2026
OpenTofu in 2026: Where the Terraform Fork Stands
original ↗
21 Jul 2026
Goldilocks + VPA: Right-Size Pods Without Guessing
original ↗
20 Jul 2026
Capsule: Multi-Tenancy for Home Lab k3s
original ↗
20 Jul 2026
Sigstore + Gitsign: Signed Commits Without GPG Pain
original ↗
20 Jul 2026
Sealed Secrets vs External Secrets Operator
original ↗
20 Jul 2026
Mixture of Experts (MoE) for Self-Hosters, Demystified
original ↗
19 Jul 2026
Dragonfly: P2P Container Image Distribution at Scale
original ↗
19 Jul 2026
Reloader: Auto-Reload Pods on ConfigMap Change
original ↗
19 Jul 2026
Python Libraries Worth Your Time in 2026
original ↗
19 Jul 2026
Atuin: Shell History That Actually Works Across Machines
original ↗
18 Jul 2026
Cilium on k3s: When eBPF Networking Pays
original ↗
18 Jul 2026
k3s + Tailscale: Cluster Across Two Sites
original ↗
17 Jul 2026
Renovate vs Dependabot: Self-Hosted Dependency Bots
original ↗
17 Jul 2026
KubeVirt on k3s: VMs Next to Pods
original ↗
16 Jul 2026
Mesh VPN Showdown: Tailscale, Nebula, ZeroTier, NetBird
original ↗
16 Jul 2026
ClickHouse vs DuckDB vs StarRocks: Light OLAP
original ↗
15 Jul 2026
Speculative Decoding: Faster LLMs With a Tiny Sidekick
original ↗
15 Jul 2026
Gitea Actions vs Woodpecker CI
original ↗
14 Jul 2026
Adding NOT NULL on a Big Table Without Downtime
original ↗
14 Jul 2026
Karakeep: Self-Hosted Bookmarks With AI Tagging
original ↗
14 Jul 2026
Firefly III vs Actual vs Fava (Beancount)
original ↗
13 Jul 2026
io_uring: Linux's Async I/O Future Is Already Here
original ↗
13 Jul 2026
Postgres HA: Patroni + etcd + HAProxy
original ↗
13 Jul 2026
Syncthing for Dotfiles: Sync vs Manage
original ↗
13 Jul 2026
Btrfs RAID 5/6: Still Don't
original ↗
12 Jul 2026
Dragonfly vs Redis: Single-Binary Performance
original ↗
12 Jul 2026
ntfy vs Gotify vs Apprise: Push Stacks
original ↗
12 Jul 2026
Syncthing Through Untrusted VPS Relays
original ↗
12 Jul 2026
SnapRAID: Parity Without Real-Time RAID
original ↗
11 Jul 2026
KeyDB: A Redis Fork With Multi-Threading
original ↗
11 Jul 2026
Mastodon vs Misskey vs Pleroma 2026
original ↗
11 Jul 2026
mdadm Day-2: Grow, Replace, Scrub
original ↗
10 Jul 2026
Self-Hosted Email Gateways in 2026
original ↗
10 Jul 2026
pg_repack vs VACUUM FULL: Reclaim Bloat Live
original ↗
10 Jul 2026
Vikunja vs Focalboard vs Taiga
original ↗
10 Jul 2026
Hardware RAID vs Software RAID in 2026
original ↗
9 Jul 2026
FreshRSS vs Miniflux vs Tiny Tiny RSS
original ↗
9 Jul 2026
pg_stat_statements: What Most Tutorials Miss
original ↗
9 Jul 2026
RAID-Z and dRAID: ZFS Parity Explained
original ↗
8 Jul 2026
Assume Your App Gets Popped
original ↗
8 Jul 2026
Mealie vs Tandoor vs Grocy Kitchen Stack
original ↗
8 Jul 2026
Postgres EXPLAIN ANALYZE Without Crying
original ↗
8 Jul 2026
RAID 50/60: Nested Parity Done Right
original ↗
7 Jul 2026
Linkding vs Hoarder vs Wallabag in 2026
original ↗
7 Jul 2026
pgAdmin vs Adminer vs CloudBeaver: Web UIs
original ↗
7 Jul 2026
Borgmatic: Borg Backup, Done Right
original ↗
6 Jul 2026
Owncast vs PeerTube vs nginx-rtmp
original ↗
6 Jul 2026
PostgreSQL on ZFS: Tuning, Snapshots, Pitfalls
original ↗
6 Jul 2026
Kasm Workspaces: Browser Desktops
original ↗
5 Jul 2026
Navidrome vs Airsonic vs gonic
original ↗
5 Jul 2026
Previous
Next