- Home
- Technical Writing
Technical Writing
Practical notes on AI engineering, Adobe Experience Manager, and working with AI.
https://www.jackzhaojin.com/widgets/writing-filter/writing-filter.html
October 25, 2026
- Adobe AEM & EDS
- AI Engineering
- 12 min read
- 12:23 video
Migrating My Site to AEM Edge Delivery Services in Two Prompts
I migrated my site from GitHub Pages to AEM Edge Delivery Services with two goal prompts: 34 pages, my design system and every image, checked page by page.

eds migration edge delivery services experience workspace da.live claude code goal prompt subagents agents parallel worktrees stardust github pages lighthouse design system cloudflare
October 10, 2026
- Adobe AEM & EDS
- 16 min read
- 14:43 video
adaptTo() 2026 Recap: 25 AEM Conference Talks in 15 Minutes
All 25 full talks from adaptTo() 2026, the AEM developer conference in Berlin, in conference order: what each one is, why to watch it, and my take.

adaptto berlin conference recap talks speakers mcp agents edge delivery services experience workspace da.live cache invalidation aem forms asset hub content migration
October 2, 2026
- Adobe AEM & EDS
- 8 min read
- 12:31 video
AEM Edge Functions on a Laptop: Google Sign-in, Members-Only Pages and API Data at the Edge
Google sign-in, a members-only section and a greeting bar with the user's own data from an API, added to an Edge Delivery site without touching the site code. The six parts of my video, written up with the code at a pinned commit and a token lab that runs the real signature checks in your browser.

edge functions fastly viceroy caddy google identity services jwt jwks cdn personalization
Sign-in, Members-Only
August 15, 2026
- AI Engineering
- 14 min read
- 11:09 video
Company of Zero: How AnimaMesh Runs a Company's Back Office on Cloudflare Workers
AnimaMesh, an open source engine on Cloudflare Workers: one public engine, a private markdown brain per company, agents that take sick days, a brain that files its own GitHub issues past a leak guard, and AI that reaches out to the owner instead of waiting for a prompt.
Given as a talk at AI Tinkerers Columbus, August 3, 2026
2nd place, AI Tinkerers global Top AI Demos

talk ai tinkerers columbus 2nd place, ai tinkerers global top ai demos animamesh company of zero ai agents multi-agent cloudflare workers durable objects open knowledge format okf second brain microsoft graph sharepoint discord github issues ai tinkerers columbus agent orchestration
August 9, 2026
- Adobe AEM & EDS
- AI Engineering
- 9 min read
- 14:51 video
Adobe Stardust Explained: A Design Skill Built on impeccable, Tested on Real EDS Blocks
What Adobe Stardust is: a skill in adobe/skills built on impeccable, not a product. Its four steps, the human gate before EDS code, the one-shot EDS build, and three real blocks redesigned against a Google Stitch baseline.

adobe stardust adobe/skills impeccable edge delivery services da.live experience workspace google stitch stardust:deploy state.json human in the loop claude fable 5 eds block library code-only reskin
July 21, 2026
- AI Engineering
- 9 min read
- 14:15 video
Four Frontier Models, One 1,032-Line Prompt: What Each Built, and the Merge I Kept
GPT 5.6, Kimi K3, Gemini 3.5 Flash and Claude Fable 5 each built my portfolio from the same 1,032-line prompt. What each got right and wrong in my notebook, my ranking, and what the merge really kept, line by line.

gpt 5.6 codex kimi k3 moonshot gemini 3.5 flash claude fable 5 google stitch model comparison frontier models prompt engineering slicc
June 28, 2026
- AI Engineering
- 27 min read
- 14:40 video
Patterns of Work: Five Layers of Working with AI
Five layers of working with AI, from one person running loops around the clock to humans and agents managing work together, plus the spine and foundation that decide whether any of it holds. Each layer covers what changes and where it gets hard, with an explorer to walk the model.

patterns of work future of work knowledge work ai as an individual contributor agent memory agent mesh a2a acp loop engineering harness evals agent governance observability shared context continuous-agent adaptto() 2026
May 31, 2026
- AI Engineering
- 8 min read
Agent Memory for a 24/7 Coding Agent: Five Memory Types, Five Hooks and Retrieval in Plain English
How a 24/7 coding agent gets a memory: mem0 behind the executive only, git as the source of truth, five memory types, five hooks in the loop, retrieval in plain English, and the bug that failed every write while logging ok.

