41554 blogs · [ { "id": "01a087d7-22ba-727c-b208-5da12d28ac82", "title": "The Agentic OS in Practice: Running Multiple Agents Without Losing Control", "url": "https://rogerstringer.com/blog/agentic-os-in-practice", "published_at": "2026-09-06T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da12dbc339a", "title": "Your AI Agent Needs a Definition of Done", "url": "https://rogerstringer.com/blog/agent-definition-of-done", "published_at": "2026-09-03T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da12e4a4525", "title": "Setting Up Dozzle with Auth on Coolify", "url": "https://rogerstringer.com/blog/setting-up-dozzle-with-auth-on-coolify", "published_at": "2026-09-02T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da12eae6f38", "title": "How to Build an Agent QA Loop That Files Its Own GitHub Issues", "url": "https://rogerstringer.com/blog/agent-qa-loop-github-issues", "published_at": "2026-08-30T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da12f7c3544", "title": "Context Engineering for Production Agents: Sources, Boundaries, and Evaluation", "url": "https://rogerstringer.com/blog/context-engineering-production-agents", "published_at": "2026-07-23T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da12fe53154", "title": "Your Astro API Route Can Be an MCP Server", "url": "https://rogerstringer.com/blog/mcp-server-astro-api-routes", "published_at": "2026-07-07T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da130364367", "title": "Talk to Your Datastar Chat: Voice Input with the Web Speech API", "url": "https://rogerstringer.com/blog/voice-input-datastar-chat-web-speech-api", "published_at": "2026-07-01T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da130fb9db0", "title": "Run the Whole Stack Locally: Datastar + Astro + Ollama, No Cloud Bill", "url": "https://rogerstringer.com/blog/local-first-datastar-ollama", "published_at": "2026-06-07T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da1315a8dcf", "title": "How to use Claude Code to QA your website", "url": "https://rogerstringer.com/blog/how-to-use-claude-code-to-qa-your-website", "published_at": "2026-06-06T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da131e33e1a", "title": "Streaming Structured Output into a Datastar UI (a Card That Fills Itself In)", "url": "https://rogerstringer.com/blog/streaming-structured-output-datastar", "published_at": "2026-06-06T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da132d588d5", "title": "Giving Your Datastar Chat Real Tools with the Vercel AI SDK v6 Agent", "url": "https://rogerstringer.com/blog/datastar-agent-tools-vercel-ai-sdk", "published_at": "2026-06-05T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da13369c7f5", "title": "Build a Streaming AI Chat Widget with Astro, Datastar, and the Vercel AI SDK", "url": "https://rogerstringer.com/blog/streaming-ai-chat-widget-astro-datastar", "published_at": "2026-06-04T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da1344aea99", "title": "Add an AI \"Summarize This Page\" Button to Any Astro Site with Datastar", "url": "https://rogerstringer.com/blog/ai-summarize-button-astro-datastar", "published_at": "2026-06-03T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da13534fcab", "title": "Streaming LLM Responses into a Datastar UI with the Vercel AI SDK", "url": "https://rogerstringer.com/blog/streaming-llm-datastar-vercel-ai-sdk", "published_at": "2026-06-02T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da1360e5701", "title": "Building AI Apps with Astro, Datastar & the Vercel AI SDK (a 6-Part Series)", "url": "https://rogerstringer.com/blog/ai-apps-with-datastar", "published_at": "2026-06-01T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da1370de416", "title": "How to use VAPID web push notifications with Astro", "url": "https://rogerstringer.com/blog/vapid-web-push-notifications-astro", "published_at": "2026-05-29T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da13784ab80", "title": "Building a Streaming URL Summarizer with Astro, Datastar, and the Vercel AI SDK", "url": "https://rogerstringer.com/blog/streaming-url-summarizer-astro-datastar-vercel-ai-sdk", "published_at": "2026-04-06T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da138741103", "title": "Why I’m migrating from HTMX + Alpine to Datastar", "url": "https://rogerstringer.com/blog/why-im-migrating-from-htmx-alpine-to-datastar", "published_at": "2026-02-28T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da1389cc4d4", "title": "3 ingredient Keto Chaffle Recipe", "url": "https://rogerstringer.com/blog/keto-chaffle-recipe", "published_at": "2026-01-08T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da138ebb9dd", "title": "Bun is joining Anthropic", "url": "https://rogerstringer.com/blog/bun-is-joining-anthropic", "published_at": "2025-12-02T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da1393dc5e3", "title": "Self-Hosting n8n on Railway", "url": "https://rogerstringer.com/blog/self-hosting-n8n-on-railway", "published_at": "2025-08-04T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da1396bb26e", "title": "Replit AI agent deletes user's entire production database", "url": "https://rogerstringer.com/blog/replit-ai-agent-deletes-users-entire-production-database", "published_at": "2025-07-22T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da139bebae8", "title": "Windsurf's New Chapter", "url": "https://rogerstringer.com/blog/windsurfs-new-chapter", "published_at": "2025-07-14T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da13a11c3cd", "title": "OpenAI’s Windsurf deal is off — and Windsurf’s CEO is going to Google", "url": "https://rogerstringer.com/blog/google-windsurf-ceo-openai", "published_at": "2025-07-11T00:00:00+00:00" }, { "id": "01a087d7-22ba-727c-b208-5da13ad47cda", "title": "The Curious Case of Apple and Perplexity: Do They Need Each Other?", "url": "https://rogerstringer.com/blog/the-curious-case-of-apple-and-perplexity", "published_at": "2025-06-22T00:00:00+00:00" } ] posts Claim your blog
Back to rogerstringer.com
Blog · corpus.blog/blogs/rogerstringer.com/posts

rogerstringer.com

rogerstringer.com

2026

2025