·

The work as we know it is gone: I rebuilt iiu.dk in a weekend with an agent

Hero diagram showing the Human-in-the-loop pattern with an AI coding agent driving a browser and workspace.

TL;DR. The work as we know it is gone. Over a weekend in May 2026 I rebuilt this blog with an AI coding agent driving a real browser. New theme, new About page, 27 categories cleaned up, schema for LLMs, accessibility audited, performance fixed, a quiet cookie bar. I steered, the agent executed. Roughly $50 of compute replaced 50 hours of evening-and-weekend work. Same loop runs your Monday morning, not just a blog rebuild. This post is what shipped, where I had to take the wheel, what broke, what it cost, and which tools (most of them open source) actually did the work.

The work as we know has changed

Knowledge work is not gone. The shape of it has changed under our feet. The unit of work used to be the task: write the CSS, click through the admin, open the validator, paste the URL, copy the result back, file the bug. The unit of work is now the intent: “make the consent bar quiet but keep it GDPR-compliant, and check it does not break keyboard focus”. The agent decomposes that into 40 tool calls. I read the result and decide if it is right.

It is a different job, not a productivity bump. The skill that matters now is knowing what good looks like and saying so out loud, fast, in plain language. Everything below is what that looks like on a real site over a real weekend.

Scott Hanselman put it well a few days ago on LinkedIn, filming himself trying the GitHub Copilot App on his real workflow: branching with worktrees so multiple agents work the same repo in parallel, jumping between issues without losing context, code review as the bottleneck instead of typing. He is a VP at Microsoft/GitHub and he is not demoing toy projects. He is rebuilding how he works. The point that lands for me: the IDE is not the center of the day anymore. The orchestration is.

That matches what I felt this weekend. The bottleneck moved. Writing CSS or JavaScript is not the slow part. Deciding what should exist, what should not, and what good looks like, that is the slow part. Designers, marketers, analysts, ops, support, lawyers. Same shift, different toolbox. The decisions stay yours.

Where I had to steer

The agent doing the work is not the part worth writing about. What matters is the moments where I had to stop it. A few examples, with the actual prompts I typed:

  • It added a twitter:creator meta tag by default. My correction: “no twitter, I don’t use it anymore, strip it everywhere.” Gone in one round.
  • It picked four “default” topics for the homepage filter chips, including Dynamics 365. My nudge: “move Dynamics 365 under More, that is not what people land here for. Keep AI, Copilot, Speaking, WordPress visible.”
  • It drafted a “Book me via LinkedIn” CTA pointing at my profile. My ask: “I want a deeplink that opens the LinkedIn message composer directly, not the profile page. Use the DM deeplink format.”

Each of those is a five-second decision for me and 30 minutes of work for the agent. That is the trade. The agent does not get to make brand calls or product calls. I do. Once I make them, I don’t have to do the implementation.

This is the Human-in-the-loop pattern I keep talking about in conference rooms. It is the topic of my Fælles AI Implementering 2026 talk in September. On this blog I am no longer theorizing about it. I am living it.

What I had to review

Two real misses from this session, plus the boundaries I kept it inside.

What it got wrong. It suggested a CSS utility class that did not exist in the Nocturne theme and confidently styled a button with it. Caught by visual review, not by validation. It also proposed deleting the “News” category outright, which would have broken 12 permalinks. I kept the parent slug and emptied the category instead.

What it was not allowed to do unsupervised. Publish a post without me reading the diff. Edit the production database without a backup. Send email or LinkedIn messages on my behalf. Run any destructive REST call (DELETE, taxonomy merges, user changes) without an explicit confirm step. Same agent, same session, different blast radius.

The governance pattern is the same one a CISO already approves for a junior consultant: scoped credentials, audit log, human review of anything that touches production, no auto-send. The agent inherits your access, not new privileges.

The cost

The AI coding agent session, back-of-envelope:

  • Token usage: roughly 4 to 6 million tokens across input and output. The session ran over multiple days with a lot of browser screenshots and tool calls eating context.
  • Compute cost at frontier-model rates: somewhere between $40 and $80. Less than dinner for two in central Copenhagen.
  • My time spent: maybe 10 hours over two weekends, mostly steering and reviewing.
  • Equivalent solo developer time at consulting rates: 40 to 60 hours conservatively, billing DKK 60,000 to DKK 90,000 if I had hired someone to do the same scope.