agent memory mem0 second brain memory taxonomy episodic memory semantic memory procedural memory retrieval natural-language search lifecycle hooks claude agent sdk continuous agent dotenv pm2
May 24, 2026
- Adobe AEM & EDS
- AI Engineering
- 8 min read
- 14:23 video
Theming a Brand-New EDS Site with Google Stitch and MCP: One Prompt, Three Steps, Two Lessons
Theme a brand-new Edge Delivery site in three steps: define the theme, design it in Google Stitch, and wire it back through the Stitch MCP server, all in one long prompt. The real tokens that changed, the call-to-action miss, the fix, and why theming and blocks belong in separate passes.

google stitch stitch mcp model context protocol edge delivery services eds theming styles.css css custom properties aem-boilerplate claude opus 4.7 mlflow playwright cli teaser block inter source sans 3
May 17, 2026
- Adobe AEM & EDS
- AI Engineering
- 10 min read
- 14:10 video
Adobe's EDS Skills on a Real Build: create-site and Content-Driven Development, Traced in MLflow
Adobe's create-site and content-driven-development skills, run end to end on a brand-new Edge Delivery site with MLflow tracing every session. What each skill does, what it built, a hook that shows which skill fired, and the theme skill that's still missing.

adobe agent skills adobe/skills create-site content-driven-development cdd edge delivery services da aem code sync claude code claude opus 4.7 mlflow stop hook teaser block universal editor
April 12, 2026
- AI Engineering
- 8 min read
- 9:49 video
Two AI Skills for Team Enablement: Log the Prompts You Typed, File the AI Docs Behind Them
Keep the prompts people actually typed, turn one-off builds into skills, and file the AI docs behind them under one taxonomy. Two open source skills, a Conversation Logger and an AI Knowledge Harvester, and a sorter to try the filing rules.

agent skills claude code github copilot codex conversation logger ai knowledge harvester prompt packet skill creator ai-builder-kit npx skills ciam keycloak phase two
April 5, 2026
- AI Engineering
- 15 min read
- 19:46 video
A 24/7 Coding Agent at v2.1: An Executive Loop, Swappable Workers and When to Ask a Human
What it takes to keep a harness going around the clock: an executive loop on PM2, swappable workers on Claude, Codex and Kimi K2.5, and a failure path that retries, diagnoses, then asks a human. Release by release, with the code, the walkthrough and the live Q&A.
Given as a talk at AI Tinkerers Columbus, April 6, 2026
Featured in AI Tinkerers' global Community Spotlights

talk ai tinkerers columbus featured in ai tinkerers' global community spotlights continuous agent 24/7 coding agent autonomous coding agent claude agent sdk openai codex kimi k2.5 pm2 harness openclaw ai tinkerers columbus notion discord supabase playwright spec-driven development needs-you.md
March 23, 2026
- Adobe AEM & EDS
- AI Engineering
- 10 min read
- 9:06 video
Agentic Admin API Configuration for Edge Delivery Services: GET Before POST, With a Hard Stop
Move Edge Delivery Admin API config out of Postman and into an agent skill that plans, GETs before it POSTs, and hits a Claude Code hook that stops its writes for approval. The demo, the hook's code, and a lab that shows exactly what it catches and what it misses.

aem admin api admin.hlx.page helix 5 edge delivery services robots.txt claude code pretooluse hook bypass permissions agent skills plugin marketplace get/set/get execution.md tools.aem.live postman
February 5, 2026
- AI Engineering
- 6 min read
- 9:44 video
Making AI-Driven Development Modules Reusable: Four Patterns, One Stack
Ad hoc prompting, specs, harnesses and a 24/7 agent stack on each other, and each layer should be reused by the one above, not rebuilt. The board, a counter you can click for what rebuilding costs, and the refactor I did in April.

spec-driven development ai harness continuous agent prompt packet prompt logging notion claude code software reuse agentic development patterns
January 29, 2026
- AI Engineering
- 8 min read
- 1:33 video
Playwright Stakeholder Demos: Captions Timed to Each Click and a Voice the Video Waits For
Have AI demo its own work back to you: Playwright scripts that click through the real app, a caption overlay injected right before each action, and a merge step that holds the video until each voice clip finishes. The code, and a lab for the freeze-frame rule.

