diff --git a/README.md b/README.md index 970fd1f..7622723 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,84 @@ Lightweight, SEO-first website for SanthoshJ that aggregates YouTube + Instagram + podcast content and tracks conversion events via Umami. +## Specs (OpenSpec) + +This repo uses OpenSpec (schema: `spec-driven`) to document and ship features. + +- Active specs live in `openspec/specs//spec.md` +- Completed initiatives (proposal/design/tasks + delta specs) live in `openspec/changes/archive/-/` + +Key public flags (documented in `site/.env.example`): + +- `PUBLIC_SITE_URL`: canonical URL base +- `PUBLIC_ENABLE_SW`: set to `"false"` to disable service worker registration +- `PUBLIC_ENABLE_NAV_HOVER_LINE`: set to `"false"` to disable decorative hover-line styling + +### Spec Index (Active) + +Content + ingestion: + +- `social-content-aggregation` (`openspec/specs/social-content-aggregation/spec.md`): normalize YouTube/Instagram/podcast items and refresh via cached ingestion +- `homepage-content-modules` (`openspec/specs/homepage-content-modules/spec.md`): homepage module ordering, newest feed, high-performing videos, and Instagram omission when empty +- `wordpress-content-source` (`openspec/specs/wordpress-content-source/spec.md`): fetch WordPress posts/pages/categories via `wp-json` and write to build cache +- `blog-section-surface` (`openspec/specs/blog-section-surface/spec.md`): `/blog` surface (index/category/detail) + Umami-instrumented navigation +- `seo-content-surface` (`openspec/specs/seo-content-surface/spec.md`): indexable pages, canonical URLs, sitemap + robots, and JSON-LD expectations + +Analytics + tracking: + +- `interaction-tracking-taxonomy` (`openspec/specs/interaction-tracking-taxonomy/spec.md`): required Umami event attributes, `target_id` namespaces, and modal interaction events +- `analytics-umami` (`openspec/specs/analytics-umami/spec.md`): Umami enable/disable behavior + supported custom events +- `conversion-ctas` (`openspec/specs/conversion-ctas/spec.md`): reusable CTA surface + UTM support + `cta_click` tracking + +UI + UX shell: + +- `wcag-responsive-ui` (`openspec/specs/wcag-responsive-ui/spec.md`): responsive nav shell, focus-visible baseline, reduced motion, and semantic element rules +- `card-layout-system` (`openspec/specs/card-layout-system/spec.md`): standardized card information architecture + modal-trigger behavior for video/podcast cards +- `media-modal` (`openspec/specs/media-modal/spec.md`): ``-based media preview modal requirements (focus, playback stop, crawlable CTAs) +- `image-lazy-loading` (`openspec/specs/image-lazy-loading/spec.md`): shimmer placeholders + fade-in + failure handling + reduced-motion behavior +- `site-theming` (`openspec/specs/site-theming/spec.md`): `data-theme` application, defaults, and persistence rules (localStorage + cookie fallback) +- `theme-switcher-notch` (`openspec/specs/theme-switcher-notch/spec.md`): floating theme notch placement, interaction, and accessibility requirements +- `navbar-branding` (`openspec/specs/navbar-branding/spec.md`): header logo + centered brand layout +- `nav-hover-line` (`openspec/specs/nav-hover-line/spec.md`): decorative hover-line treatment for header titles + key surface titles (flagged) + +Performance + deployment: + +- `service-worker-performance` (`openspec/specs/service-worker-performance/spec.md`): production SW registration + runtime caching + safe updates +- `responsive-image-delivery` (`openspec/specs/responsive-image-delivery/spec.md`): explicit dimensions + deterministic image behavior for quality gates +- `lighthouse-quality-gate` (`openspec/specs/lighthouse-quality-gate/spec.md`): deterministic Lighthouse runner + 100-score assertion +- `docker-content-refresh` (`openspec/specs/docker-content-refresh/spec.md`): Docker-only host refresh/update workflow (no Node.js on server) +- `cache-layer` (`openspec/specs/cache-layer/spec.md`): Redis-backed shared cache + TTL + manual cache clear + +### Quality Gates + +- Site build: `npm -C site run build` +- Lighthouse gate docs: `site/docs/lighthouse.md` (scripts: `npm -C site run lighthouse:run`, `npm -C site run verify:lighthouse`) + +### Completed Initiatives (Archived) + +Each archived initiative includes `proposal.md`, `design.md`, `tasks.md`, and any delta specs used for that change. + +| Change | Focus | +|---|---| +| `2026-02-10-dynamic-homepage-social-acquisition` | Initial SEO-first site: content aggregation, homepage modules, CTAs, and analytics | +| `2026-02-10-better-tracking` | Site-wide click tracking taxonomy aligned to Umami | +| `2026-02-10-custom-events-umami` | Expand Umami custom event coverage + standardize event properties | +| `2026-02-10-blog-umami-fix` | Fix and verify blog surface Umami instrumentation | +| `2026-02-10-better-cache` | Add Redis cache layer + TTL + manual clear; wire into ingestion | +| `2026-02-10-card-layout` | Standardize card layout across surfaces | +| `2026-02-10-lazy-loading` | Add shimmer placeholders and reduced-motion-safe image loading UX | +| `2026-02-10-blogs-section` | Add WordPress-backed blog section + routes + secondary nav | +| `2026-02-10-hide-ig-if-no-data` | Omit Instagram module when dataset is empty | +| `2026-02-10-reduce-bounce-rate` | Add in-page media modal previews for video/podcast cards | +| `2026-02-10-service-workers` | Add service worker caching for repeat-visit performance | +| `2026-02-10-deploy-without-node` | Docker-only host refresh/update workflow | +| `2026-02-10-fix-sub-pages` | Fix static serving so `/videos`, `/podcast`, `/about` do not 404 | +| `2026-02-10-wcag-responsive` | WCAG baseline + responsive nav shell + typography/background fixes | +| `2026-02-10-lighthouse-fixes` | Lighthouse cleanup + deterministic 100/100/100/100 gate | +| `2026-02-11-dch-theming` | Dark/light/high-contrast themes + theme notch UI | +| `2026-02-11-remember-theme` | Persist theme across visits + emit theme switch tracking | +| `2026-02-11-final-touches` | Header branding polish + hover-line treatment behind env flag | + ## Local Setup ```bash