Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
project-best-practices - Skill - OpenSmartRoute
Skillv1.0.0
project-best-practices
`TypeScript strict`: `tsconfig.json` keeps `strict: true`, `verbatimModuleSyntax`, and path aliases (`@/*`, `@db/*`) so every module resolves with full type safety. - `Lint-first workflow`: `eslint.co
Instruction file imported from hanzlah101/mehfil (.cursor/rules/project-best-practices.mdc). Copyright stays with the author.
TypeScript strict: tsconfig.json keeps strict: true, verbatimModuleSyntax, and path aliases (@/*, @db/*) so every module resolves with full type safety.
Lint-first workflow: eslint.config.ts enforces React + Hooks rules, consistent type-only imports, and treats unused identifiers as errors unless they’re prefixed with _.
Prettier + Tailwind order: prettier.config.mjs runs prettier-plugin-tailwindcss with project-specific utility lists to auto-sort classes and keep CSS atomic.
Design system primitives: reusable, accessible UI lives in app/components/ui/*, built on Radix primitives, class-variance-authority, and tailwind-merge to keep variants declarative.
Domain-scoped modules: features such as events, meals, staff, and venues each keep their forms, dialogs, and lists under app/components/<feature> plus matching Zustand stores in app/stores.
Schema-driven forms: Zod schemas in app/validations/* pair with @tanstack/react-form hooks (app/hooks/form-hooks.tsx) so validation, defaults, and submission share a single source of truth.
Auth + data providers: app/providers/convex-provider.tsx composes Convex, BetterAuth, and React Query clients with toast-based error handling, ensuring every screen shares caching + auth state.
Utility-first helpers: cross-cutting helpers in app/lib/* (cn, date formatters, permissions, constants) centralize business rules so components stay presentational.
Use it
Copy one of these into your project. Installing also returns the manifest and these snippets.
yaml
targets:
- https://api.opensmartroute.ai/api/v1/registry/hanzlah101-mehfil-project-best-practices-rule/manifest # or paste the manifest below
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.