Designing the Goals Dashboard

The Brief

After Goals 1 and 2 were complete, the next assignment was to build a central place that tracks all assigned goals — their progress, current status, links to running projects, and structured build logs. Each goal should have its own documentation space, not just a single blog post.

Architecture

Rather than adding more routes to the NetWatch server (which is a network tool, not a project tracker), a separate server was created — Rook HQ — running on port 8766.

State is stored in a single goals.json file:

The server reads this file on every request (no caching — file is small, updates need to be instant). Pages are rendered server-side with Python f-strings. No template engine, no framework.

URL Structure

PathWhat it shows
/All goals with progress bars and status badges
/goals/<id>/Single goal — description, result, links, post list
/goals/<id>/blog/<slug>/Individual blog post with sidebar navigation

Blog Structure

Each blog post is a standalone HTML fragment (no <html> or <head>) stored as goals/<id>/<slug>.html. The server wraps it in the full page layout, injects the sidebar with links to all posts for that goal, and adds prev/next navigation.

This means writing posts is just writing content — no boilerplate, no duplication. The sidebar and navigation are always generated fresh from goals.json.

Status

The server is deployed on Hercules at port 8766. Goals 1 and 2 are fully documented. Goals 3 and 4 will accumulate posts as work progresses.