56,966 blogs · [ { "id": "01a0d567-a169-711e-be9d-45e1db811afe", "title": "Jev vs Claude: Who Wins?", "url": "https://bengreenberg.dev/blog/jev-vs-claude-who-wins/", "published_at": "2026-09-18T00:00:00+00:00" }, { "id": "01a0d567-a169-711e-be9d-45e1dc3deb11", "title": "Your agent has a wallet. It still can't buy anything.", "url": "https://bengreenberg.dev/blog/your-agent-has-a-wallet-it-still-can-t-buy-anything/", "published_at": "2026-09-15T00:00:00+00:00" }, { "id": "01a0d567-a169-711e-be9d-45e1dd2c7806", "title": "The Redirect Is Part of the Threat Model: Hardening MCP Client Connections", "url": "https://bengreenberg.dev/blog/the-redirect-is-part-of-the-threat-model-hardening-mcp-client-connections/", "published_at": "2026-09-14T00:00:00+00:00" }, { "id": "01a0d567-a169-711e-be9d-45e1dd9bf125", "title": "Where MCP Ends and A2A Begins: Building a Two-Agent Support Workflow Without Tool-Wrapping", "url": "https://bengreenberg.dev/blog/where-mcp-ends-and-a2a-begins-building-a-two-agent-support-workflow-without/", "published_at": "2026-09-11T00:00:00+00:00" }, { "id": "01a0d567-a169-711e-be9d-45e1de6a5cb9", "title": "The AI wrote the code. You still have to defend it.", "url": "https://bengreenberg.dev/blog/the-ai-wrote-the-code-you-still-have-to-defend-it/", "published_at": "2026-09-10T00:00:00+00:00" }, { "id": "01a0d567-a169-711e-be9d-45e1df1afdd4", "title": "The 24kb Limit for Smart Contracts is Gone", "url": "https://bengreenberg.dev/blog/the-24kb-limit-for-smart-contracts-is-gone/", "published_at": "2026-09-09T00:00:00+00:00" }, { "id": "01a0d567-a169-711e-be9d-45e1e014640f", "title": "Wiring a Reachy Mini into OpenClaw without trusting the robot", "url": "https://bengreenberg.dev/blog/wiring-a-reachy-mini-into-openclaw-without-trusting-the-robot/", "published_at": "2026-09-08T00:00:00+00:00" }, { "id": "01a08739-fd79-72ca-a35b-2fb1bad587c9", "title": "Vector Search Is Still the Memory Layer Agents Actually Need", "url": "https://bengreenberg.dev/blog/vector-search-is-still-the-memory-layer-agents-actually-need/", "published_at": "2026-08-27T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebad63cfa", "title": "What the new ArbOS will change for Arbitrum app developers", "url": "https://bengreenberg.dev/blog/what-the-new-arbos-will-change-for-arbitrum-app-developers/", "published_at": "2026-08-07T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebb28f84c", "title": "What would change if Arbitrum replaced its state tree", "url": "https://bengreenberg.dev/blog/what-would-change-if-arbitrum-replaced-its-state-tree/", "published_at": "2026-08-06T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebb610dc3", "title": "What a good Agents.md should teach an agent on day one", "url": "https://bengreenberg.dev/blog/what-a-good-agents-md-should-teach-an-agent-on-day-one/", "published_at": "2026-08-03T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebb9ed954", "title": "From First-Run Drop-Off to First Useful Agent Run", "url": "https://bengreenberg.dev/blog/from-first-run-drop-off-to-first-useful-agent-run/", "published_at": "2026-07-16T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebc0d6520", "title": "The first Robinhood Chain app you should build is not another token", "url": "https://bengreenberg.dev/blog/the-first-robinhood-chain-app-you-should-build-is-not-another-token/", "published_at": "2026-07-09T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebcaa4799", "title": "This is why the smartphone failed in the early 1990s", "url": "https://bengreenberg.dev/blog/this-is-why-the-smartphone-failed-in-the-early-1990s/", "published_at": "2026-07-01T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebcb20f8d", "title": "Your Solana code does not need a rewrite to reach Ethereum users", "url": "https://bengreenberg.dev/blog/your-solana-code-does-not-need-a-rewrite-to-reach-ethereum-users/", "published_at": "2026-06-30T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebd86fd83", "title": "Verifying what your AI provider actually ran", "url": "https://bengreenberg.dev/blog/verifying-what-your-ai-provider-actually-ran/", "published_at": "2026-05-27T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebe1be93a", "title": "Shipping x402 on AWS and Arbitrum", "url": "https://bengreenberg.dev/blog/shipping-x402-on-aws-and-arbitrum/", "published_at": "2026-04-29T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebea8b612", "title": "Cloudflare just made x402 a compliance checkbox", "url": "https://bengreenberg.dev/blog/cloudflare-just-made-x402-a-compliance-checkbox/", "published_at": "2026-04-24T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebeeb7751", "title": "Your backend code is a black box. It doesn't have to be.", "url": "https://bengreenberg.dev/blog/your-backend-code-is-a-black-box-it-doesn-t-have-to-be/", "published_at": "2026-04-01T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebf00c484", "title": "You're flying blind on Claude Code spending. I built a window.", "url": "https://bengreenberg.dev/blog/you-re-flying-blind-on-claude-code-spending-i-built-a-window/", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ebf736d88", "title": "When the sirens stop, the data starts", "url": "https://bengreenberg.dev/blog/when-the-sirens-stop-the-data-starts/", "published_at": "2026-03-15T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec0256932", "title": "AI and Stylus: The Builder's New Toolkit", "url": "https://bengreenberg.dev/blog/ai-and-stylus-the-builders-new-toolkit/", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec0519343", "title": "Is your project ready for Arbitrum Open House? A founder's self-assessment.", "url": "https://bengreenberg.dev/blog/is-your-project-ready-for-arbitrum-open-house-a-founder-s-self-assessment/", "published_at": "2026-02-18T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec0fd58f2", "title": "What winning Arbitrum Open House teams do differently", "url": "https://bengreenberg.dev/blog/what-winning-arbitrum-open-house-teams-do-differently/", "published_at": "2026-02-17T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec13b12e5", "title": "How I am securing an OpenClaw hosting platform where customers hand over their API keys", "url": "https://bengreenberg.dev/blog/how-i-am-securing-an-openclaw-hosting-platform-where-customers-hand-over-their-api-keys/", "published_at": "2026-02-15T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec2235bdd", "title": "The Torah figured out AI agent liability 2,000 years ago", "url": "https://bengreenberg.dev/blog/the-torah-figured-out-ai-agent-liability-2-000-years-ago/", "published_at": "2026-02-13T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec27d4a6e", "title": "I Built a Claude Skill That Scaffolds Arbitrum dApps. Here's How It Works.", "url": "https://bengreenberg.dev/blog/i-built-a-claude-skill-that-scaffolds-arbitrum-dapps-here-s-how-it-works/", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec2b816dd", "title": "I built a Chrome extension that scores my X posts before I hit publish", "url": "https://bengreenberg.dev/blog/i-built-a-chrome-extension-that-scores-my-x-posts-before-i-hit-publish/", "published_at": "2026-01-23T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec36c7b78", "title": "The developer who doesn't code: what actually matters in 2026", "url": "https://bengreenberg.dev/blog/the-developer-who-doesn-t-code-what-actually-matters-in-2026/", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec396b132", "title": "Why you can't handle disagreement anymore", "url": "https://bengreenberg.dev/blog/why-you-can-t-handle-disagreement-anymore/", "published_at": "2026-01-19T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec3e022cf", "title": "The hiring mistake that costs you your best candidates", "url": "https://bengreenberg.dev/blog/the-hiring-mistake-that-costs-you-your-best-candidates/", "published_at": "2026-01-17T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec437b98c", "title": "Vibe Code Your First App on Arbitrum This Weekend", "url": "https://bengreenberg.dev/blog/vibe-code-your-first-app-on-arbitrum-this-weekend/", "published_at": "2026-01-09T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec48bc7f2", "title": "x402 v2: What Changed and Why It Matters for Arbitrum Builders", "url": "https://bengreenberg.dev/blog/x402-v2-what-changed-and-why-it-matters-for-arbitrum-builders/", "published_at": "2026-01-06T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec4ea69b3", "title": "Docker Does What?!? Run AI Models Locally with Docker", "url": "https://bengreenberg.dev/blog/docker-does-what-run-ai-models-locally-with-docker/", "published_at": "2025-03-30T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec50ab35d", "title": "What's New in Developer Trends in 2024", "url": "https://bengreenberg.dev/blog/whats-new-in-developer-trends/", "published_at": "2024-07-26T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec5aea950", "title": "Rails Caching With Couchbase in Under 5 Minutes", "url": "https://bengreenberg.dev/blog/rails-caching-with-couchbase-in-under-5-minutes/", "published_at": "2024-06-24T00:00:00+00:00" }, { "id": "01a08739-fd7a-7353-b90e-1c0ec68902e8", "title": "Twilio Challenge: SmartyCall - AI Powered Competitive Trivia", "url": "https://bengreenberg.dev/blog/twilio-challenge-smartycall-ai-powered-competitive-trivia/", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565b1aa9f1", "title": "Add Vector Search to Your Astro Blog", "url": "https://bengreenberg.dev/blog/add-vector-search-to-your-astro-blog/", "published_at": "2024-05-24T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565b93a72b", "title": "Launching Your Astro Powered Blog on a Journey to Couchbase", "url": "https://bengreenberg.dev/blog/launching-your-astro-powered-blog-on-a-journey-to-couchbase/", "published_at": "2024-05-19T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565b9a0050", "title": "Decoding Polkadot", "url": "https://bengreenberg.dev/blog/decoding-polkadot/", "published_at": "2023-05-30T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565c50d302", "title": "Unlocking GitHub Codespaces for Workshops", "url": "https://bengreenberg.dev/blog/unlocking-github-codespaces-for-workshops/", "published_at": "2023-05-22T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565d44a600", "title": "The Importance of Blockchain Knowledge for Devs", "url": "https://bengreenberg.dev/blog/the-importance-of-blockchain-knowledge-for-devs/", "published_at": "2023-05-16T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565da678dd", "title": "Get Verified on Bluesky Social With Your GoDaddy Domain", "url": "https://bengreenberg.dev/blog/get-verified-on-bluesky-social-with-your-godaddy-domain/", "published_at": "2023-04-26T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565e4464c1", "title": "ChatGPT for Gmail: The Chrome Extension to Fine-Tune Your Emails", "url": "https://bengreenberg.dev/blog/chatgpt-for-gmail-the-chrome-extension-to-fine-tune-your-emails/", "published_at": "2023-04-13T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565f431973", "title": "Use GitHub Actions to Make Your GitHub Profile Dynamic", "url": "https://bengreenberg.dev/blog/use-github-actions-to-make-your-github-profile-dynamic/", "published_at": "2023-04-09T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565f7c4c2b", "title": "A ChatGPT GitHub Action for Reviewing Text for Potentially Discriminatory Language", "url": "https://bengreenberg.dev/blog/a-chatgpt-github-action-for-reviewing-text-for-potentially-discriminatory-language/", "published_at": "2023-04-04T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6565fe8dd7d", "title": "StackExchange Tutorial Themes: Using ChatGPT to Discover Relevant Topics", "url": "https://bengreenberg.dev/blog/stackexchange-tutorial-themes-using-chatgpt-to-discover-relevant-topics/", "published_at": "2023-03-31T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65660102ea9", "title": "Accelerating Substrate Blockchain Testing with GitHub Codespaces", "url": "https://bengreenberg.dev/blog/accelerating-substrate-blockchain-testing-with-github-codespaces/", "published_at": "2023-03-15T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65660ea022e", "title": "From High-Level to Systems Programming: A Practical Guide to Rust, Part 2", "url": "https://bengreenberg.dev/blog/from-high-level-to-systems-programming-a-practical-guide-to-rust-part-2/", "published_at": "2023-01-02T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6566192d63a", "title": "From High-Level to Systems Programming: A Practical Guide to Rust, Part 1", "url": "https://bengreenberg.dev/blog/from-high-level-to-systems-programming-a-practical-guide-to-rust-part-1/", "published_at": "2022-12-30T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65661e426f0", "title": "Measuring DevRel Success - Thinking Outside the Funnel", "url": "https://bengreenberg.dev/blog/measuring-devrel-success-thinking-outside-the-funnel/", "published_at": "2022-08-11T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65662849b0a", "title": "Build your own synthetic user testing", "url": "https://bengreenberg.dev/blog/build-your-own-synthetic-user-testing/", "published_at": "2022-07-05T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65662df01ff", "title": "Navigating NerdGraph with the New Relic Postman API collection", "url": "https://bengreenberg.dev/blog/navigating-nerdgraph-with-the-new-relic-postman-api-collection/", "published_at": "2022-06-22T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65663727e4a", "title": "Debugging Phoenix web applications with New Relic and CodeStream", "url": "https://bengreenberg.dev/blog/debugging-phoenix-web-applications-with-new-relic-and-codestream/", "published_at": "2022-02-23T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e6566408dfd7", "title": "My Mac Dev Tools", "url": "https://bengreenberg.dev/blog/my-mac-dev-tools/", "published_at": "2022-02-22T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e656643def7a", "title": "Lessons learned from maintaining a fork", "url": "https://bengreenberg.dev/blog/lessons-learned-from-maintaining-a-fork/", "published_at": "2022-02-14T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65664a1b542", "title": "Monitor Rails 7 applications with New Relic One", "url": "https://bengreenberg.dev/blog/monitor-rails-7-applications-with-new-relic-one/", "published_at": "2022-01-21T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65664f1cfff", "title": "Are You a Second Career Dev? Your Pivot Skills Are Your Superpowers", "url": "https://bengreenberg.dev/blog/are-you-a-second-career-dev-your-pivot-skills-are-your-superpowers/", "published_at": "2022-01-05T00:00:00+00:00" }, { "id": "01a08739-fd7e-7184-ad5f-e65665ae155b", "title": "Thriving as a Remote-First Team", "url": "https://bengreenberg.dev/blog/thriving-as-a-remote-first-team/", "published_at": "2021-10-13T00:00:00+00:00" } ] posts Claim your blog
Back to bengreenberg.dev
Blog · corpus.blog/blogs/bengreenberg.dev/posts

bengreenberg.dev

bengreenberg.dev

2026

2025

2024

2023

2022

2021