@santi020k/eslint-config-basic
Built a DX-first ESLint toolkit for JavaScript and TypeScript teams that want stronger defaults, less setup friction, and cleaner reviews.
Role
Creator
Timeline
Mar 1, 2024 - Present
Duration
2 yrs 2 mo
Stack
20 technologies
Project snapshot
@santi020k/eslint-config-basic · Creator
Open source, community work, and practical developer experience.
Case study notes
A closer look at the delivery decisions, technical tradeoffs, and product constraints behind this work.
Building a DX-first ESLint toolkit
I built @santi020k/eslint-config-basic to remove lint setup friction from the kind of projects I work on most: React, Next.js, Astro, TypeScript, and monorepos with real teams behind them. It is the successor to my original @santi020k/eslint-config-santi020k package, rebuilt from scratch around ESLint’s flat config format with a much wider framework footprint and better DX throughout.
🎯 Goals
- Reduce setup friction for new projects so teams can get to useful standards faster.
- Encode strong defaults based on real project work across front-end apps, tooling, Astro sites, and monorepos.
- Stay composable so different stacks can opt into the pieces they actually need instead of inheriting a giant monolith.
🛠️ What I built
- A composable ESLint core for JavaScript and TypeScript projects, with auto-detection for the frameworks and tools already in your repo.
- Optional packages for
React,Next.js,Astro,Vue,Svelte,Solid,Angular,NestJS,Expo,Qwik, andRemix. - A strict mode that promotes warnings to errors for CI/CD pipelines and stricter team workflows.
- First-class support for Tailwind CSS, Vitest, and Testing Library, plus documentation and examples that make adoption easier for teams, not just for me.
📈 Results
- Used by 30+ developers across personal, client, and shared codebases.
- Less repeated setup work whenever a new project or experiment starts.
- A reusable expression of my engineering standards in a form other teams can actually adopt and extend.
🧠 Why it matters
Linting is rarely the star of the show, but it changes how teams work. This project reflects how I think about developer tooling in general: remove friction, encode good defaults, and make quality easier to maintain at scale.