

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456Leverage strings with drizzle types, instead of enums:7`status: text("status").$type<pending | cancelled |error >().notNull()`89Only use varchar for ids, similiar to the users table. Otherwise use text.1011When creating a new table, leverage the id util `packages/id/src/generate.ts`12<new_table_prefix>13```ts14`packages/id/generate.ts`1516const prefixes = {17 post: "post",18 property: "prop",19 // Add new prefixes here20} as const;21```22For generate.ts, all you have to do is add the table name (or varation) as a key to the const. No need to use nanoid or change any other code.23Also abbreviate longer words, i.e property: "cust",24252627Then inside `packages/db/schema.ts` you can use it like so:28```ts29export const properties = pgTable("properties", {30 id: varchar("id", { length: 255 })31 .primaryKey()32 .$defaultFn(() => newId("property"))33}34```35</new_table_prefix>3637Users table doesn't need items like avatar or name, unless specificially required to sync via clerk38
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 |
|---|---|---|---|---|---|
| sullyo/webapp-starter.cursor/rules/api.mdc · 870 | Cursor rules | setuptesttypessecurity+3 | 78/100 | today | |
| sullyo/webapp-starter.cursor/rules/frontend.mdc · 870 | Cursor rules | setuptestlint-formatstyle+7 | 91/100 | today |
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/sullyo-webapp-starter-cursor-rules-db)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.