Skip to content

Beta test users returns: SEO, security, performance, accessibility, and docs - #95

Merged
luidgi-dev merged 9 commits into
mainfrom
dev
Jul 6, 2026
Merged

luidgi-dev merged 9 commits into
mainfrom
dev

Conversation

@luidgi-dev

Copy link
Copy Markdown
Owner

Promote dev → main: SEO, security, performance, accessibility, and docs

Three lots of post-beta improvements, config-heavy and low-risk. Ships the SEO/security surface so the out-of-repo indexing steps (Search Console, backlink) can start once live. No DB schema changes in these lots.

Lot 1 — SEO indexing (LUI-110) + Security headers (LUI-113)

  • Security headers in next.config.ts: Content-Security-Policy (Supabase REST/wss/Storage + Sentry EU ingest whitelisted; 'unsafe-eval' dev-only, never in prod), X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, Strict-Transport-Security; x-powered-by removed.
  • Indexing: app/robots.ts + app/sitemap.ts (en/fr URLs with hreflang incl. x-default), per-locale generateMetadata on the landing (title/description/keywords/canonical/OpenGraph/Twitter), and a generated OG image (app/opengraph-image.tsx).
  • On-page: conversion FAQ accordion with FAQPage JSON-LD (EN/FR), keyword-rich hero subline, descriptive image alt text.
  • Fixed proxy.ts so the locale rewrite no longer 404s robots.txt / sitemap.xml / opengraph-image.

Lot 2 — Performance (LUI-112) + Accessibility/RGAA (LUI-107) + Close buttons (LUI-105)

  • Perf: prefetch={false} on the sign-up CTAs (stops eagerly loading the ~215 KB Supabase auth chunk on the marketing page), modern browserslist (drops legacy polyfills), Sentry bundleSizeOptimizations excluding unused Session Replay, quality on landing wireframes.
  • Contrast (WCAG AA / RGAA): opacity modifiers on text-muted-foreground dropped to the solid token (passes 4.5:1 in both themes) across ~17 spots; a colour-only status in the circle feed gained a screen-reader label.
  • Close buttons: shared SheetCloseButton with a 44 px hit area added to the three sheets that lacked one; all existing modal/sheet closes migrated to it for a consistent ≥44 px target.

Lot 3 — Help page (LUI-108) + README (LUI-114)

  • /help (/help, /fr/help): locale-aware, indexable, EN/FR via next-intl, six sections following UX_WRITING.md terminology. Accordion uses keepMounted so all text ships in the HTML (crawlable) even collapsed; TOC links deep-open sections. Entry points: landing footer + Settings (next to Send feedback), added to the sitemap.
  • README: fixed 35 backtick-wrapped reference links that GitHub rendered as non-clickable code; added an explicit DB-setup step to Quick Start; added a PWA local-testing note.
  • Incidental: auth forms now show a human message on network failure instead of a raw Failed to fetch (…supabase.co) (4 forms); images.qualities declared for Next 16.

Verification

tsc, eslint, next build, vitest (76/76) green throughout. Runtime-checked (EN + FR): security headers present, robots/sitemap/OG served, per-locale metadata + FAQ/help JSON/text in the HTML, /help returns 200, contrast fixes render.

Follow-ups (post-merge, out of repo)

  1. Real-browser CSP smoke test on the deployed build (login, avatars, realtime, Sentry) — confirm no CSP violations.
  2. Google Search Console: add striveapp.cc, submit sitemap.xml, request indexing on the root.
  3. ≥1 external backlink (GitHub repo description / LinkedIn).
  4. Optional: README hero visual once a polished asset is ready.

- Added Content Security Policy (CSP) to mitigate XSS risks and define allowed sources for various content types.
- Introduced security headers including X-Frame-Options, X-Content-Type-Options, and Strict-Transport-Security to strengthen application security.
- Configured the application to drop the `x-powered-by` header for improved security posture.
…ronment

- Modified the script-src directive to conditionally allow 'unsafe-eval' during development, ensuring compatibility with React + Turbopack while maintaining a stricter policy in production.
- Added robots.txt and sitemap.xml for improved search engine indexing and crawling.
- Introduced opengraph-image.tsx for site-wide social media previews.
- Created a new FAQ section with localized content to address common user questions.
- Updated landing page to include the FAQ section and enhanced metadata for better SEO performance.
- Added alt text for images in the screenshots section to improve accessibility and SEO.
…ty-audit

Fix/lui 110 113 seo and security audit
- Introduced `SheetCloseButton` for consistent close button functionality across various sheets, improving accessibility and user experience.
- Updated `next.config.ts` to include bundle size optimizations by excluding unused Session Replay SDK components, reducing client bundle size.
- Made minor adjustments to text styles in several components for improved readability and consistency.
- Added new browser support configurations in `package.json` to ensure compatibility with the latest versions of major browsers.
…rf-and-accessibility

Enhance UI components and optimize bundle size
- Created a new Help page with localized content and structured sections for better user guidance.
- Implemented HelpSections component to display help content in an accordion format, enhancing user experience and accessibility.
- Integrated translation support for dynamic content rendering based on user locale.
- Added a new Help page with localized content to guide users on how to use Strive effectively.
- Updated the sitemap to include the new Help page and adjusted public paths accordingly.
- Enhanced the landing page and various components to include links to the Help section, improving accessibility and user navigation.
- Improved error handling in forms to provide clearer messages for network issues, enhancing user experience during authentication processes.
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown

Strive PR Agent Review

The review could not be generated for this run (model unavailable or rate-limited). Push again to retry.

@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
strive Ready Ready Preview, Comment Jul 6, 2026 7:35pm

@luidgi-dev
luidgi-dev merged commit 9bedeea into main Jul 6, 2026
11 checks passed

This branch was successfully deployed

1 active deployment
Preview — 330491e9 Deployed Jul 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant