Skip to main content
Site Architecture

Pages & Routes

Complete inventory of all 400+ pages and routes in ArgoBox organized by category, rendering mode, and purpose

February 23, 2026

Pages & Routes

ArgoBox has approximately 400+ pages split across public content, admin tools, playgrounds, API endpoints, and authenticated user features. This is the complete route inventory, organized by category with rendering mode noted for each group.

Route Summary

Category Count Rendering Auth Required
Public pages 17 Static (SSG) No
Blog & journal 7 Static (SSG) No
Docs & learning 6 Static (SSG) No
Command center 9 Static (SSG) Admin
Playgrounds 21 Static (SSG) No (some gated)
Admin 238 Mostly SSR Admin
User portal 12 SSR Member+
Auth 2 SSR No
Total ~400+ Most admin/user/API pages use SSR (prerender=false); SSR count is 250+

Public Pages (17) -- Static

These pages are prerendered at build time and served from the CDN. No authentication, no server logic, no cold starts.

Route Purpose
/ Homepage -- hero section, featured projects, recent posts
/about About page -- mission statement with three pillars (Build It Wrong First, Span The Distance, Ship The Lab), stat rings, capabilities grid, operator bio, tech stack
/contact Contact form (form submission goes to SSR API endpoint)
/homelab Homelab overview -- hardware inventory, network topology, photos
/architecture System architecture diagrams and explanations
/services Services page -- infrastructure consulting, hiring, workshops with three service lanes (Build, Hire, Learn)
/community Community hub -- Discord, GitHub, blog links, build-in-public pillars, recent posts
/cost Cost analysis -- platform cost vs AWS/GCP/Azure/Hetzner comparison, Cloudflare free tier breakdown, CTA for services
/workflows Development and deployment workflows
/projects Project gallery -- build swarm, ArgoOS, command center, etc.
/resources Curated links, tools, and references
/ask Public Q&A / knowledge base search
/status Public status page -- service health overview
/telemetry Telemetry and analytics dashboard (anonymized)
/404 Custom 404 page with navigation suggestions
/rss.xml RSS feed for blog posts

The contact form on /contact is a static page, but the form submission posts to /api/contact which is an SSR endpoint with rate limiting and email delivery.

Blog & Journal (7) -- Static

Content-driven pages rendered from Astro's content collections.

Route Purpose Collection
/blog Blog index -- paginated post listing with category filters posts
/blog/[slug] Individual blog post posts
/journal Journal index -- engineering log entries journal
/journal/[...slug] Individual journal entry (supports nested paths) journal
/posts/[slug] Legacy post URL (redirects or renders directly) posts
/categories/[category] Posts filtered by category (not implemented) posts
/tags Tag cloud and tag-filtered post listings (not implemented) posts

The [slug] and [...slug] patterns are Astro dynamic routes. At build time, Astro generates one HTML page per content entry. The [...slug] rest parameter supports nested directory structures in the journal collection.

Content Collection Integration

Each route uses getCollection() to fetch entries and render() to convert Markdown/MDX to HTML:

---
import { getCollection } from 'astro:content';

export async function getStaticPaths() {
  const posts = await getCollection('posts');
  return posts.map(post => ({
    params: { slug: post.slug },
    props: { post },
  }));
}

const { post } = Astro.props;
const { Content } = await post.render();
---

<Content />

Docs & Learning (6) -- Static

Documentation and educational content, also rendered from content collections.

Route Purpose Collection
/docs Documentation hub -- section index with navigation docs
/docs/[...slug] Individual doc page (supports nested sections) docs
/learn Learning tracks index -- difficulty levels, prerequisites (not implemented) learn
/learn/[...slug] Individual learning module (not implemented) learn
/configurations Configuration file index configurations
/configurations/[slug] Individual configuration reference configurations

The docs collection supports deep nesting (/docs/cloudflare/tunnels, /docs/build-swarm/architecture, etc.) through the [...slug] rest parameter. The section and order frontmatter fields control how docs are grouped and sorted in the navigation sidebar.

Command Center (9) -- Static (SSG)

The command center provides infrastructure monitoring dashboards. All pages are statically generated with client-side data fetching for live updates.

