Linting & Formatting
Code quality with Ultracite and Biome
Zeno uses Ultracite, a zero-config preset built on Biome for lightning-fast linting and formatting.
You never have to configure linting or formatting rules from scratch. Ultracite provides production-ready presets for TypeScript, React, and Next.js — just extend and start coding. Biome runs orders of magnitude faster than ESLint + Prettier, so linting the entire monorepo takes milliseconds.
Commands
# Check for issues
pnpm lint
# Auto-fix issues
pnpm lint:fixConfiguration
The root biome.jsonc extends Ultracite presets:
{
"extends": [
"ultracite/biome/core",
"ultracite/biome/react",
"ultracite/biome/next"
]
}Formatting
Biome handles all formatting with these settings:
- Double quotes for strings
- Semicolons as needed (ASI)
- Sorted Tailwind classes via the
useSortedClassesrule (also sortsclsxcalls) - Sorted object keys via the
useSortedKeysassist action
Overrides
The repo includes overrides for specific packages. For example, packages/ui has relaxed rules for Shadcn UI components:
{
"overrides": [
{
"includes": ["packages/ui/src/**"],
"linter": {
"rules": {
"correctness": {
"useExhaustiveDependencies": "off"
}
}
}
}
]
}Add package-specific overrides in the root biome.jsonc as needed.
Editor Integration
Biome integrates with Cursor/VSCode for real-time feedback. See IDE Setup for extension and settings configuration.