

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1234567# React Component Development Guidelines89## Folder & File Structure1011- Each component must reside in its own folder named in PascalCase.12- The main implementation should be in a file matching the folder name (e.g., `ExampleComponent/ExampleComponent.tsx`).13- Export the component via an `index.ts` file using default export:14```ts15 import ExampleComponent from "./ExampleComponent";16 export default ExampleComponent;17```1819## Props & Types2021- Define the props interface as `iComponentNameProps`.22- Define and export any supporting complex types/interfaces in the same file.23- Props should be typed strictly using TypeScript.24- Use destructuring to access props.2526## Styling & Responsiveness2728- Components must be responsive by default.29- Prefer Tailwind CSS utility classes over custom styles.30- Avoid hardcoded layout values unless necessary.3132## Code Structure3334- Use PascalCase for component and file names.35- Ensure code is readable and maintainable.36- Use internal render functions for modularizing JSX when needed.37- Avoid nested conditionals.38- Minimize conditionals using early returns, ternaries, or extracted helpers.3940## Documentation4142- Add inline comments for sections, explaining the logic and structure.43- When using useState, useEffect, or variables:44 - Use self-explanatory variable names.45 - Add comments describing the state’s purpose and usage.4647## Example4849```tsx50type iExampleComponentProps = {51 id?: ComponentIdType;52 label: string;53};5455const ExampleComponent: FC<iExampleComponentProps> = ({ id, label }) => {56 return (57 <div id={id}>58 <text>Example Component {label}</text>59 </div>60 );61};62```6364## Reusability6566- Create wrapper components instead of altering library defaults (e.g., ShadCN).67- Ensure all public-facing components are composable.68
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| PluteoJS/next-js-typescript-starter.cursor/rules/project-structure.mdc · 3 | Cursor rules | stylearch | 33/100 | 14 days ago | |
| PluteoJS/next-js-typescript-starter.cursor/rules/project-ui-style-guide.mdc · 3 | Cursor rules | lint-formatstylearchui+1 | 77/100 | 14 days ago | |
| PluteoJS/next-js-typescript-starter.cursor/rules/react-typescript.mdc · 3 | Cursor rules | stylearchtypesui | 58/100 | 14 days ago | |
| PluteoJS/next-js-typescript-starter.cursor/rules/shadcn-usage.mdc · 3 | Cursor rules | uido-not | 40/100 | 14 days ago | |
| PluteoJS/next-js-typescript-starter.cursor/rules/typescript-coding.mdc · 3 | Cursor rules | styletypesdocs | 58/100 | 14 days ago | |
| PluteoJS/next-js-typescript-starterCLAUDE.md · 3 | CLAUDE.md | lint-formatarchtypesdo-not | 88/100 | 14 days ago | |
| PluteoJS/next-js-typescript-startersrc/components/CLAUDE.md · 3 | CLAUDE.md | archdo-not | 47/100 | 14 days ago | |
| PluteoJS/next-js-typescript-startersrc/services/CLAUDE.md · 3 | CLAUDE.md | setuparchtypessecurity+1 | 54/100 | 14 days ago | |
| PluteoJS/next-js-typescript-startersrc/store/CLAUDE.md · 3 | CLAUDE.md | stylearch | 58/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 46 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/pluteojs-next-js-typescript-starter-cursor-rules-react-component)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.