generated from cameronapak/freedom-stack
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.cursorrules
69 lines (61 loc) · 2.12 KB
/
.cursorrules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Technology Stack:
UI Layer:
- Framework: Astro
- Styling: TailwindCSS, Preline UI, DaisyUI
- Icons: Lucide Icons
- File Pattern: *.astro
- Rich Text Editor: TinyMCE (self-hosted)
Interactivity Layer:
- Language: TypeScript
- Frameworks: Alpine.js, HTMX
- Alpine Plugins: Intersect, Persist, Collapse, Mask
- File Pattern: *.ts, *.tsx
Backend Layer:
- ORM: Drizzle via Astro DB (when you import things from Drizzle, it'll be via "astro:db")
- Database: Astro DB (with libSQL/Turso)
- Authentication: Clerk
- Cache: Netlify
- Error Tracking: Sentry (optional)
- File Pattern: db/*.ts
Development Guidelines:
- Enforce strict TypeScript settings for type safety
- Use DaisyUI and TailwindCSS with utility-first approach
- Create modular, reusable Astro components
- Maintain clear separation of concerns
- Implement proper cache control headers
- Sanitize HTML content using DOMPurify
- Use Markdown for content formatting (marked)
Commit Message Standards:
- Use conventional commits with lowercase type and optional scope
- Keep messages concise (max 60 characters)
- Format: type(scope): description
- Include full commit command in suggestions
- Messages should be terminal-ready
Code Style Requirements:
- Indentation: 2 spaces
- Enable format on save
- Trim trailing whitespace
- Ensure final newline
- Include path/filename as first comment
- Write purpose-focused comments
- Follow DRY principles
- Prioritize modularity and performance
- Use Prettier with 120 character line length
- Format Astro files with dedicated parser
Environment Variables:
- ASTRO_DB_REMOTE_URL: libSQL connection URL
- ASTRO_DB_APP_TOKEN: libSQL auth token
- CLERK_SECRET_KEY: Clerk authentication
- CLERK_PUBLISHABLE_KEY: Clerk public key
- SENTRY_DSN: Error tracking (optional)
- SENTRY_AUTH_TOKEN: Sentry auth (optional)
- SENTRY_PROJECT: Sentry project ID (optional)
Documentation Resources:
- DaisyUI: https://daisyui.com/
- TailwindCSS: https://tailwindcss.com/
- Preline: https://preline.co/
- Astro DB: https://docs.astro.build/en/guides/astro-db
- Clerk: https://clerk.com/docs
- HTMX: https://htmx.org/
- Alpine.js: https://alpinejs.dev/
- Turso: https://docs.turso.tech/