Properties
category: reference
tags:
  - v6
  - landing-page
  - robot.wtf
last_updated: 2026-03-15

V6-1: Landing Page for robot.wtf

Status

Complete. Branch feat/v6-1-landing-page, commit 483c8ab.

Deliverables

File Purpose Size
static/index.html Landing page, semantic HTML 4.7KB
static/style.css Responsive styles, system fonts 3.6KB
static/favicon.svg "r." lettermark 260B
ansible/roles/deploy/tasks/main.yml Added static/ sync task (modified)

Total payload: ~8.5KB. No JavaScript.

Architecture

The API server (app/api_server.py) already serves / from /srv/static/index.html and /static/<path> from /srv/static/. The appdata role already creates the /srv/static/ directory. The new Ansible task uses synchronize to rsync static/ to /srv/static/ on deploy, with delete: true to clean stale files.

Page Structure

  • Header: robot.wtf wordmark + "Sign in with Bluesky" link to /auth/login
  • Hero: Tagline ("Wikis for the Bluesky community") + CTA button
  • What is this?: 3 paragraphs — what it does, origin story, tech stack and volunteer nature
  • How it works: 4 numbered steps (sign in, create wiki, copy MCP URL, write)
  • FAQ: 6 items using <details>/<summary> — MCP, pricing, agents, git clone, privacy, Bluesky
  • Footer: Schuyler Erle credit (Bluesky profile link) + GitHub source link

Design Decisions

  • System font stack, 740px max-width, light background (#fafafa), dark text (#1a1a2e)
  • CSS counters for numbered steps instead of default <ol> styling
  • +/- toggle markers on FAQ items (custom summary styling, no JS)
  • Responsive breakpoint at 600px for mobile
  • No images beyond the SVG favicon — keeps it fast and low-maintenance

Not Done

  • No push or merge (per instructions)
  • No .gitignore changes (untracked __pycache__ dirs are pre-existing)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9