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 (customsummarystyling, 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
.gitignorechanges (untracked__pycache__dirs are pre-existing)