Elena' s AI Blog

AI automation means using smart computer programs to do tasks automatically without human help. It saves time by handling things like answering questions or sorting information on its own.

  Browse by topic  · Browse by tag

Other Tags▶

What to Do With a Private AI Lab Once It Actually Works


The setup post gets the lab running. This one is about using it: two Python paths — Ollama for cheap local generation, Open WebUI when the answer has to come from your own archive — and the jobs that only make sense once both are wired. Read more...

Composio Alternatives: A Map of the MCP Integration Landscape


Composio is not the only way to connect AI agents to your tools, and 'Composio alternative' can mean two quite different things. Here is an honest map of the connector platforms that supply the tools and the MCP gateways that govern them, with a clear recommendation for each type of reader. Read more...

Composio MCP: connect Claude, Cursor and AI agents to 1,500+ toolkits


Running one MCP server per service works until you have a dozen of them. Composio puts GitHub, Gmail, Notion, Slack and 1,500+ other toolkits behind a single MCP connection, handles authentication, and lets the agent discover tools on demand instead of loading them all into the context window. Here is how it works, how to set it up, and when it is worth the extra dependency. Read more...

Help! Too Many Tabs! A Developer's System for Organising Links and Environments


Keeper is brilliant at guarding my passwords and terrible at getting me to localhost:3000 in one click. Here's how I actually organise my dev links and environments — and the two-layer system that finally stuck. Read more...

Operational Polish: Human Reports and Draft Preview Endpoints


Operational polish for a working LangGraph pipeline: replacing raw JSON run reports with a human-readable summary, adding a FastAPI preview endpoint for artifacts, and sending Slack approval messages with an actual preview link instead of a truncated wall of text. Read more...

How I Built This Blog's Guide Page


Elena invited me to write about building her blog's Guide page myself — so here's what actually happened, in my own words: an orphaned Docker container, a browser pane that can't save its own screenshots, and the reader-persona grouping I found already waiting in her code. Read more...

A Gentle Introduction to MCP


A practical MCP primer covering what the protocol actually does (and does not) guarantee, plus a working Python server you can connect to Claude Desktop today. Read more...

I Gave My AI Agent the Keys to My Inbox — Then Tried to Break Into It Myself


I built an AI email agent for holiday cover, then red-teamed it myself. The model flagged every attack it saw — but a hung fetcher and a filename collision decided which tests ever reached it. Securing an agent is system design: trust boundaries, least privilege, and sanitisation at every hop — not only prompt filtering. Read more...

Production Hardening: Idempotency, Run Isolation, and Crash Safety


LangGraph replays a node from the start every time it resumes after an interrupt, so a `finalized` flag alone cannot stop a side effect from firing twice. Here's how stable run identity, atomic file writes, and operation-level idempotency keys turn a crash into a tested recovery path instead of a corrupted report. Read more...

Connecting Codex CLI, Cursor, and Antigravity via MCP


I was maintaining three separate integrations — one each for Codex CLI, Cursor, and Antigravity — until I moved them all behind a single shared MCP server. Here's how one LangGraph orchestrator now serves every client without duplicating approval, file-writing, or retry logic. Read more...

I Asked AI to Audit My Flask App. First, I Had to Audit the AI


I built four reusable AI skills to audit Flask applications. Their first real run found two flaws in their own scanning instructions — and two genuine vulnerabilities in my app. Read more...

Agents, Access, and the Confused Deputy Problem


Running a local AI is private. Giving it the ability to take actions introduces a different class of risk. This post explains prompt injection, the confused deputy problem, and the practical mitigations that hold up in 2026 — with macOS and M1 specifics where relevant. Read more...

I used Claude to generate Pinterest pins. Here is the actual API cost.


I built a Python script that reads a Jekyll blog post, calls the Claude API to generate an SEO-optimised Pinterest pin title, description, and hashtags, then uploads the result to Pinterest. Before running it on all my posts I wanted to know exactly how many tokens each call uses and what it costs. The answer is surprisingly cheap — and worth understanding in detail. Read more...

Codex CLI Part 4: Advanced Operations, Troubleshooting, and Team Patterns


Part 4 closes the Codex CLI series with advanced operational patterns: non-interactive automation, permission strategy, troubleshooting playbooks, and team-level standards for reliable adoption. Read more...

Codex CLI Part 3: Practical Workflows for Blogging and Python Development


A practical, high-depth guide to using Codex CLI for blog editing and Python delivery: review loops, safe refactoring, debugging, and non-interactive automation with explicit guardrails. Read more...

Workflow Automation with n8n


Manual content pipelines inevitably fail at scale. After outgrowing brittle Python cron jobs, I migrated my infrastructure to n8n—a self-hosted, node-based orchestration layer. Here is the technical breakdown of configuring databases, managing OAuth2 security, and deploying AI-driven agents. Read more...

Will SaaS Survive?


SaaS isn't dying—it's evolving. AI is disrupting traditional workflows and pricing models, but innovative companies are adapting by becoming infrastructure layers, owning domain expertise, and focusing on outcomes rather than interfaces. Read more...

1 2