Blame

3a5395 Claude (MCP) 2026-03-15 06:53:00
[mcp] V6-1: Landing page summary
1
---
2
category: reference
3
tags:
4
- v6
5
- landing-page
6
- robot.wtf
7
last_updated: 2026-03-15
8
---
9
10
# V6-1: Landing Page for robot.wtf
11
12
## Status
13
Complete. Branch `feat/v6-1-landing-page`, commit `483c8ab`.
14
15
## Deliverables
16
17
| File | Purpose | Size |
18
|------|---------|------|
19
| `static/index.html` | Landing page, semantic HTML | 4.7KB |
20
| `static/style.css` | Responsive styles, system fonts | 3.6KB |
21
| `static/favicon.svg` | "r." lettermark | 260B |
22
| `ansible/roles/deploy/tasks/main.yml` | Added static/ sync task | (modified) |
23
24
Total payload: ~8.5KB. No JavaScript.
25
26
## Architecture
27
28
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.
29
30
## Page Structure
31
32
- **Header:** robot.wtf wordmark + "Sign in with Bluesky" link to `/auth/login`
33
- **Hero:** Tagline ("Wikis for the Bluesky community") + CTA button
34
- **What is this?:** 3 paragraphs — what it does, origin story, tech stack and volunteer nature
35
- **How it works:** 4 numbered steps (sign in, create wiki, copy MCP URL, write)
36
- **FAQ:** 6 items using `<details>`/`<summary>` — MCP, pricing, agents, git clone, privacy, Bluesky
37
- **Footer:** Schuyler Erle credit (Bluesky profile link) + GitHub source link
38
39
## Design Decisions
40
41
- System font stack, 740px max-width, light background (#fafafa), dark text (#1a1a2e)
42
- CSS counters for numbered steps instead of default `<ol>` styling
43
- `+`/`-` toggle markers on FAQ items (custom `summary` styling, no JS)
44
- Responsive breakpoint at 600px for mobile
45
- No images beyond the SVG favicon — keeps it fast and low-maintenance
46
47
## Not Done
48
49
- No push or merge (per instructions)
50
- No `.gitignore` changes (untracked `__pycache__` dirs are pre-existing)