The README's "Code conventions" section currently says "match surrounding code style" — that's fine for a solo project but breaks down with external contributors. ESLint + Prettier configs let us auto-format and auto-lint instead of arguing about style in PR reviews.
What to do
- Add
frontend/eslint.config.js (flat config, ESLint 9+) with:
@typescript-eslint/recommended
eslint-plugin-react-hooks recommended
eslint-plugin-jsx-a11y basic accessibility rules
- Add
frontend/.prettierrc — match the existing code style (look at a few .tsx files first; pick single vs double quotes, indent size, trailing commas to match what's already there)
- Add
npm run lint (runs ESLint, fails on errors) and npm run format (runs Prettier --write) scripts
- Run
npm run format once and commit the resulting reformat in a separate commit from the config addition, so the diff stays reviewable
- Update README "Code conventions" section to mention both commands
Acceptance criteria
Bonus (optional)
- Add a
lint-staged + husky pre-commit hook so contributors can't easily commit unformatted code. If you do this, mention it in README.
Scope
Touches 3-4 config files + likely auto-format diffs across frontend/src/. Estimated time: 2-3 hours.
Want to take this on? Comment below and I'll assign it to you.
The README's "Code conventions" section currently says "match surrounding code style" — that's fine for a solo project but breaks down with external contributors. ESLint + Prettier configs let us auto-format and auto-lint instead of arguing about style in PR reviews.
What to do
frontend/eslint.config.js(flat config, ESLint 9+) with:@typescript-eslint/recommendedeslint-plugin-react-hooksrecommendedeslint-plugin-jsx-a11ybasic accessibility rulesfrontend/.prettierrc— match the existing code style (look at a few.tsxfiles first; pick single vs double quotes, indent size, trailing commas to match what's already there)npm run lint(runs ESLint, fails on errors) andnpm run format(runs Prettier --write) scriptsnpm run formatonce and commit the resulting reformat in a separate commit from the config addition, so the diff stays reviewableAcceptance criteria
cd frontend && npm run lintpasses on the current codebasecd frontend && npm run formatreformats consistentlyBonus (optional)
lint-staged+huskypre-commit hook so contributors can't easily commit unformatted code. If you do this, mention it in README.Scope
Touches 3-4 config files + likely auto-format diffs across
frontend/src/. Estimated time: 2-3 hours.Want to take this on? Comment below and I'll assign it to you.