Public
Like
site
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.
This is a static React TSX frontend project with no build system.
deno check
deno lint
deno fmt
deno task dev # if defined in deno.json # or serve locally: python -m http.server 8000
No test framework configured. For manual testing:
- Open index.html in browser
- Test form submission functionality
- Verify transport field toggling
- Test React state management
- Language: TypeScript with TSX (React components)
- Runtime: Deno (Val Town environment)
- Framework: React 18.2.0 with pinned versions
- Styling: TailwindCSS via CDN
- Imports: Use
https://esm.sh
for external dependencies
- JSX Transform:
/** @jsxImportSource https://esm.sh/react@18.2.0 */
- React Version: All dependencies pinned to 18.2.0
- State Management: React useState hooks
- Styling: TailwindCSS classes (no CSS modules)
strict: true
- All strict checks enablednoImplicitAny: false
- Explicit any types allowed but discouraged- Include Val Town types:
"https://www.val.town/types/valtown.d.ts"
- DOM and Deno libraries available
- Files: camelCase for TSX files (App.tsx, index.tsx)
- Components: PascalCase (App, ServerConfig)
- Variables: camelCase
- Functions: camelCase, descriptive names
- Types/Interfaces: PascalCase
- Constants: UPPER_SNAKE_CASE
- Props: camelCase
- Components: Functional components with hooks
- State: useState for local component state
- Events: React event handlers (e.g., onChange, onSubmit)
- Props: TypeScript interfaces for component props
- Styling: TailwindCSS utility classes
- Use
const
by default,let
only when reassignment needed - Prefer arrow functions for callbacks
- Add TypeScript types for all data structures and props
- Handle errors gracefully with user-friendly messages
- Avoid
any
types - use proper interfaces - Keep components small and focused
- Use modern ES6+ features and React patterns
- Never bake secrets into code
- Use environment variables:
Deno.env.get('VAR_NAME')
- Validate and sanitize user inputs
- Use HTTPS for external requests
- No Node.js APIs available
- Use Val Town standard libraries when needed
- Follow Val Town platform limitations and gotchas
- HTML file serves as no-JS fallback
├── index.html # No-JS fallback with React app container
├── index.tsx # React app entry point
├── App.tsx # Main React component
├── deno.json # Deno configuration
├── AGENTS.md # Val Town development guidelines
├── CRUSH.md # This file
├── skills/ # Development skills documentation
│ └── val-town-development.md
└── .gitignore # Git ignore rules
```</content>
<parameter name="file_path">CRUSH.md