playwright playwright video recording demo automation ai harness elevenlabs ffmpeg freeze frame stakeholder demo claude code react vite
January 5, 2026
- AI Engineering
- 11 min read
- 9:42 video
From Prompts to Harness: How Deterministic Code and Agents Work Together
Let deterministic code set the order and hold the numbers, and let agents make the judgment calls. A Next.js evaluator that blends a scan with an agent's score 70/30, and a harness loop where a defect becomes a subtask, with the real scoring code and a model of the loop to play with.

agent harness claude agent sdk claude code sub-agents playwright mcp mcp next.js shadcn server-sent events axe-core cheerio unpdf pixelmatch lighthouse docker oracle cloud vm git branches git worktree spec-driven development bmad spec kit ralph loop da live deterministic and agentic
October 12, 2025
- AI Engineering
- Adobe AEM & EDS
- 10 min read
- 7:14 video
One da.live MCP Server Across Claude, Gemini, Azure OpenAI and n8n
Part two: the same da.live MCP server on Claude, Gemini 2.5 Pro and Azure OpenAI, deployed to Azure Functions with OIDC and driven from n8n. Why each model client needs its own tool format, why serverless wants Streamable HTTP, and the two integration patterns to choose between.

model context protocol streamable http sse da.live edge delivery services azure functions github actions oidc azure ai foundry azure openai gpt-5 mini grok gemini 2.5 pro claude n8n mcp inspector host.docker.internal
October 5, 2025
- Adobe AEM & EDS
- AI Engineering
- 10 min read
- 9:57 video
Building an MCP Server for EDS da.live: Scripted AI Flow vs Agent Tools
Two ways to let a model edit a da.live page: a scripted AI flow, and an MCP server with get and save tools the model calls itself. Same quality, twice the time and tokens, far more flexible. The code for both, and a side-by-side run of both versions.

model context protocol mcp server da.live document authoring edge delivery services admin.da.live source api azure functions claude desktop claude sonnet tool use agent loop
September 1, 2025
- Adobe AEM & EDS
- 9 min read
- 9:56 video
AEM Caching in Production: How Cache-Control Moves Through Every Layer
How Cache-Control moves from AEM publish through the dispatcher, Adobe's Fastly CDN and a client CDN to the browser, with a header relay you can switch layer by layer, a stale-while-revalidate timeline, and three tips for documenting and testing each layer.

aem caching cache-control surrogate-control stale-while-revalidate stale-if-error rfc 5861 aem dispatcher .any files enablettl fastly adobe cdn bring your own cdn x-aem-edge-key akamai azure front door redis persisted queries aem edge functions
July 13, 2025
- Adobe AEM & EDS
- 3 min read
Three Ways to Author on AEM Edge Delivery Services: Documents, Universal Editor and da.live
Documents, the Universal Editor and da.live on one diagram: the three Edge Delivery authoring options differ only in the editor and where content is stored. From preview and publish on, the path to the edge is shared.

aem edge delivery services eds document authoring da.live universal editor google docs microsoft word sharepoint google drive aem.live document-based authoring
July 12, 2025
- Adobe AEM & EDS
- 7 min read
- 9:13 video
AEM Headless and Omnichannel: Three Architecture Diagrams and Twelve Considerations
Three fictional but realistic ways to get AEM content into email, mobile apps and sites: event topics, compile-time builds with Target, and one shared publish tier. Six considerations compared across all three diagrams, six more that never got a box, and the boards redrawn so they read on a phone.

aem headless omnichannel content fragments experience fragments graphql persisted queries adobe target static site generation event-driven push vs pull csr ssr ssg markdown aem as a cloud service
July 11, 2025
- AI Engineering
- 7 min read
A 100% AI-Coded Next.js Agent, Part 3: Scaling AI Coding into a Delivery Method
How to make AI coding repeatable for a delivery team: the PRD, the technical blueprint and the MDC task file, the AGENTS.md rules that bind them, what stays the same as traditional delivery and what changes.

