Summary
Confirm analytics only load after consent is granted via CookieBanner.tsx, and document what's tracked in a privacy-facing doc.
Difficulty
Good First Issue — estimated effort: ~1-3 hours. Labels: frontend, security, good-first-issue, good-first-issue
Where to Work
src/components/Analytics.tsx
CookieBanner.tsx
How to Approach This
- Locate the relevant page under
src/app/(app)/ or component under src/components/.
- Match the existing Tailwind utility-class conventions already used in that file — don't introduce a new styling approach.
- If adding new interactive state, prefer local
useState/useEffect consistent with how nearby components in the file already manage state.
- Test the change at both desktop and mobile breakpoints (e.g. Chrome DevTools responsive mode) before opening a PR.
- Run
npm run lint and npm run build locally to confirm no type or lint errors were introduced.
- If you added a new reusable piece of UI, consider whether it belongs in
src/components/ instead of being page-local.
Acceptance Criteria
Notes for Contributors
Comment on this issue before starting so it can be assigned to you and duplicate work is avoided. If the described approach doesn't quite fit once you're in the code (e.g. the file has moved, or there's a cleaner way to do it), that's fine — leave a comment explaining the deviation in your PR description rather than silently changing scope.
Summary
Confirm analytics only load after consent is granted via
CookieBanner.tsx, and document what's tracked in a privacy-facing doc.Difficulty
Good First Issue — estimated effort: ~1-3 hours. Labels:
frontend,security,good-first-issue,good-first-issueWhere to Work
src/components/Analytics.tsxCookieBanner.tsxHow to Approach This
src/app/(app)/or component undersrc/components/.useState/useEffectconsistent with how nearby components in the file already manage state.npm run lintandnpm run buildlocally to confirm no type or lint errors were introduced.src/components/instead of being page-local.Acceptance Criteria
npm run lint,npm run build).Notes for Contributors
Comment on this issue before starting so it can be assigned to you and duplicate work is avoided. If the described approach doesn't quite fit once you're in the code (e.g. the file has moved, or there's a cleaner way to do it), that's fine — leave a comment explaining the deviation in your PR description rather than silently changing scope.