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:
{
"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
| Rule | Setting | Description |
|---|---|---|
useFilenamingConvention | off | Disable 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?