- Build:
bun run build- Compiles to native binary for macOS ARM64 - Dev:
bun dev- Runs the application in development mode - Format/Lint:
bun fmt- Runs ultracite linting and formatting - No tests configured - Add test files to
src/and configure in package.json if needed
- TypeScript with strict mode enabled (
tsconfig.json) - Bun runtime with Node.js compatibility
- Effect library for functional programming patterns
- Line width: 120 characters
- Indentation: Tabs (2 spaces wide)
- Quotes: Single quotes
- Semicolons: As needed
- Trailing commas: All
- Path aliases:
@/lib/*→src/lib/*
- Imports: External libraries first, then relative imports
- prefer named imports/exports over default imports or namespace imports
- Naming: camelCase for functions/variables, PascalCase for types, kebab-case for file names
- Error handling: Throw errors for invalid states, use Effect for side effects
- use comments sparingly only when needed to explain something not otherwise obvious
- File structure: Main logic in
src/, utilities insrc/lib/ - prefer
async/awaitover promises - prefer Type over Interface
- prefer
functionoverconstfor functions
- Use existing libraries: Effect, @effect/cli, @clack/prompts
- Check package.json before adding new dependencies
- Follow functional programming patterns with Effect