

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
1234# Page Component Guidelines56## PAGE ARCHITECTURE RULES78### Pages are COMPOSITION ONLY9Pages should be thin orchestration layers that compose smaller components:1011```tsx12// PERFECT: Page as composition layer (10-30 lines max)13const DashboardPage = () => {14 return (15 <PageLayout>16 <DashboardHeader />17 <DashboardMetrics />18 <div className="grid grid-cols-1 lg:grid-cols-2 gap-6">19 <DashboardCharts />20 <DashboardActivity />21 </div>22 </PageLayout>23 )24}2526// NEVER: Business logic in pages27const BadDashboardPage = () => {28 const [users, setUsers] = useState([])29 const [loading, setLoading] = useState(true)3031 useEffect(() => {32 // 50+ lines of data fetching logic33 }, [])3435 // 200+ lines of rendering logic36 return <div>{/* massive JSX */}</div>37}38```3940### Page Organization Rules411. **Import dependencies** (max 5-8 imports)422. **Call custom hooks** for data/state (1-3 hooks max)433. **Return JSX composition** (10-20 lines max)444. **No business logic** - extract to hooks or services455. **No inline handlers** - extract to components or hooks4647### Data Loading Pattern48```tsx49```tsx50// PERFECT: Data loading in custom hooks51const UserProfilePage = () => {52 const { user, isLoading, error } = useUser()5354 if (isLoading) return <LoadingSpinner />55 if (error) return <ErrorMessage error={error} />5657 return (58 <PageLayout>59 <UserHeader user={user} />60 <UserDetails user={user} />61 <UserActivity user={user} />62 </PageLayout>63 )64}65```66```6768### Page File Structure69```70src/pages/71├── Index.tsx # Landing page72├── Dashboard.tsx # Main dashboard73├── Users/74│ ├── UsersPage.tsx # Users list page75│ └── UserDetail.tsx # Single user page76├── Settings/77│ ├── SettingsPage.tsx78│ └── ProfilePage.tsx79└── NotFound.tsx # 404 page80```8182```
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 |
|---|---|---|---|---|---|
| chihebnabil/lovable-boilerplate.github/instructions/architecture.instructions.md · 65 | Copilot instructions | stylearchtypesdatabase+2 | 69/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/core.mdc · 65 | Cursor rules | buildlint-formatarchui+1 | 92/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/forms.mdc · 65 | Cursor rules | setupstyledo-not | 73/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/hooks.mdc · 65 | Cursor rules | styleuido-not | 61/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/quality.mdc · 65 | Cursor rules | buildlint-formatstyleui+3 | 88/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/services.mdc · 65 | Cursor rules | archtypesdo-not | 73/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/typescript.mdc · 65 | Cursor rules | setupstyletypessecurity+2 | 73/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/components.instructions.md · 65 | Copilot instructions | styleuido-not | 61/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/design.instructions.md · 65 | Copilot instructions | lint-formatstyleuido-not | 61/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/development.instructions.md · 65 | Copilot instructions | setupbuildtestlint-format+7 | 88/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/global.instructions.md · 65 | Copilot instructions | buildlint-formatstylearch+4 | 100/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/hooks.instructions.md · 65 | Copilot instructions | styleui | 54/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/lib.instructions.md · 65 | Copilot instructions | archtypesdo-not | 69/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/quality.instructions.md · 65 | Copilot instructions | lint-formatdeploymentdo-not | 63/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.github/instructions/reusable.instructions.md · 65 | Copilot instructions | uido-notagent-behaviour | 32/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/components.mdc · 65 | Cursor rules | stylearchuido-not | 65/100 | 14 days ago | |
| chihebnabil/lovable-boilerplate.cursor/rules/design.mdc · 65 | Cursor rules | styleuido-not | 65/100 | 14 days ago | |
| chihebnabil/lovable-boilerplateCLAUDE.md · 65 | CLAUDE.md | setupbuildtestlint-format+5 | 89/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| chihebnabil/lovable-boilerplate.github/instructions/global.instructions.md · 65 | Copilot instructions | buildlint-formatstylearch+4 | 100/100 | 14 days ago | |
| louislam/uptime-kuma.github/copilot-instructions.md · 90k | Copilot instructions | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| bagisto/bagisto.github/copilot-instructions.md · 28k | Copilot instructions | setupbuildteststyle+5 | 97/100 | 14 days ago | |
| JCodesMore/ai-website-cloner-template.github/copilot-instructions.md · 32k | Copilot instructions | buildlint-formatstylearch+3 | 97/100 | 7 days ago | |
| nerolis-lab/nerolis-lab.github/copilot-instructions.md · 32 | Copilot instructions | setupbuildtestlint-format+11 | 96/100 | 14 days ago | |
| darkmatter/nixmac.github/copilot-instructions.md · 25 | Copilot instructions | setupbuildtestlint-format+8 | 96/100 | 14 days ago | |
| thangaram611/second-brain.github/copilot-instructions.md · 0 | Copilot instructions | setupteststylearch+4 | 96/100 | 14 days ago | |
| doubts-suplab/eeik-bootstrap.github/instructions/cdk-terraform.instructions.md · 1 | Copilot instructions | teststylearchtypes+2 | 96/100 | today |
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/chihebnabil-lovable-boilerplate-github-instructions-pages-instructions)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.