

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456## Technologies used78- **React & Astro** - Build interactive UIs with React components in Astro9- **tRPC** - End-to-end type-safe APIs without schemas or code generation10- **Tailwind CSS** - Utility-first CSS framework for rapid UI development11- **TypeScript** - Full type safety across all packages12- **Turborepo** - High-performance build system for JavaScript/TypeScript monorepos13- **PNPM Workspaces** - Fast, disk-efficient package management14- **ESLint & Prettier** - Code quality tools configured and ready to use15- **Renovate** - Automated dependency updates16- **Auth** - We use better-auth17- **DB** - We use postgres and kysely as the client.1819# Code Conventions2021When writing or modifying code in this project, please adhere to the following conventions:22231. **TypeScript Best Practices**: Follow standard, idiomatic TypeScript coding practices for structure, naming, and types, unless otherwise overridden.242. **Minimal Comments**: Avoid adding comments unless they explain complex logic or non-obvious decisions. Well-written, self-explanatory code is preferred. Do not add comments that merely restate what the code does.253. **Tests as Documentation**: Rely on comprehensive tests (which will be added later if not present) to document the behavior and usage of the code, rather than extensive comments within the code itself.264. **File naming conventions**: Use kebab-case when naming directories, TypeScript, and other files.275. **Type checking**: after major modifications run `pnpm typecheck` and fix any errors.286. **UX/UI** We are using Tailwind CSS, React, shadcn/ui components and Lucide React icons. Generate responsive designs. Provide default props for React Components. Check to see if a shadcn component exists under `apps/webs/src/components/ui` before installing it.297. **Models/db/tables** When pulling in a database type, use:3031```typescript32import type { Conversation } from '@app/db/types'33import type { Selectable } from 'kysely'3435interface ConversationItemProps {36 conversation: Selectable<Conversation>37}38```39408. **Installing packages**. We are using a pnpm Monorepo or Workspace. Typically when you install a pnpm package, you'll want to install it either in an app or you'll install it inside of a package. For example `pnpm add uuid --filter @app/web && pnpm add -D @types/uuid --filter @app/web`41429. **Actions Pattern**: Organize server-side logic in the `packages/api/src/actions` directory following this structure:43 - **Getters** (`getters.ts`) - Functions that retrieve data from the database44 - **Setters** (`setters.ts`) - Functions that create or update data45 - **Validators** (`validators.ts`) - Functions that validate input data46 - **Checkers** (`checkers.ts`) - Functions that check permissions and authorization47 - **Domain-specific logic** - Additional files for complex business logic (e.g., `process-inbound.ts`)4849 Example structure:50```51 packages/api/src/actions/emails/52 ├── getters.ts # getProjectInboundEmailAddress()53 ├── setters.ts # createProjectInboundEmailToken()54 ├── validators.ts # validateMailgunWebhook()55 ├── checkers.ts # assertProjectEmailPermission()56 └── process-inbound.ts # processInboundEmail()57```585910. **API Exports for apps/web**: To make functions and types from `packages/api` available in `apps/web`, you MUST export them in `packages/api/src/index.ts`:6061```typescript62 // packages/api/src/index.ts6364 // Export functions65 export { processInboundEmail } from './actions/emails/process-inbound'66 export { getProjectInboundEmailAddress } from './actions/emails/getters'6768 // Export types69 export type { MailgunWebhookSchema } from './actions/emails/process-inbound'70```7172 Then in `apps/web`, import from `@app/api`:73```typescript74 // ✅ Correct - imports from the package export75 import { processInboundEmail, MailgunWebhookSchema } from '@app/api'7677 // ❌ Wrong - direct file imports will fail78 import { processInboundEmail } from '@app/api/src/actions/emails/process-inbound'79```8081 **Important**: If you forget to export in `index.ts`, the import will fail with linting/type errors.828384Only make the exact changes I request—do not modify, remove, or alter any other code, styling, or page elements unless explicitly instructed. If my request conflicts with existing code, styling, or functionality, or if you anticipate any issues, pause execution and notify me for confirmation before proceeding. Always follow this rule for every modification. If in doubt, ask before making any change.85
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 |
|---|---|---|---|---|---|
| poglesbyg/htsf-consultant.cursor/rules/always.mdc · 0 | Cursor rules | test | 35/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/crispr-algorithms.mdc · 0 | Cursor rules | deployment | 44/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/data-models.mdc · 0 | Cursor rules | typessecuritydatabase | 44/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/database.mdc · 0 | Cursor rules | typesdatabasedo-not | 61/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/env-vars.mdc · 0 | Cursor rules | securitydo-not | 63/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/react.mdc · 0 | Cursor rules | style | 34/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/shadcn-components.mdc · 0 | Cursor rules | ui | 63/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/smart-polling.mdc · 0 | Cursor rules | no sections | 44/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/trpc-architecture.mdc · 0 | Cursor rules | archtypes | 56/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/trpc.mdc · 0 | Cursor rules | no sections | 40/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursor/rules/typescript.mdc · 0 | Cursor rules | styletypesdo-not | 55/100 | 14 days ago | |
| poglesbyg/htsf-consultant.cursorrules · 0 | .cursorrules | archdeploymentagent-behaviour | 48/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/poglesbyg-htsf-consultant-cursor-rules-code-conventions)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.