Net the math: $50 of compute plus 10 hours of judgment work delivered the same outcome as 40 to 60 hours of solo execution. The judgment hours did not go away. The execution hours did. That is $1 of compute per hour of execution bought back.

What shipped

A short changelog, because the proof is in the artifacts:

  • New block theme (Nocturne), built from scratch in WordPress.com, with a pink triadic palette and unified header.
  • About page with a circular headshot hero and a “DM me on LinkedIn” deeplink that skips my profile and opens the message composer.
  • Homepage filter chips reorganized: 4 visible topics, all 21 active categories tucked under “More”.
  • 27 categories audited, 1 duplicate deleted, 5 orphan tags removed, a stray “News” post properly recategorized.
  • TechArticle, FAQPage, and Person schema on every post, so LLM crawlers can parse the site without guessing.
  • BLUF / TL;DR styling that tells humans and machines what the post is about in the first 50 words.
  • Blog index with featured-image thumbnails left of text, hover zoom, focus rings, mobile stack.
  • A consent-revoke bar that no longer screams “abandoned 2018 blog” (ghost pill, opacity 0.45, full opacity on hover).
  • Accessibility verified with axe-core and Pa11y: visible focus rings, ARIA labels on icon-only links, alt text on every image, WCAG AA contrast.
  • Performance verified with Lighthouse: Jetpack Boost on, critical CSS generated, images lazy-loaded with explicit width/height, no layout shift.
  • LLM discoverability: Known Agents installed, schema validated via Schema.org and Rich Results Test.

That is the kind of scope I would have quoted at 40 to 60 focused hours if a client had asked me to do it.

Before and after

Same site, eleven months apart. The “before” was captured by urlscan.io on 1 June 2025. The “after” is today.

iiu.dk homepage in June 2025, before the 2026 rebuild.
Before, June 2025
iiu.dk homepage in May 2026, after the rebuild.
After, May 2026

Which agent, and why this is not a coder story

For this site I used Clawpilot, an internal Microsoft AI desktop agent with browser control built in. I steer it in plain English, it drives Microsoft Edge, reads and writes files in my workspace, and calls the WordPress REST API directly when clicking would be slower.

Scott Hanselman uses the GitHub Copilot App in the post above, currently in technical preview. It runs on your phone instead of a desktop, but the shape is the same. It kicks off coding agents against your repos and lets you review and merge from anywhere. The brand of the agent matters less than people think. What matters is giving it a real browser or a real repo, real file-system access, and a human in the loop who knows when to say “no, not that”.

This stops being a coder story the moment you point the same agent at your work data instead of a repo. Hook one of these up to the Microsoft 365 Copilot Work IQ MCP server and the agent reads your Outlook, Teams, OneDrive, SharePoint, and calendar with your identity, then acts on it.

Microsoft already shipped a soft-start version of this in March 2026 with Copilot Cowork. Same pattern, lower blast radius. You describe an outcome, Cowork turns it into a plan grounded in your Microsoft 365 signals through Work IQ, runs it in the background, and checks in at clear approval points before anything is applied. The four launch scenarios Microsoft showed (calendar triage, customer meeting prep, deep company research, product launch plan) are knowledge work, not code. Cowork is the on-ramp most of your organization already has a license for. The Work IQ MCP route is what it looks like when you wire your own agent to the same signals and want the steering wheel in your hands.

A concrete one for a CIO: monthly business review on a key account. The agent reads the last 90 days of email with the customer, pulls the open opportunities and stalled deals from CRM, drafts the MBR document with the right charts, files it in the account SharePoint folder, and schedules the review meeting with the right attendees. You read the draft, edit two sentences, click send. Same loop, same human-in-the-loop pattern, no code in sight.

Governance side. Work IQ runs as you, with your existing Microsoft 365 permissions. The agent inherits your access, not new privileges. The audit log is the same one your CISO already reads. That is why this transfers from a personal blog to enterprise work without a CISO escalation.

Tools and skills used

