Remix

Remix-specific linting rules for Ultracite (also compatible with TanStack Router and React Router).

The Remix configuration has file naming conventions for route files. This configuration is also compatible with TanStack Router, React Router, and other file-based routing systems.

Installation

Add the Remix configuration to your biome.jsonc:

biome.jsonc
{
  "extends": ["ultracite/core", "ultracite/remix"]
}

Overview

This configuration provides special handling for route files that use filesystem-based routing conventions:

  • Route File Naming: Disables strict filename conventions for route files
  • Flexible Patterns: Supports Remix's route naming patterns (dots, dollars, underscores)
  • Framework Agnostic: Works with Remix, TanStack Router, React Router, and similar systems

File Pattern Overrides

The configuration applies overrides to route files in these patterns:

  • **/routes/**/*.{tsx,ts} - Remix v1 routes
  • **/app/routes/**/*.{tsx,ts} - Remix v2 routes

Disabled Rules for Route Files

RuleSettingDescription
useFilenamingConventionoffDisable kebab-case filename enforcement for route files. Allows special route naming patterns.

Why This Configuration Exists

File-based routing systems use special characters in filenames to represent routing patterns:

  • . (dot) - Represents path segments (e.g., posts.new.tsx/posts/new)
  • $ (dollar) - Represents dynamic segments (e.g., posts.$id.tsx/posts/:id)
  • _ (underscore) - Represents layout routes or pathless routes

These naming conventions conflict with Ultracite's default kebab-case filename requirement, so this configuration disables that rule specifically for route files.

How is this guide?