Route Purpose
/command Command center landing -- dual-galaxy overview dashboard
/command/control-center Mission control -- tabs for system overview, deployment, monitoring
/command/infrastructure Infrastructure status -- servers, VMs, containers across both sites
/command/media Media management -- Plex, storage, transcoding status
/command/network Network topology -- Tailscale mesh, subnets, latency
/command/personal Personal tools -- Obsidian vaults, git repos, backup status
/command/portal Portal dashboard -- quick links, service shortcuts
/command/services Service health -- uptime, response times, status checks
/command/space Space view -- visual infrastructure map with node connections

These pages use React islands with client:load to fetch live data after the static shell renders. Data comes from /api/gateway, /api/services, and /api/command proxy endpoints.

Playgrounds (12) -- Static (SSG)

Interactive lab environments with ephemeral containers/VMs provisioned by the lab engine (10.0.0.210:8094).

Route Purpose
/playground Playground hub -- available labs, challenge tracking, session management
/playground/apkg-tutorial apkg package manager tutorial -- guided walkthrough
/playground/argo-os Argo OS lab -- full QEMU VM with VNC + terminal access
/playground/build-swarm Build swarm simulation -- orchestrator and drone concepts
/playground/containers Container lab -- ephemeral LXC with terminal access
/playground/iac Infrastructure as Code lab -- Ansible/Terraform exercises
/playground/infrastructure Infrastructure monitoring simulation
/playground/monitoring Monitoring and observability lab
/playground/networking Networking lab -- subnets, routing, firewall rules
/playground/ollama Ollama AI lab -- local model inference exercises
/playground/rag RAG pipeline lab -- embeddings, retrieval, generation
/playground/terminal Terminal lab -- command-line challenges in ephemeral LXC

Playgrounds are statically rendered shells. The LabLauncher component provisions ephemeral containers/VMs on Proxmox IO via the lab engine, then TerminalEmbed or VNCEmbed connects to the provisioned instance. Labs run on an isolated network (vmbr99, 10.99.0.1/24) with dual-node failover between Proxmox IO and Proxmox Titan.

Admin (46) -- Mostly SSR

The admin panel is the largest route group. Most routes require the admin role and are server-rendered. A few pages (proxmox console, public swarm view, sandbox demos) are statically generated.

Core Admin

Route Rendering Purpose
/admin SSR Admin dashboard -- content stats, feature flags, quick actions
/admin/edit SSR Content editor -- create/edit posts, journal entries, docs
/admin/review SSR Content review queue -- needs review / needs work items
/admin/pipeline SSR Content pipeline -- draft → review → publish workflow
/admin/content-lab SSR AI content lab -- generation, coaching, voice checking
/admin/dashboard-profiles SSR Dashboard profile designer -- widget layouts, themes
/admin/settings SSR Admin settings and configuration
/admin/auth-bounce SSR Cloudflare Access authentication bounce handler

AI & Argonaut

Route Rendering Purpose
/admin/chat SSR Multi-model streaming AI chat
/admin/workbench SSR Multi-conversation AI workspace
/admin/rag SSR RAG knowledge base administration
/admin/argonaut SSR Argonaut AI agent dashboard
/admin/argonaut/chat SSR Argonaut chat interface
/admin/argonaut/profile SSR Argonaut personality profile editor
/admin/argonaut/profiles SSR Argonaut profile management
/admin/argonaut/tasks SSR Argonaut task queue
/admin/argonaut/writer SSR Argonaut AI writer

Infrastructure

Route Rendering Purpose
/admin/homelab SSR Service registry and credential manager
/admin/servers SSR Server monitoring -- CPU, memory, storage, network
/admin/proxmox SSG Proxmox VM/CT browser with VNC and terminal
/admin/proxmox/console SSG Embedded Proxmox console (noVNC/xterm.js)
/admin/mm-terminal SSR MasaiMara Unraid terminal (xterm.js over WebSocket)
/admin/cloudflare SSR Cloudflare status -- deployments, tunnels, analytics
/admin/probe-studio SSR Infrastructure probe management

Build Swarm & Jobs

Route Rendering Purpose
/admin/build SSR Build pipeline -- trigger builds, view logs, artifacts
/admin/build-swarm SSR Build fleet management -- drone status, queue
/admin/build-swarm-public-v3 SSG Public-facing swarm status (v3 API)
/admin/swarm SSG Swarm overview dashboard
/admin/jobs SSR Job auto-apply engine management