I did not pick this stack. The agent suggested every one of these tools (axe-core, Pa11y, Lighthouse, vnu, SVGO) when I asked it to check accessibility and validate the build. I just had to say yes. The agent knows the open-source toolbox better than I do because it reads the docs faster than I can. My job was to recognize a good suggestion when I saw one. Most of it is open source, and that matters, because anyone can replicate this stack on their own site without paying a cent beyond model compute.

For developers: the full toolbox
  • Playwright (Microsoft, Apache-2.0). Drove Microsoft Edge through the WordPress block editor, Code Snippets plugin, Site Editor, and Rank Math UI. The single most important tool in the stack.
  • WordPress (GPL-2.0). The platform itself, plus the open REST API at /wp-json/wp/v2/ for direct reads and writes against posts, pages, templates, media, categories, and tags. Faster and less error-prone than clicking through the admin.
  • axe-core (Deque, MPL-2.0). Accessibility rules engine. Ran against every key template to flag missing labels, low-contrast text, and broken focus order. Same engine that powers axe DevTools and Lighthouse’s a11y checks.
  • Pa11y (MIT). CLI accessibility tester for batch-running WCAG 2.1 AA checks against a list of URLs. Used to confirm the blog index, About page, and post template all clear AA.
  • Lighthouse (Google, Apache-2.0). Automated audits for performance, accessibility, SEO, and best practices. Run headless via Playwright after every major change.
  • Nu HTML Checker (vnu) (W3C, MIT). HTML validation for the rendered pages, to catch malformed block markup before it shipped.
  • Schema.org validator and Google Rich Results Test. Verified the TechArticle, FAQPage, and Person JSON-LD parses cleanly. The schema spec itself (schema.org) is open and community-maintained.
  • sharp and sharp-cli (Apache-2.0 / MIT). Rasterized the hand-written SVG hero to a 1200×630 PNG for Open Graph cards.
  • SVGO (MIT). Optimized inline SVGs before they hit the page.
  • Node.js (OpenJS Foundation). Runtime for the upload and post-creation scripts that talked to WP REST.
  • WPGraphQL (GPL-3.0). Checked as an alternative to REST for batch reads. Stuck with REST for write operations.

What this means

Three years ago I wrote Guaranteed IT applications disruption!. The argument was that the gap between AI breakthroughs was collapsing: three years between Transformer and GPT-3, two years to ChatGPT, four months to the plugin model. The pattern would continue, and at some point we would stop being surprised.

That 2023 post was a prediction. This one is what the prediction looked like when it arrived.

A solo blog redesign that would have eaten my evenings for a month is now a weekend with an AI coding agent and a credit card. The browser, the WordPress REST API, the schema specs, the CSS selectors, the LinkedIn deeplink trivia: none of that requires me to know it. It requires me to ask for it.

What I do still need to know: what good looks like, when to push back, when the agent is bluffing, and when a “delete the News category” instruction will quietly break 12 permalinks. The work as we knew it is gone. The judgment is not.

If you run a team and you read this far: pilot the pattern on a low-risk internal site or a stale internal tool you already maintain reluctantly. Budget $100 of compute and one weekend. Pick the system, scope the agent’s blast radius, and let it rebuild under a human reviewer. You will learn more in two days than in a month of slide decks.


Discover more from Jens Kofod

Subscribe to get the latest posts sent to your email.


// about the author

Jens Kofod, Senior Solution Engineer at Microsoft Denmark

Jens Kofod

Senior Solution Engineer at Microsoft Denmark. Writes about Power Platform, Copilot Studio, and Dynamics 365. About → · LinkedIn ↗

One response to “The work as we know it is gone: I rebuilt iiu.dk in a weekend with an agent”

  1. […] If you are in Frontier and on the fence about piloting Scout, do it. Read the original launch post for context: Introducing Microsoft Scout: your always-on personal agent. The full play-by-play of the weekend rebuild is in The work as we know it is gone: I rebuilt iiu.dk in a weekend with an agent. […]

Leave a Reply

Discover more from Jens Kofod

Subscribe now to keep reading and get access to the full archive.

Continue reading

Discover more from Jens Kofod

Subscribe now to keep reading and get access to the full archive.

Continue reading