Blame
|
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) |
|||||||