| type | Feature |
|---|---|
| title | Add a sparkline of recent values to the stats panel |
| labels | type:feature, area:stats, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 |
| assignees |
The stats panel shows current numbers but no trend. This issue adds a small accessible sparkline of recent samples.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Render a compact sparkline from the recent stats samples with an accessible text summary of the trend.
- Do not add a charting dependency; a small inline SVG is sufficient.
- Handle sparse/empty data gracefully.
- Fork the repo and create a branch
git checkout -b feature/stats-03-sparkline- Implement changes
- Write code in: the stats panel component.
- Write comprehensive tests in: renders points for samples, empty data no-op, text summary present.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: single sample, all-equal samples, empty.
- Include the full test output in the PR description.
feat(stats): add a recent-values sparkline
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Add a caption and header scopes to the pairs table" labels: type:a11y, area:pairs, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
The pairs table lacks a caption and scoped headers. This issue adds them for correct assistive-tech structure.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Add a descriptive caption and scope attributes to the pairs table headers.
- Data/columns unchanged; semantics only.
- Verify with an automated a11y assertion if available.
- Fork the repo and create a branch
git checkout -b a11y/pairs-02-table-semantics- Implement changes
- Write code in: the pairs table component.
- Write comprehensive tests in: caption present, column headers carry scope.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: empty table, single row.
- Include the full test output in the PR description.
a11y(pairs): add table caption and header scopes
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Add a reset-to-defaults action to Settings" labels: type:feature, area:settings, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
Settings accumulate and there is no quick way to restore defaults. This issue adds a confirmed reset action.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Add a reset control that restores all app settings to defaults behind a confirmation.
- Announce completion; do not touch unrelated stored data.
- Reuse the existing settings/storage layer.
- Fork the repo and create a branch
git checkout -b feature/settings-01-reset-defaults- Implement changes
- Write code in: the settings page.
- Write comprehensive tests in: reset restores defaults, confirmation required, cancel is a no-op.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: already-default settings, cancel path.
- Include the full test output in the PR description.
feat(settings): add reset-to-defaults action
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Add a per-pair detail drawer" labels: type:feature, area:pairs, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
Inspecting a pair requires navigating away. This issue adds an accessible side drawer showing the selected pair's details in place.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Open an accessible drawer (focus-trapped, Escape to close) with the selected pair's details.
- Return focus to the triggering row on close.
- Reuse existing pair data; no new fetch if data is already present.
- Fork the repo and create a branch
git checkout -b feature/pairs-03-detail-drawer- Implement changes
- Write code in: the pairs list + a drawer component.
- Write comprehensive tests in: opens with details, Escape closes, focus returns to trigger.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: rapid open/close, keyboard-only operation.
- Include the full test output in the PR description.
feat(pairs): add a per-pair detail drawer
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Announce stats refreshes through an aria-live region" labels: type:a11y, area:stats, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
Stats refresh silently, so screen-reader users get no signal that data changed. This issue adds a polite announcement on refresh.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Announce a concise message via a polite live region when a stats refresh completes.
- Debounce so frequent polling does not spam the SR queue.
- No change to the polling logic.
- Fork the repo and create a branch
git checkout -b a11y/stats-01-refresh-live- Implement changes
- Write code in: the stats panel.
- Write comprehensive tests in: announcement on successful refresh, debounced under rapid updates.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: failed refresh (no announce), rapid successive refreshes.
- Include the full test output in the PR description.
a11y(stats): announce refreshes politely
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Add a column visibility toggle to the pairs table" labels: type:feature, area:pairs, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
The pairs table shows a fixed column set. This issue adds a persisted column visibility toggle.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Add an accessible menu to show/hide columns; persist the choice to a namespaced, SSR-guarded key.
- Always keep at least one identifying column visible.
- Restore the saved choice on mount with a safe fallback.
- Fork the repo and create a branch
git checkout -b feature/pairs-04-column-toggle- Implement changes
- Write code in: the pairs table + a small persisted-preference helper.
- Write comprehensive tests in: toggling hides/shows a column, persists, invalid stored value falls back.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: all-but-one hidden attempt, corrupt stored value.
- Include the full test output in the PR description.
feat(pairs): add column visibility toggle
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Add a global keyboard shortcut to toggle the theme" labels: type:feature, area:theme, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
Switching theme requires opening settings/among controls. This issue adds a documented global shortcut.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Bind a documented shortcut to toggle the theme; ignore it while typing in inputs.
- Expose the shortcut in any help/shortcuts affordance.
- Reuse the existing theme mechanism.
- Fork the repo and create a branch
git checkout -b feature/theme-01-toggle-shortcut- Implement changes
- Write code in: a global key handler / theme provider.
- Write comprehensive tests in: shortcut toggles theme, ignored while typing.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: focus in an input, repeated presses.
- Include the full test output in the PR description.
feat(theme): add a toggle-theme keyboard shortcut
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Extract a shared number-formatting module for the pairs and stats views" labels: type:refactor, area:format, stack:typescript, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
Number formatting is repeated across the pairs and stats views. This issue extracts a single tested module they consume.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Create a
lib/formatnumber module (currency/percent/decimals) and adopt it at the pair/stats sites. - Output unchanged for existing inputs; verified by tests.
- No new dependencies.
- Fork the repo and create a branch
git checkout -b refactor/format-01-number-module- Implement changes
- Write code in: create
lib/format; update call sites. - Write comprehensive tests in: table of inputs asserting unchanged output.
- Write code in: create
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: zero, negatives, rounding boundaries.
- Include the full test output in the PR description.
refactor(format): centralize number formatting
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Add a language selector to the code samples on the docs page" labels: type:feature, area:docs, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
Docs code samples are shown in a single language. This issue adds a selector (for example cURL, JavaScript) per endpoint.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Add an accessible per-endpoint language selector switching the shown sample; default to the current language.
- Persist the choice for the session; keep copy-to-clipboard working per language.
- Reuse the endpoint metadata.
- Fork the repo and create a branch
git checkout -b feature/docs-01-lang-selector- Implement changes
- Write code in: the docs endpoint/code-sample components.
- Write comprehensive tests in: selecting a language swaps the sample, copy still works.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: endpoint with one language only, unknown stored choice.
- Include the full test output in the PR description.
feat(docs): add code-sample language selector
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Add an explicit no-results empty state to the filtered pairs list" labels: type:feature, area:pairs, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
When a pairs filter matches nothing, the list renders blank with no guidance. This issue adds an accessible empty state.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Render a distinct, announced empty state when the active filter yields no pairs, with a clear-filter affordance.
- Keep it separate from the loading and error states.
- Reuse the existing filter state.
- Fork the repo and create a branch
git checkout -b feature/pairs-05-empty-state- Implement changes
- Write code in: the pairs list/results component.
- Write comprehensive tests in: empty renders guidance + clear affordance, clear restores results.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: empty vs loading vs error exclusivity.
- Include the full test output in the PR description.
feat(pairs): add no-results empty state
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated. ++++++
type: Feature title: "Group the Settings appearance controls with fieldset and legend" labels: type:a11y, area:settings, stack:nextjs, stack:react, MAYBE REWARDED, GRANTFOX OSS, OFFICIAL CAMPAIGN, Official Campaign | FWC26 assignees: ''
Related settings controls lack grouping semantics, making the form harder to navigate with assistive tech. This issue adds fieldset/legend grouping.
- Repository scope: StableRoute-Org/Stableroute-frontend only.
- Wrap related settings controls in fieldset/legend with meaningful legends.
- No change to the control behaviour or layout intent.
- Verify with an automated a11y assertion if available.
- Fork the repo and create a branch
git checkout -b a11y/settings-01-fieldset- Implement changes
- Write code in: the settings page.
- Write comprehensive tests in: groups expose an accessible name via legend.
- Test and commit
- Run
npm run lint,npm test, andnpm run build. - Cover edge cases: single-control group, nested groups.
- Include the full test output in the PR description.
a11y(settings): group controls with fieldset/legend
- Minimum 95 percent test coverage for impacted modules.
- Clear, reviewer-focused documentation.
- Timeframe: 96 hours.
- π¬ Join the StableRoute community on Discord: https://discord.gg/37aCpusvx
- β This is a GrantFox OSS / Official Campaign task and may be rewarded. When your PR is merged you'll be prompted to rate the project β a 5-star rating is much appreciated.