Technical Insights
Field notes from building and running Ruby on Rails systems, with the metrics and trade-offs behind each decision.
Rails Performance
Query plans, cache behavior, queue latency, TimescaleDB, and deploy cost.
Solid Stack
Solid Queue, Solid Cache, Kamal, and when Redis should stay.
Rails AI Agents
SDK choices, tool design, background jobs, approvals, and cost control.
API Integrations
Odoo, Xero, OAuth refresh, webhooks, sync jobs, and reconciliation.
Anthropic Ruby SDK vs ruby_llm: Claude Gem Trade-offs
Compare the official Anthropic Ruby SDK with ruby_llm for Claude in Rails: provider-specific features, Rails persistence, and where each gem gets awkward.
Read full articleSolid Queue Recurring Jobs: Rails 8 Schedule Setup Notes
Set up static Solid Queue recurring jobs in Rails 8 with config/recurring.yml, Fugit schedule checks, scheduler processes, idempotency, and deployment notes.
Read full articleGemini API in Ruby: Interactions Client Notes
Build a narrow Gemini Interactions API client in Ruby: Faraday transport, function calling, boundary parsing, server-side state, and approval gates.
Read full articleRunning AI Agents as Background Jobs with Solid Queue
Run AI agents as background jobs with Solid Queue: queue isolation, concurrency limits, safe retries, resumable runs, and per-account cost control.
Read full articleRails AI Agents with the Anthropic SDK: Guardrails
Build a Rails AI agent with the official Anthropic Ruby SDK: tool loops, MCP servers, write-tool guardrails, approval gates, testing, and cost controls.
Read full articleOdoo API Integration in 2026: JSON-2, Webhooks, Dashboards
Odoo API integration in 2026: JSON-2 in Odoo 19, native webhooks, plan limits, rate ceilings, external IDs, and warehouse-backed reporting.
Read full articleXero API Integration: Pricing, Scopes, Sync Boundaries
Xero API notes on pricing, granular OAuth scopes, rate limits, token refresh, webhook gaps, and why dashboards should read a synced copy, not the API.
Read full articleTimescaleDB vs Postgres in Rails: When You Need It
TimescaleDB vs plain PostgreSQL for a Ruby on Rails app: hypertables, compression, continuous aggregates, migration risk, and when plain Postgres still wins.
Read full articleSolid Queue vs Sidekiq vs GoodJob for Rails Jobs
Compare Solid Queue, Sidekiq, and GoodJob by workload shape: throughput, pickup latency, Redis cost, batch support, retry semantics, and migration risk.
Read full articleMission Control Jobs: Solid Queue Ops Setup
Mount mission_control-jobs for Solid Queue, secure the dashboard, filter job arguments, add alerting outside the UI, and rehearse the retry path.
Read full articleSolid Cache in Rails 8: When the Database Is the Right Cache
Use Solid Cache when operational simplicity and disk-backed capacity beat cache-hit latency, with separate cache databases, size limits, and encryption.
Read full articleDeploy Rails 8 with Kamal to a VPS: Setup Runbook
Deploy Rails 8 apps to an Ubuntu VPS with Kamal 2: server setup, Docker config, SSL, migrations, backups, and rollback commands.
Read full articleRails 8 Authentication Generator: What You Still Build
Use the Rails 8 authentication generator for login, password resets, and database-backed sessions, then build sign-up, confirmation, lockout, and 2FA.
Read full articleSidekiq to Solid Queue Migration: Rails Runbook
Migrate Sidekiq to Solid Queue in Rails 8 with per-job adapter rollout, retry mapping, recurring job cutover, and tested rollback.
Read full articleSolid Queue in Rails 8: Setup Notes and Trade-offs
Install Solid Queue in Rails 8, configure recurring.yml and concurrency limits, choose Puma or a separate jobs process, and weigh the Redis trade-off.
Read full articleRails PostgreSQL Performance: Start With the Query Plan
Use EXPLAIN ANALYZE to find the real Rails database bottleneck, then fix the proven failure mode: N+1 queries, missing indexes, or Ruby-side aggregation.
Read full articleHotwire and Turbo in Rails: Where Server-Rendered UI Fits
Use Hotwire and Turbo where Rails owns page state: frames for scoped updates, streams for live regions, Stimulus for the rest, and when React still wins.
Read full article