MCP's Auth Problem

I wanted MCP auth to feel invisible. The dream was simple. User opens the app, starts chatting with the LLM. At some point they ask for something that needs an external tool. “What’s on my calendar this week?” The LLM realizes it needs Google Calendar access, prompts the user for permission right there, they approve, and the tool runs. Contextual. Just-in-time. No setup screens. This is how permissions should work. Ask for what you need, when you need it, and not a moment before. ...

December 2, 2025 · 3 min · Rida Al Barazi

YOLO Mode Only Works When YOLO Can't Hurt You

I’ve been calling it the bingo machine. You sit there watching the AI coding agent work. It stops. Asks permission. You hit allow. It stops again. Allow. Allow. Allow. You’re just pulling the lever waiting for the dopamine hit: the moment it finally says “done” and you can ship. Then you actually test it. And it’s not done. Not even close. Twelve months in I spent the last year fully immersed in AI coding tools. Not casually—daily. I rotate through all of them, keeping only a monthly subscription at a time so I can switch to whatever’s state of the art. Cursor. Claude Code. Codex. Back to Claude. ...

December 1, 2025 · 9 min · Rida Al Barazi

Building Review Apps with Kamal and GitHub Actions

Building Review Apps with Kamal and GitHub Actions When I was using Heroku at work, one feature stood out as a game-changer for our development workflow: Review Apps. They made pull request testing seamless—isolated environments spun up automatically, inherited configuration from staging, and even provisioned separate add-ons like PostgreSQL and Redis. It transformed how we collaborated and tested changes. Fast forward to today. I’m running my Agentify app on a Hetzner server using Kamal for deployment. Everything is containerized with Docker—from local development with devcontainers and ngrok for tunneling, to production deployment on my Hetzner box. As I dove deeper into agentic coding, I found myself wishing for that same pull request workflow. I wanted to test changes in isolation, share environments with others, and validate features before merging. ...

August 5, 2025 · 6 min · Rida Al Barazi

How to Implement Model Context Protocol (MCP) in Rails: 3 Approaches

When I started building Agentify, I took the straightforward path: hardcode the tool integrations directly into my Rails application. Need weather data? Write a method that calls the weather API. Need to search knowledge bases? Build it into the agent logic. It worked, but it wasn’t sustainable. Then the Model Context Protocol (MCP) standard emerged, promising a way to standardize tool interactions between AI agents and external services. Instead of building every integration myself, I could tap into a growing ecosystem of MCP servers. The question was: how do you actually implement this in a real Rails application? ...

May 29, 2025 · 8 min · Rida Al Barazi

What I Learned This Week: 12-Factor Agents, Prompt Security, and Voice Interfaces

What I Learned This Week 1. 12-Factor Agents This week I came across the 12-Factor Agents framework by HumanLayer, which adapts the well-known 12-Factor App principles for building robust and maintainable AI agents. Notable principle: Own Your Context Window Rather than sending the full conversation history with each agent interaction, this principle encourages summarizing or explicitly controlling the context that gets passed along. It’s a smart approach for performance and clarity — especially in longer or multi-agent flows. ...

May 9, 2025 · 2 min · Rida Al Barazi

How ChatGPT Helped Me Find the Right Running Shoes

It started with a little knee pain. The kind you tell yourself will go away if you just stretch more, ice it, or ignore it long enough. A couple of years ago, I got into the gym habit — running 4–5 times a week at OrangeTheory Fitness, usually 25–30 minutes on a treadmill as part of high-intensity interval classes. Within a few weeks, I started feeling it in my knees. Naturally, I blamed my shoes. ...

April 26, 2025 · 5 min · Rida Al Barazi

Returning to the Blank Page

I used to write to learn, to reflect. That’s how I entered the world of Ruby and Ruby on Rails. In my early days, blogging was both my thinking tool and my amplifier. I’d write about what I was learning—Rails conventions, design patterns, developer tools—and through that process, I’d find clarity. I also built connections. People read, commented, shared, and sometimes offered opportunities. That’s how I launched my career. Now I find myself coming back to writing—not because I’m starting something new, but because I’ve been building quietly, and I want to bring a little structure and reflection back into the process. ...

April 20, 2025 · 3 min · Rida Al Barazi