Today I built a small tool called sign-ai-media . It adds C2PA provenance metadata to AI-generated images and videos. In simple terms, it signs a media file and says: this file was created or edited with AI, this was the tool, this was the model, and this is the source type. There is also a browser version now: https://blog.fka.dev/sign-ai-media/ . It works fully in the browser. You drop an image,…
Yesterday, I helped a friend install Antigravity, Google’s AI coding tool that everybody knows. This friend has zero programming background. I gave them a few tips, told them to explore and see what they could build. Today, they showed me a native iOS app they made. They even generated the app icons and graphics using Nano Banana. Let that sink in. A non-developer built a functional iOS app in…
Back in May, I wrote about the limitations of text-only AI interactions and my vision for on-demand UI generation . I explored how AI could dynamically generate the right interface components at the right time - forms for data collection, buttons for choices, tables for comparisons. The idea was simple but powerful: why force users to describe everything in text when AI could generate proper UIs…
You know that feeling when you’re about to make your private repo public and you realize half your commits say things like “fix stuff”, “asdfasdf”, or “WIP”? Yeah, I’ve been there too many times. That’s why I built git-rewrite-commits - a tool that uses AI to automatically fix your messy commit history. I just open sourced this project, and I’m really excited to share it with you. You can start…
Remember when Google announced the Agent2Agent (A2A) protocol back in April 2025? It was supposed to be the universal language for AI agents - a groundbreaking open standard that would enable seamless communication between agents across different platforms and vendors. Fast forward to September 2025, and A2A seems to have quietly faded into the background while the Model Context Protocol (MCP) has…
Note: This is an example blog post demonstrating how to use prompts.chat/developers#embed embed features for interactive AI-powered tutorials. The vibecoding workflow shown here illustrates how developers can iteratively build and improve code with AI assistance. In this tutorial, we’ll demonstrate the power of vibecoding by building a React hook from scratch. We’ll start with a simple idea and…
Have you ever wanted to share an AI prompt in your blog post, but found that code blocks just don’t capture the interactive nature of AI conversations? Enter prompts.chat/developers#embed - a brilliant tool that lets you embed live, interactive AI prompts directly into your web pages. What is prompts.chat/embed? prompts.chat/embed is a free tool that transforms static AI prompts into beautiful,…
As I’ve discussed in my previous articles, the Model Context Protocol (MCP) goes far beyond simple tool invocation. Its advanced capabilities enable sophisticated interactions between servers and LLM-driven clients, creating experiences that feel natural and responsive. Note: The code examples in this article are simplified for clarity and meant to illustrate concepts. Production implementations…
The Model Context Protocol (MCP) has been evolving rapidly since its introduction, with each iteration improving how AI agents communicate with external services. One of the most significant recent changes is the transition from Server-Sent Events (SSE) to Streamable HTTP as the preferred transport mechanism for remote MCP servers. This architectural shift, introduced in the MCP specification…
A few weeks ago, I wrote about AI-generated UI components as a solution to the limitations of text-only AI interactions. The core idea was simple: instead of forcing users to express complex needs through unstructured text, AI systems should generate appropriate interface components dynamically to collect structured input. Today, I’m excited to discuss how the Model Context Protocol (MCP) is…