MCP Embedded Resources for Slack: Work Objects, Block Kit, and Silent Failures

Slack’s API returned 200 OK but silently dropped my Work Objects. Two gotchas cost me hours: wrong metadata structure and a missing alt_text field. Here’s the debugging story and the channel-specific embedded resources pattern that emerged.

December 12, 2025 · 7 min · Rida Al Barazi

Kamal + 1Password + GitHub Actions: Production Deployment Pipeline

It was 11pm on a Friday. Deploy failed. Missing environment variable. After twenty minutes of debugging, I found it: I’d added a secret to CI but forgot to add it to the server. Two-minute fix, twenty-minute hunt. I’d been burned enough times to finally fix this properly. The Core Insight One source of truth for production secrets. 1Password holds the secrets. Kamal fetches them. GitHub Actions triggers the deploy. No scattered env files on servers, no secrets in CI config. ...

December 10, 2025 · 6 min · Rida Al Barazi

Fixing DevContainer Build Failures on Debian Trixie

While updating my Rails devcontainer to use the latest Ruby 3.4 image, I hit two cryptic build failures on Debian Trixie. If you’re running into similar DevContainer build errors, these fixes will save you some debugging time. The Errors Error 1: APT Hash Sum Mismatch E: Failed to fetch .../libdav1d7_1.5.1-1_arm64.deb Hash Sum mismatch E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? Error 2: Moby Package Not Found (!) The 'moby' option is not supported on Debian 'trixie' because 'moby-cli' and related system packages have been removed from that distribution. The Fixes Fix 1: Reorder APT Commands in Dockerfile Before (broken): ...

December 8, 2025 · 2 min · Rida Al Barazi

The Agent Ran My Manual Tests

Manual tests aren’t about who executes them. Using Playwright MCP with Claude Code, I let my coding agent run verification scripts and catch its own regressions during code review.

December 8, 2025 · 6 min · Rida Al Barazi

Rendering MCP Tool Results as ChatKit Widgets in Rails

OpenAI’s ChatKit has a Python SDK. I’m using Rails. Here’s how I bridged MCP tool results to ChatKit widgets, with architecture decisions, extraction logic, and lessons from letting AI agents write most of the code.

December 7, 2025 · 9 min · Rida Al Barazi

Setting Agents Up to Succeed

Some of my AI coding sessions produce great work. Others produce garbage. The difference isn’t the model. It’s not the tool. It’s what I give the agent before it starts. You might have heard this called context engineering. It’s an umbrella term with many interpretations. Here’s what it means to me. How my prompts evolved When I started using coding agents with Cursor, I’d prompt like this: “Implement the OpenAI Responses API.” ...

December 4, 2025 · 5 min · Rida Al Barazi

What Makes an App AI-Native?

The difference between AI-assisted and AI-native isn’t about features. It’s about how control flows between user and agent through three phases: conversation, drafting, and polish.

December 3, 2025 · 6 min · Rida Al Barazi

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