Ultracite/Biome linting and formatting standards for TypeScript, React, async code, security, and performance. Activate when writing or reviewing code quality, linting, or formatting.
This project uses Ultracite, a zero-config Biome preset that enforces strict code quality standards through automated formatting and linting.
npx ultracite fixnpx ultracite checknpx ultracite doctorBiome (the underlying engine) provides extremely fast Rust-based linting and formatting. Most issues are automatically fixable.
Write code that is accessible, performant, type-safe, and maintainable. Focus on clarity and explicit intent over brevity.
unknown over any when the type is genuinely unknownas const) for immutable values and literal typesfor...of loops over .forEach() and indexed for loops?.) and nullish coalescing (??) for safer property accessconst by default, let only when reassignment is needed, never varawait promises in async functions - don't forget to use the return valueasync/await syntax instead of promise chains for better readabilitykey prop for elements in iterables (prefer unique IDs over array indices)<button>, <nav>, etc.) instead of divs with rolesconsole.log, debugger, and alert statements from production codeError objects with descriptive messages, not strings or other valuestry-catch blocks meaningfully - don't catch errors just to rethrow themrel="noopener" when using target="_blank" on linksdangerouslySetInnerHTML unless absolutely necessaryeval() or assign directly to document.cookie<Image>) over <img> tagsNext.js:
<Image> component for imagesnext/head or App Router metadata API for head elementsReact 19+:
React.forwardRefSolid/Svelte/Vue/Qwik:
class and for attributes (not className or htmlFor)it() or test() blocks.only or .skip in committed codedescribe nestingBiome's linter will catch most issues automatically. Focus your attention on:
Most formatting and common issues are automatically fixed by Biome. Run npx ultracite fix before committing to ensure compliance.