Skip to main content

        How we built Automan - a static, YAML-driven internal portal entirely with Claude Code, no servers, no frameworks.

An Internal Knowledge Hub, Built 100% by AI

How we built Automan - a static, YAML-driven internal portal entirely with Claude Code, no servers, no frameworks.

The Problem

Every engineering team accumulates internal tools, frameworks, guides, and resources over time. But discovering and accessing them? That’s a different story. Links get buried in Slack threads, wikis grow stale, and onboarding new team members means repeating the same “here’s where you find X” conversations. Needless to say, that many teams are also using Confluence/Jira systems which complicates it even further.

We needed a single, clean, internal portal, a front door to everything our team builds and maintains. But we didn’t want to spin up a backend, manage a database, or wrestle with a CMS.

The Idea

Automan is a lightweight, static portal hosted entirely on GitHub Pages. It serves as a centralized hub for internal solutions, resource guides, documentation links, and tooling references. No servers, no deployment pipelines to babysit - just push to master and it’s live.

The key design decision: all content is driven by YAML files. Adding a new solution card, a resource guide, or an entire page section doesn’t require writing HTML or JavaScript. You edit a .yml file, and the portal picks it up. Before you ask, the reason Flask, Django, FastAPI or similar infrastructure won’t support it, is because we need to render a simple HTML page that encapsulates everything and not having a full blown server that needs maintenance.

For example, publishing a new tool to the Solutions page looks like this:

- title: "My New Tool"
  description: "A brief description of what it does"
  icon: "build"
  url: "https://github.com/team/my-tool"
  tags: [api, python]

That’s it. Plain and simple.

Built with Agentic AI

What makes Automan unique isn’t just what it does - it’s how it was built. The entire portal was developed using Agentic AI (Claude Code). From the initial scaffolding and routing system, to the YAML-driven rendering engine, sidebar navigation, and page templates - AI was the primary (and shall I say, the only) developer.

This approach allowed us to go from idea to working portal remarkably fast. The AI agent handled the architecture decisions (hash-based routing, IIFE page modules, Materialize CSS for a clean Material Design look), wrote the JavaScript renderers that parse YAML into styled cards and sections, and iterated on the design through conversation rather than lengthy dev cycles.

It also means the portal is easy to extend with AI. Need a new page? Describe what you want, and the agent creates the YAML data file, the JS renderer, wires up the route, and adds the sidebar entry - all following the established conventions.

The Stack

Deliberately minimal:

  • Vanilla JS - no frameworks, no build step, no node_modules
  • Materialize CSS (Google-based) - clean Material Design out of the box
  • YAML - human-readable content files anyone can edit
  • GitHub Pages - zero-cost, zero-ops hosting

Why It Works

  1. Low barrier to contribute - editing a YAML file is accessible to everyone, not just front-end developers.
  2. Zero infrastructure - GitHub Pages handles hosting; there’s nothing to maintain.
  3. Consistent presentation - the rendering engine ensures every page looks polished regardless of who authored the content.
  4. AI-native workflow - the codebase conventions are simple enough that an AI agent can reliably add features and content, making the team more productive.

The Takeaway

Not every internal tool needs a React app and a Kubernetes cluster. Sometimes the best solution is the simplest one - a static site, structured data, and an AI pair programmer to keep things moving fast. Automan is proof that agentic AI isn’t just for greenfield products - it’s a force multiplier for the small, practical tools that make engineering teams run smoother.

And before you ask, you got it right - Anthropic’s #ClaudeCode wrote it. I just removed the double “-” as it looks bad!