500 Ideas
500 Ideas
Based on tools-to-try and adjacent rabbit holes.
Terminal & Aesthetics (1–60)
- cbonsai as a login shell screensaver via
TMOUT+ trap curl wttr.in/Montrealin a tmux status bar- lolcat + figlet MOTD on SSH login
tty-clockfullscreen clock as idle screensavercmatrixas a background pane in tmuxpipes.sh— animated pipes screensaver in terminalasciiquarium— fish tank screensavernyancatover SSH as a joke welcome screenunimatrix— Matrix rain but with unicode characters- figlet font collection — pick a different font per project
toiletas a fancier figlet alternative- Custom MOTD combining wttr.in + figlet + system stats
neofetchorfastfetchfor system info displaybottom(btm) as a modern top/htop replacementgdu— fast disk usage TUIduf— prettier df outputlsdorexa/eza— ls with icons and colorsbat— cat with syntax highlighting and git diffdelta— better git diff pagerfzf— fuzzy finder, pipe everything through itzoxide— smarter cd that learns your habitsatuin— shell history sync across machines via Tailscalestarshipprompt with custom modulesnushell— try a shell where everything is structured datacarapace— unified shell completion for any toolmcfly— neural network shell history searchbroot— interactive tree + cd in onevisidata— spreadsheet for the terminal (CSV, JSON, SQL)glow— render markdown in the terminal beautifullyrich(Python) — pretty-print anything in the terminaltextual(Python) — TUI framework, build dashboardsbubbletea(Go) — TUI framework for Go CLIs- frankentui.com — TUI components that run in a browser
ttyd -W claude— expose Claude as a browser terminalttyd+ Tailscale serve — private web terminal to any machinetmuxresurrect + continuum — persist sessions across rebootstmuxinator— define complex tmux layouts in YAMLzellij— tmux alternative with built-in layouts and pluginswezterm— terminal with Lua config and multiplexer built inghostty— fast terminal, worth benchmarking- Custom tmux theme matching SARA blog colors
taskwarrior— CLI task managertimewarrior— CLI time tracking, pairs with taskwarriorcalcurse— terminal calendar and todorangeroryazi— file manager in the terminallazygit— TUI for gitlazydocker— TUI for Dockerk9s— TUI for Kubernetesposting— TUI HTTP client (terminal Postman)harlequin— TUI SQL clientusql— universal SQL CLI (postgres, sqlite, mysql, etc.)xh— friendlier HTTPie replacementcurlie— curl with HTTPie-style outputgrex— generate regex from examples, pipe into scriptssd— sed replacement with friendlier syntaxripgrep-all(rga) — grep inside PDFs, ZIPs, docschoose— awk/cut replacementjq+fzf— interactive JSON exploreryq— jq for YAMLdasel— query/modify JSON, YAML, TOML, CSV with one tool
HTTP & API Testing (61–110)
- HURL — define HTTP tests in plain text files, commit them to repos
- HURL for smoke testing the blog after every deploy
- HURL to test content negotiation (text/markdown vs text/html)
- HURL test suite for all Caddyfile routes (404, 403, 200 cases)
- HURL + CI — run API tests on every git push
httpie— friendly curl replacement for interactive API callsxh— same idea, written in Rust, fasterposting— TUI alternative to Postman, no Electron- Bruno — open-source Postman alternative, stores collections as files
- Store Bruno collections in git alongside the code they test
- Insomnia — another Postman alternative worth comparing
k6— load testing with JavaScript scriptshey— simple HTTP load generatorvegeta— HTTP load testing with rate controlwrk— benchmarking HTTP serverslocust— load testing in Python with a web UImitmproxy— intercept and inspect HTTP trafficwireshark+tshark— network packet analysishttpbinself-hosted — test HTTP clients against a known APImockoon— mock REST APIs locally without a backendprism— mock server from an OpenAPI spec- OpenAPI spec for the blog's content negotiation routes
- Generate a client SDK from that OpenAPI spec
swagger-uiself-hosted — browse APIs in the browserredoc— cleaner OpenAPI docs renderercaddyrate limiting module — add per-IP rate limits to the blog- Test the blog's
Vary: Acceptheader with a caching proxy varnishin front of Caddy — HTTP cache layersquidas a caching proxy experimentnginxvscaddybenchmark on the same hardwarecaddymetrics endpoint + Prometheus scrapecaddylogdirective with custom format (combined vs JSON)- Parse blog access logs with
goaccess— real-time web analytics GoAccessdashboard served over Tailscale- Self-hosted analytics with
umamiinstead of Google Analytics plausibleanalytics — privacy-friendly, self-hostedmatomo— full-featured self-hosted analyticsfathom— minimal privacy-respecting analyticscounterscale— Cloudflare Workers-based analytics (free tier)- Add
x-forwarded-forlogging to see real client IPs through Funnel caddypushdirective — HTTP/2 server push for CSScaddyencodedirective — gzip/zstd compression- Add
Cache-Controlheaders to/css/*and/images/*in Caddyfile ETagheaders for blog articles — conditional GET support- Measure TTFB of the blog before and after compression
webpagetest.orgrun against the blog URLlighthouseCLI audit of the blogaxeaccessibility auditpa11y— automated accessibility testing CLIhtmlhint— lint the rendered HTML output
AI & LLM (111–180)
llmfit— probe hardware, find which LLMs actually fit- Run Llama 3.1 8B locally via
ollama ollama+ Open WebUI — self-hosted ChatGPT-style interfaceollamaserved over Tailscale — private LLM for all your devices- ntransformer — Llama 70B on a single RTX 3090 via NVMe-to-GPU
text-generation-webui— full-featured local LLM UIkoboldcpp— single-binary local LLM runnerllama.cpp— run quantized models on CPUjan— offline-first ChatGPT desktop applm-studio— GUI for running local modelsaider— AI pair programmer in the terminalcontinue.dev— VS Code AI coding assistant (local model backend)tabby— self-hosted GitHub Copilot replacementgepa— optimize prompts automatically against test cases- Build a prompt test suite for the blog's Caddy template logic
brainfile.mdprotocol — structured markdown for AI contextcord(june.kim) — AI coordination tool, worth understandingralph-orchestrator— multi-agent orchestrationpi-messenger— messaging via Raspberry Pipi-tmux— tmux config for Pi, adapt for the blog serverfabric— AI augmentation framework with pattern librarysgpt— shell-gpt, use GPT from the terminalllm(Simon Willison's CLI) — run any model from the terminalllm+ plugins — add local ollama backendllmfor summarizing access logsllmfor drafting blog posts from bullet pointsopencommit— AI-generated git commit messagesaicommit2— same idea, supports local models- AI-generated article summaries for the blog index
- AI-generated
og:descriptionfrom article body - Use
llmto generate article tags from content - Build a CLI that takes a URL and summarizes the page via local LLM
whisper— transcribe audio to markdown articles- Record a voice note, transcribe with Whisper, publish to blog
stable-diffusion-webui— generate images for articlescomfyui— node-based image generation pipelineollama+anki— generate flashcards from articles- RAG over the blog's own articles with
ollama+chroma - Vector search over articles — semantic article search
- Embed all articles and find related posts automatically
localai— OpenAI-compatible API for local models- Route Claude API calls through
localaifor cost comparison - Build a reading assistant that answers questions about articles
tgpt— ChatGPT in the terminal without an API keymods— AI in the terminal, pipes well with other CLIsgptscript— write scripts that call LLMs as functionsell— LLM prompt engineering library (Python)dspy— programmatic LLM pipelineslangchain— LLM orchestration frameworklanggraph— stateful multi-agent workflowsautogen— Microsoft's multi-agent frameworkcrew-ai— role-based multi-agent systempocketflow— minimal LLM pipeline framework (100-line core)- Build a blog post editor agent that critiques drafts
- Build a fact-checker agent that validates claims in articles
instructor— structured output from LLMs (Pydantic models)marvin— AI function decorators for Pythonoutlines— guaranteed structured generation from LLMslitellm— unified API across all LLM providers- Compare Claude vs local Llama on blog article quality
mem0— long-term memory layer for AI applicationscognee— knowledge graph from documents- Build a knowledge graph of all blog articles
notdiamond— route queries to the best model automatically- Fine-tune a small model on your writing style
axolotl— LLM fine-tuning frameworkmergekit— merge two model weights together- Build a writing assistant tuned to your voice
- AI-powered tag/category system for the blog
- A/B test AI-generated titles vs manual ones
Tailscale & Networking (181–240)
atuinsync via Tailscale — shell history on every machine- Tailscale SSH to replace OpenSSH on all machines
- Tailscale ACLs as code — manage via Terraform or Pulumi
tailscale servefor internal-only tools (vs Funnel for public)- Host Grafana over
tailscale serve— never expose port 3000 - Host Prometheus over
tailscale serve - Host Netdata over
tailscale serve - Host Uptime Kuma over
tailscale serve— internal status page - Host Portainer over
tailscale serve - Tailscale exit node on the Fedora machine — route all traffic
- Tailscale subnet router — expose home LAN to all devices
- MeshTNC — mesh networking over radio (APRS/packet)
meshtastic— LoRa mesh network for off-grid commsyggdrasil— end-to-end encrypted mesh networkheadscale— self-hosted Tailscale control plane- Compare headscale vs Tailscale for a private tailnet
- Tailscale +
caddy— automatic HTTPS for internal services - Tailscale MagicDNS custom hostnames via admin console
.cadomain from Porkbun — point to Tailscale Funnel- Custom domain on the blog via Tailscale Funnel + CNAME
cloudflare tunnelvs Tailscale Funnel comparisonngrokvs Tailscale Funnel for temporary public exposurebore— self-hosted ngrok alternativefrp— fast reverse proxy for NAT traversalrathole— reverse proxy with low resource usage- WireGuard manual setup — understand what Tailscale wraps
netbird— WireGuard-based mesh, Tailscale alternativeinnernet— WireGuard-based private networknebula— Slack's overlay network toolzerotier— another Tailscale alternative worth comparing- Self-hosted DNS with
piholeover Tailscale adguard home— pihole alternative with more featurescoredns— programmable DNS servertechnitium— full DNS server with web UI- DNSSEC validation with
drillorkdig - Test DNS leak when using Tailscale exit node
nmapscan of your tailnet — know what's exposedmasscan— fast port scanner for network auditsrustscan— faster nmap frontendnetcat— still the most useful networking toolsocat— netcat on steroidsmtr— traceroute + ping combinediperf3— measure bandwidth between tailnet nodesspeedtest-cli— automated bandwidth logging to a filevnstat— network traffic monitor with historybandwhich— per-process bandwidth usage TUInethogs— per-process network monitortcpdumpon the blog server — see raw Funnel trafficwiresharkremote capture over SSHscapy— craft arbitrary packets in Pythonnftables— modern iptables, audit current rulesfirewalld— zone-based firewall management- Audit SELinux denials on the blog server
fail2ban— ban IPs after repeated 403s in access logcrowdsec— collaborative IP reputation blockingendlessh— SSH tarpit to waste attackers' time- Monitor Tailscale peer count and bandwidth via API
tailscale status --jsonpiped to a dashboard- Build a Tailscale network map visualizer
- Alert when a tailnet device goes offline
Git & Version Control (241–290)
lazygit— replace all git CLI usage with TUIgitui— Rust-based lazygit alternativetig— text-mode git log browsergit-absorb— automatically fixup recent commitsgit-branchless— stacked diffs workflowghCLI for everything GitHub — issues, PRs, releasesgh dash— GitHub dashboard TUIforgejo— self-hosted GitHub, lighter than Giteagitea— self-hosted git serversoft-serve— terminal-first git server by Charm- Mirror the blog repo to a self-hosted Forgejo over Tailscale
git-cliff— auto-generate changelogs from commit messagescocogitto— conventional commits enforcer + changelog- Conventional commits for the blog repo
commitlint— lint commit messages in CIpre-commitframework — git hooks as configlefthook— fast git hooks managerhusky— git hooks for JS projectsgitleaks— scan repos for secretstrufflehog— find secrets in git historydetect-secrets— pre-commit hook for secret detectiongit-crypt— transparent encryption of files in gitage— modern encryption tool, simpler than GPG- Sign commits with SSH key (Tailscale identity?)
git log --all --grep— search commit messages for decisionsgit bisect— binary search for the commit that broke somethinggit worktree— multiple checkouts of one repogit notes— attach metadata to commits without amendinggit-annex— version control for large filesdvc— data version control for ML projectsgit-filter-repo— rewrite git history (remove secrets)BFG Repo Cleaner— same idea, simpler interfacegit maintenance— schedule background git optimizationsgit sparse-checkout— only checkout part of a monorepogit bundle— pack a repo for offline transfer- ciaclean alias — add to shell config, clean merged branches weekly
git branch --no-mergedaudit — find stale branches- Pre-push hook that runs HURL tests before pushing
- Pre-commit hook that runs
htmlhinton templates - Post-receive hook on the server to auto-pull after push
- Webhook from GitHub → deploy script on the blog server
gitops— git as the source of truth for server stateflux— GitOps for Kubernetesargocd— GitOps with a web UIwerf— build + deploy tool with GitOps workflow- Automate blog deployments with a simple
post-receivehook act— run GitHub Actions locallyearthly— reproducible CI buildsdagger— CI/CD pipelines as code (Go/Python/TypeScript)- Self-hosted Forgejo Actions for blog CI
Self-Hosting (291–360)
forgejo— self-hosted GitHub over Tailscalegitea+ Tailscale serve — private git hostingsoft-serve— SSH-accessible git server by Charmvaultwarden— self-hosted Bitwarden serverpaperless-ngx— document management with OCRimmich— self-hosted Google Photos replacementphotoprism— AI-powered photo managementjellyfin— media server, replace Plexnavidrome— music streaming server (Subsonic API)audiobookshelf— podcast and audiobook servercalibre-web— ebook library serverfreshrss— self-hosted RSS aggregatorminiflux— minimal RSS reader, Go binarywallabag— read-it-later, self-hosted Pocketlinkding— bookmark managerhoarder— bookmark manager with AI taggingshiori— simple bookmark manager in Gomealie— recipe managertandoor— recipe manager with meal planninggrocy— household management (groceries, chores)home assistant— home automation platformnode-red— visual automation flowsn8n— workflow automation (self-hosted Zapier)activepieces— n8n alternativewindmill— scripts and workflows with a web IDEtemporal— durable workflow engineuptime kuma— monitoring with status pagegatus— endpoint monitoring with alertinghealthchecks.ioself-hosted — cron job monitoringnetdata— real-time performance monitoringgrafana+prometheusstackvictoria metrics— lighter Prometheus alternativeloki+grafana— log aggregation and visualizationgoaccess— real-time web log analyzer (already noted)plausible— privacy-first analytics (already noted)umami— simpler analytics alternativematomo— full-featured analyticsnextcloud— self-hosted Google Drive / Docsseafile— faster file sync than Nextcloudsyncthing— peer-to-peer file sync, no server needed- Syncthing between laptop and blog server for article drafts
rclone— sync files to any cloud storagerestic— encrypted backup to any backendborgbackup— deduplicating encrypted backupduplicati— backup with web UI- Automated backup of blog repo + articles to Backblaze B2
minio— self-hosted S3-compatible object storagegarage— lightweight distributed S3 alternativeheadscale— self-hosted Tailscale coordination serverauthentik— identity provider, SSO for self-hosted appskeycloak— enterprise-grade SSOauthelia— 2FA and SSO proxytraefik— reverse proxy with automatic Let's Encryptnginx proxy manager— GUI for nginx reverse proxycaddyas reverse proxy for all self-hosted servicesdocker composefor all self-hosted servicespodmanas rootless Docker replacementpodman-composefor the same workflowdistrobox— run any Linux distro in a containertoolbox(Fedora) — development containersincus— LXD fork, system containers and VMscockpit— web-based Linux server management UIwebmin— older but still useful admin panelportainer— Docker management web UIyacht— Docker management, cleaner UI than Portainerdockge— docker compose management UIdasherr/homer/homarr— self-hosted dashboard for all servicesflame— minimal startpage / dashboardorganizr— media server dashboardpenpot— self-hosted Figma alternative
Dev Tools & Scaffolding (361–420)
better-t-stack— scaffold a full-stack JS projectcreate-t3-app— Next.js + tRPC + Tailwindhono— fast web framework for edge/Bun/Denoelysia— Bun-native web framework with TypeScriptbun— JS runtime + package manager + bundlerdeno— secure JS runtime with built-in TypeScriptuv— extremely fast Python package managerrye— Python project manager (like cargo for Python)pdm— PEP 582 Python package managerpixi— conda-compatible fast package managermise— polyglot version manager (replaces nvm, pyenv, rbenv)devenv— Nix-based dev environmentsdevbox— isolated dev environments without Dockerflox— Nix-based environment manager with a simpler UXnix-shell— reproducible dev environments- NixOS — try it in a VM first
direnv— auto-load env vars per directorydotenv-vault— sync .env files securely across teamchamber— store secrets in AWS SSM, use like env varssops— encrypt secrets in YAML/JSON, commit safelyage+sopsfor encrypting blog config secretsjust— command runner (better Makefile)task(taskfile) — YAML-based task runnermask— task runner from a markdown filemage— Go-based task runner (Makefile in Go)tilt— dev environment orchestrator with live reloadskaffold— Kubernetes dev workflowgarden— multi-service development and testingtelepresence— develop Kubernetes services locallyctlptl— manage local Kubernetes clusterskind— Kubernetes in Dockerk3s— lightweight Kubernetesk3d— k3s in Dockerminikube— local Kubernetes clusterhelm— Kubernetes package managerkustomize— Kubernetes config managementflux— GitOps for Kubernetesopentofu— open-source Terraform forkpulumi— infrastructure as real code (Go, Python, TS)ansible— configuration management for the blog server- Ansible playbook to set up the blog server from scratch
chezmoi— dotfiles manager with templates and secretsstow— symlink-based dotfiles manageryadm— yet another dotfiles manager (git-based)mackup— backup and sync application settingstopgrade— upgrade everything with one commandrenovate— automated dependency updates (self-hosted)dependabot— GitHub's dependency update bottrivy— container and code vulnerability scannergrype— vulnerability scanner for container imagessyft— generate SBOMs from container imagescosign— sign container imagesslsa— software supply chain security frameworksemgrep— static analysis, find bugs by patternsonarqube— self-hosted code quality analysiscodeclimate— code quality metricscodecov— test coverage trackingbenchstat— compare Go benchmark resultshyperfine— CLI benchmarking toolcriterion— Rust benchmarking framework
Data & Automation (421–460)
faker(Python) — generate realistic fake data for testingmimesis— faster faker alternativefactory_boy— test fixtures using factories- Generate fake article content with faker for load testing
datasette— publish SQLite databases as a web APIsqlite-utils— manipulate SQLite from the CLI- Blog article metadata in SQLite — query with datasette
duckdb— in-process analytical SQL database- Analyze access logs with duckdb — fast JSON parsing
pydantic— data validation with Python type hintspolars— fast DataFrame library (Rust backend)ibis— DataFrame API that compiles to SQLevidence— BI tool that uses SQL + markdownmetabase— self-hosted BI dashboardsuperset— Apache's self-hosted data exploration toolredash— self-hosted query and dashboard toolnocodb— Airtable alternative on top of any databasebaserow— another Airtable alternativeappsmith— internal tool builderbudibase— low-code internal app builderretool— internal tool builder (hosted)pipedream— event-driven automation platformhuginn— self-hosted IFTTTchangedetection.io— monitor web pages for changesntfy— push notifications via HTTP (self-hosted)gotify— self-hosted push notification serverapprise— send notifications to 50+ services from CLI- Alert on 5xx errors in access log via
ntfy - Alert when a new article is published (via git push hook)
prefect— Python-based workflow orchestrationairflow— batch workflow schedulerdagster— data pipeline orchestration with assetshamilton— micro-framework for dataflow in Pythondbt— transform data in your warehouse with SQLgreat expectations— data quality validationpandera— DataFrame schema validation- Log access patterns and visualize reading habits
- Track word count per article over time
- Reading time estimator for articles (words / 200 wpm)
- Auto-generate article table of contents from headings
Writing & Publishing (461–500)
stackedit— add an in-browser markdown editor to the blogobsidian— personal knowledge base, export to bloglogseq— outliner knowledge base, open-sourcedendron— VS Code extension for note-takingfoam— VS Code-based Roam alternativezettlr— academic markdown editormarktext— clean cross-platform markdown editortypora— distraction-free markdown editorghostwriter— minimal markdown editor for Linuxwriteas— minimal blogging platform (for inspiration)- Write in
neovimwithzen-mode.nvimfor distraction-free editing vale— prose linter (style guide enforcement)proselint— linter for common writing errorsalex— catches insensitive language in writinglanguagetool— self-hosted grammar checkertextlint— pluggable natural language lintermdbook— render a directory of markdown as a bookquartz— publish Obsidian vault as a websitehugo— static site generator (already have it installed)- Compare hugo vs caddy-templates rendering approach
zola— Rust-based static site generatoreleventy— JavaScript static site generatorastro— content-focused web frameworklume— Deno-based static site generator- RSS feed for the blog — generate from articles directory
- Atom feed as an alternative to RSS
- JSON Feed — modern feed format (easier to parse)
- Submit blog to Feedly, NewsBlur, other RSS directories
- Submit to Hacker News "Who's blogging?" threads
- IndieWeb webmention support — get notified of links
webmention.io— receive webmentions without self-hostingbridgy— syndicate blog posts to social networks- POSSE — publish own site, syndicate elsewhere
- Cross-post articles to dev.to via API
- Cross-post to Hashnode via API
- Generate a tweet/toot thread from an article automatically
mastodonAPI — post article links from the terminaltootCLI — Mastodon client in the terminal- Email newsletter from the blog —
listmonkself-hosted buttondown— minimal newsletter service if not self-hosting