Security & Users

Route Rendering Purpose
/admin/security SSR Security scanning and audit
/admin/users SSR User CRUD, role assignment, feature gating

Pentest Suite

Route Rendering Purpose
/admin/pentest SSR Pentest dashboard -- multi-node targeting
/admin/pentest/console SSR VNC/terminal console for Kali VM
/admin/pentest/recon SSR Reconnaissance scanner
/admin/pentest/exploit SSR Exploit tools
/admin/pentest/webapp SSR Web application scanner
/admin/pentest/reports SSR Scan report viewer
/admin/pentest/targets SSR Target management

OpenClaw

Route Rendering Purpose
/admin/openclaw SSR OpenClaw AI gateway dashboard
/admin/openclaw/config SSR OpenClaw configuration viewer
/admin/openclaw/cron SSR OpenClaw cron job management
/admin/openclaw/skills SSR OpenClaw skills registry

Sandbox & Playground Admin

Route Rendering Purpose
/admin/sandbox SSR Sandbox hub -- demo experience management
/admin/sandbox/demo SSG Demo mode experience
/admin/sandbox/workbench SSG Sandbox workbench
/admin/playground SSR Playground node switching, failover control

Admin Navigation

The admin panel uses a module-based sidebar navigation defined in src/config/modules/*.ts (auto-discovered via import.meta.glob). Sections include Content, AI Tools, Infrastructure, Security, and Settings. The CommandPalette component (triggered by Ctrl+K) provides fuzzy search across all admin routes and actions.

User Portal (8) -- SSR

Authenticated user features available to member role and above.

Route Purpose
/user User portal landing -- profile, quick actions
/user/dashboard Unified all-in-one homelab dashboard (site matrix, service cockpit, container panel)
/user/access Curated access command surface for VPN/public/LAN route selection
/user/settings User preferences -- theme, notifications, display name
/user/editor Content editor -- write posts/journal entries
/user/workbench Development workbench -- file browser, terminal
/user/sites Site management -- domain status, deployment info
/user/email User email/communications surface
/user/bogart/dashboard Bogart alias route redirecting to /user/dashboard

Auth (2) -- SSR

Authentication flow pages.

Route Purpose
/auth/login Login handler -- processes CF Access callback, sets session
/auth/logout Logout handler -- clears session cookies, redirects to home

These are thin handlers that process Cloudflare Access authentication results. The actual login UI is provided by Cloudflare Access (hosted on argobox.cloudflareaccess.com).

Route File Structure

Routes map directly to files in src/pages/:

src/pages/
├── index.astro              # /
├── about.astro              # /about
├── contact.astro            # /contact
├── blog/
│   ├── index.astro          # /blog
│   └── [slug].astro         # /blog/[slug]
├── journal/
│   ├── index.astro          # /journal
│   └── [...slug].astro      # /journal/[...slug]
├── docs/
│   ├── index.astro          # /docs
│   └── [...slug].astro      # /docs/[...slug]
├── admin/
│   ├── index.astro          # /admin
│   ├── posts/
│   │   ├── index.astro      # /admin/posts
│   │   ├── new.astro        # /admin/posts/new
│   │   └── [slug].astro     # /admin/posts/[slug]
│   └── ...
├── command/
│   ├── index.astro          # /command
│   └── ...
├── playground/
│   ├── index.astro          # /playground
│   └── ...
├── auth/
│   ├── login.astro          # /auth/login
│   └── logout.astro         # /auth/logout
├── user/
│   └── ...
└── api/
    └── ...                  # API routes (see api-endpoints.md)

Rendering Decision Guide

When adding a new page, the rendering mode is determined by what the page needs:

Page Needs Rendering Mode Why
Static content only SSG (prerender = true) Fastest, cheapest, cached at edge
User authentication SSR Must read request headers at runtime
Live data from APIs SSR Must fetch current data per request
Environment variables SSR Only available at runtime
KV or D1 access SSR Cloudflare bindings only available at runtime
Content from collections SSG Collections are resolved at build time
Dynamic query params SSR Must read URL at runtime
routespagesnavigationarchitecture