prd product requirements document technical design document mdc agents.md story slicing agile sprints consulting delivery technical leadership ai orchestrator worker agents
July 7, 2025
- AI Engineering
- 8 min read
A 100% AI-Coded Next.js Agent, Part 2: CI/CD, Cloud Identities and the Architecture
How an app written entirely by AI gets from a commit to the cloud: two GitHub Actions pipelines picked by branch name, five actors that each get into Azure their own way, a public copy on CloudFront and EC2, a layered Next.js architecture, and prompts kept as versioned JSON.

github actions github container registry docker azure app service openid connect defaultazurecredential @azure/identity service principal managed identity amazon cloudfront amazon ec2 aws systems manager parameter store next.js app router prompt templates handlebars
July 6, 2025
- AI Engineering
- 9 min read
- 9:30 video
A 100% AI-Coded Next.js Agent, Part 1: The Four Practices Behind Release 1.0
What it took to ship a Next.js AI agent written entirely by AI: what release 1.0 does, the four practices behind it (planning files the AI works from, early CI/CD with real cloud access, a person in the product manager seat, comparing models), where each fell short, and a lab that runs the real fix for a partial failure.

next.js vibe coding ai coding agents claude sonnet 4 openai codex github copilot gpt-4o mini azure ai foundry prd mdc cypress shadow-pivot-ai-agentv2
June 12, 2025
- AI Engineering
- 11 min read
Azure RBAC and CI/CD for AI Coding Agents: Five Actors, Four Auth Patterns, Almost No Passwords
How I gave Copilot, Codex, GitHub Actions and an Azure Web App access to Azure Storage and AI Foundry with az login, managed identity, OIDC and one timed secret. Includes a lab that shows which credential DefaultAzureCredential picks.

azure rbac defaultazurecredential az login managed identity service principal openid connect oidc federated credential github actions openai codex github copilot azure ai foundry azure blob storage azure web app azure_token_credentials next.js
June 8, 2025
- Adobe AEM & EDS
- 6 min read
The Edge CMS Shift: How Adobe EDS Stacks Up Against the Modern Web
Edge Delivery Services next to Cloudflare Pages, Netlify, Next.js, Hugo and Jekyll on five things enterprises need, plus how Adobe's CMS thinking got from CQ5 to EDS and the gaps EDS still had in June 2025.

edge delivery services aem cq5 day software aem as a cloud service static site generation cloudflare pages netlify sanity next.js hugo jekyll google docs word universal editor azure edge functions da.live experience workspace
June 4, 2025
- Adobe AEM & EDS
- 9 min read
Making Sense of 7 AEM Capabilities: Tradeoffs and Where Each One Fits
Seven ways to build on AEM side by side, from Classic AEM 6.5 to docs-based Edge Delivery: a functional and technical matrix with a compare-any-two tool, when Universal Editor beats the Sites Editor, and where each option fits.

aem 6.5 aem as a cloud service core components spa editor spa sdk content fragments universal editor sites editor content fragment editor edge delivery services document-based authoring sidekick model.json infinity.json graphql persisted queries experience fragments adobe target da.live experience workspace
May 28, 2025
- Adobe AEM & EDS
- 5 min read
Why AEM Headless Makes Sense When Frontend Teams Lead
When a client's Next.js or Vue frontend came first, I think AEM headless with Universal Editor on top beats forcing classic Sites authoring. How I'd start, why persisted queries matter for caching, and when I wouldn't recommend it.

aem headless content fragments graphql persisted queries universal editor next.js react server components vue adobe target adobe experience platform aem as a cloud service translation dispatcher cdn caching
April 13, 2025
- AI Engineering
- 7 min read
A STAR Story Generator on Azure: Prompting GPT-4o-mini for JSON and Parsing What Comes Back
How a STAR story generator on Azure Functions prompts GPT-4o-mini for JSON, the parser that copes when the reply isn't clean JSON (with a lab you can break), the one reply that slips past validation, and how the five AI tools I vibe coded it with ranked in April 2025.

vibe coding star method azure functions azure openai azure ai foundry gpt-4o-mini claude code claude 3.7 github copilot chatgpt-4o perplexity defaultazurecredential json parsing
Written up properly, under the original date.
Most of these started on LinkedIn between April 2025 and September 2026. I've rewritten each one here in full, with the diagrams and the code, and noted what changed since. Where there is a video, it is on YouTube and embedded in the article.