Skip to main content

Blog

Updates and insights from the Nova team

Jacky Liang

3 posts

Composable ESLint Presets: Layers Instead of Inheritance

Most ESLint flat configs start the same way. You spread a popular shared config into your array, add your overrides, and move on. But as the project grows — more workspaces, more file types, more framework-specific needs — the config grows with it. You end up with a single array where language rules, environment globals, and framework conventions are tangled together, and figuring out which object added which rule means reading the whole thing top to bottom.

Nova's presets are designed to keep that clean. Each preset handles one concern, and you compose them into exactly the combination your workspace needs.

Introducing Nova: Stop Configuring, Start Building

You know the routine. New repo, new hour of setup. Copy your ESLint config from the last project, update the deprecated rules, wire up TypeScript, realize the TSConfig options changed again, scaffold the folder structure from memory, forget half the fields in package.json, and finally — an hour later — write your first line of actual code.

Now multiply that by every workspace in a monorepo.

Nova exists because that hour should be zero.