rust-coasts-new-community-form
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
- No explicit test/lint commands - Val Town platform handles these automatically
- Development: Val Town auto-deploys on changes, no local build needed
- Database: SQLite migrations run automatically on startup in backend/index.ts
- Val Town Project: Community interest capture system with location-based pages and admin dashboard
- Backend: Hono API server (backend/index.ts) handling community interest submissions and admin features
- Frontend: React 18.2.0 with TypeScript (frontend/index.tsx, components/)
- Database: SQLite with community interest table (community_interest_1) and legacy talk submissions (talk_submissions_3)
- Discord Integration: Maintained for future event coordination (optional)
- Shared: TypeScript types and utilities (shared/types.ts)
- Language: TypeScript/TSX with React 18.2.0
- Imports: Use
https://esm.sh
for npm packages, pin React to 18.2.0 - Types: Add TypeScript types for all data structures (see shared/types.ts)
- Secrets: Always use environment variables, never hardcode secrets
- JSX: Start React files with
/** @jsxImportSource https://esm.sh/react@18.2.0 */
- Styling: CSS-in-JS inline styles with CSS custom properties, no external CSS frameworks
- Typography: Instrument Serif for headings (.font-heading), system monospace for body text
- Color System: Use CSS custom properties (--bg-primary, --text-primary, --accent-primary, etc.)
- Error Handling: Let errors bubble up with context, avoid empty catch blocks
- Database: Change table names (e.g., _3, _4) when modifying schemas instead of ALTER TABLE
- Platform: Use Val Town utils for file operations (readFile, serveFile)
- Role Mentions: Use
<@&ROLE_ID>
format in message content - User Mentions: Use
<@USER_ID>
format in message content - Channel Mentions: Use
<#CHANNEL_ID>
format in message content - Special Mentions:
@everyone
and@here
work as plain text (no ID needed) - Permissions: Role must be mentionable OR bot needs "Mention Everyone" permission
- Max Width: 480px for forms, 1200px for admin/directory pages
- Spacing: 4px base unit (4, 8, 12, 16, 24, 32, 48, 64px)
- Border Radius: 4px throughout
- Typography Scale: 48px/36px/24px/20px/18px/16px/14px/12px
- Component Patterns: Card-based layout with subtle shadows and borders