Zeno

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:fix

Configuration

The root biome.jsonc extends Ultracite presets:

biome.jsonc
{
  "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 useSortedClasses rule (also sorts clsx calls)
  • Sorted object keys via the useSortedKeys assist action

Overrides

The repo includes overrides for specific packages. For example, packages/ui has relaxed rules for Shadcn UI components:

biome.jsonc
{
  "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.