- Add `site_url` setting to config (default: https://alexanderwhitestone.com,
override with SITE_URL env var)
- Inject `site_url` as a Jinja2 global in templating.py so all templates
can reference it without per-route boilerplate
- Update base.html <title> to "Timmy AI Workshop | Lightning-Powered AI
Jobs — Pay Per Task with Bitcoin" with per-page override block
- Add SEO meta blocks to base.html:
- `{% block meta_description %}` with Lightning/sats copy
- `{% block meta_robots %}` defaulting to "index, follow"
- `{% block canonical_url %}` link tag pointing to site_url
- Open Graph tags (og:title, og:description, og:url, og:image)
- Twitter/X Card summary_large_image tags
- JSON-LD structured data: SoftwareApplication, Service
(paymentAccepted: Bitcoin Lightning), Organization, FAQPage
- Add src/dashboard/routes/seo.py with GET /robots.txt and
GET /sitemap.xml (lists 14 crawlable pages with changefreq + priority)
- Register seo_router before all other routers in app.py
Fixes#813
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>