Docs: hand-duplicated props tables drift risk, missing a11y sections, no per-component changelog
Maintainers usually reply within 5 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- react, typescript
- Domain
- accessibility, documentation, frontend
Research direction
Start with apps/www/src/content/docs/components/button/props.ts, the corresponding button.tsx prop types, and apps/www/source.config.ts to understand the current table generation. Review the component docs for existing accessibility sections and packages/raystack/CHANGELOG.md for changelog data. Done means the documented props no longer drift, the named components have accessibility sections, and component changes are surfaced on their docs pages.
Written by the indexing model from the issue text.
Description
Summary
Component docs (apps/www) have the right shape — props table, live demo playground, accessibility notes — but three gaps showed up in a practices audit.
Issues found
-
Props tables are hand-duplicated and can drift. Each component has a shadow
props.tsfile (e.g.apps/www/src/content/docs/components/button/props.ts) read by fumadocs-typescript'sremarkAutoTypeTable(apps/www/source.config.ts:16-33,62) instead of being generated from the real component types. Comparingbutton/props.tsagainst the actualbutton.tsx:127-134union already shows props omitted from the doc. -
Accessibility sections are inconsistent. Present on Button, Dialog, Checkbox, Tabs, Select, Sidebar. Missing entirely on Combobox, Menu, ContextMenu, and DataView — notably the most complex component in the library has no accessibility documentation.
-
No per-component changelog. Only one repo-wide
packages/raystack/CHANGELOG.md(changesets-generated), and it isn't linked or surfaced anywhere on the apps/www docs site. Consumers browsing a component's docs page have no way to see what changed for that component.
Suggested approach
- Generate props tables directly from the real component source, or add a CI check that diffs the shadow
props.tsfiles against the actual exported prop types so drift fails a build instead of shipping silently. - Backfill Accessibility sections for combobox, menu, context-menu, and dataview.
- Surface per-component changelog entries on each docs page (even a filtered view of the existing changesets changelog would close most of the gap).
Notes
Found via a components.build practices audit (docs dimension).
- Dominant language
- TypeScript
- Stars
- 70
- Forks
- 13
- Avg merge
- 8d 8h
- Merged PRs (30d)
- 21
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from raystack/apsara
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 5 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 5 days
-
Difficulty 3/5 1-2 days Newbie friendliness 75/100
Maintainers usually reply within 5 days
-
bug global
Difficulty 4/5 3-5 days Newbie friendliness 48/100
raystack/apsara#878 · 1 assignee ·
Maintainers usually reply within 5 days
-
enhancement global
Difficulty 3/5 1-2 days Newbie friendliness 76/100
Maintainers usually reply within 5 days
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
callstackincubator/rozenite#518 ·
Maintainers usually reply within 1 day
-
Area/Workflow Priority/Blocker Type/Bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
wso2/product-integrator#2622 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
area:bash bug has repro platform:macos
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
anthropics/claude-code#98644 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
allure-framework/allure-js#1603 ·
Maintainers usually reply within 1 day