- Build-time Open Graph cards per post and a default card (Satori + Sharp)
- Favicon/ICO/apple-touch/manifest icons generated from one SVG (npm run icons)
- robots.txt and web manifest generated from site.json
- Subset self-hosted fonts to Latin + Turkish (188 KB -> 66 KB) with preload
- Inline the stylesheet to remove the render-blocking request
- Post-build site audit (npm run check:site): h1, alt, SEO tags, links
- Omit canonical on noindex pages
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- About page with identity cards and equipment lists (about.json)
- Contact page: station info, obfuscated e-mail, lazy Leaflet/OSM map
with antenna tower marker and dark-mode tiles
- Privacy, license and disclaimer pages from a legal collection
- QRT-themed 404 page
- LICENSE (MIT) and LICENSE-CONTENT (CC BY-SA 4.0 legal code)
- Shared PageHeader and CodeCopy components
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- node:sqlite storage in $DATA_DIR/views.db (no native deps)
- POST /api/views/<slug>/ counts once per visitor per 24h via
daily-salted hash; IPs are never stored, bots are skipped
- GET /api/views/top/ feeds the sidebar's featured list, falling back
to frontmatter-featured and latest posts when unavailable
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Content collection (one folder per post) with zod schema
- /blog, category and tag archives with /sayfa/<n>/ pagination
- Post page: breadcrumbs, date badges, share bar, TOC, DIY notice,
code copy, license line, prev/next, BlogPosting + BreadcrumbList JSON-LD
- Sidebar: Pagefind search, categories, featured fallback, tag cloud
- Sätteri HAST plugins for figure/figcaption and external links
- Dual-theme Shiki, themed prose, RSS feed, latest posts on home
- Three sample posts marked as examples
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Hero with callsign/locator tags and CTAs on khaki grid
- Feature sections for ARD (YM1KTC), DMR Türkiye, QRV73!, QRZ73!
- Telegram groups and resource site card grids
- Latest posts block with empty state (wired to blog in stage 4)
- Section wrapper, decorative numerals, external Button variant
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>