Posts
21
Articles currently hosted on my site and cross-posted to Medium.
I write about full-stack systems, architecture, and the automation that helps teams ship with confidence. From backend services to delivery pipelines, I share what I learn along the way.
Popular topics
Posts
21
Articles currently hosted on my site and cross-posted to Medium.
Tags
56
Topics and themes covered in my writing across various publications.
Series
3
Grouped reading tracks so related posts are easier to follow in sequence.
Start with the latest piece, then browse the rest by topic and depth.
AI speeds up code changes, but ESLint, tests, snapshots, and end-to-end checks are what keep probabilistic output from turning into production risk.
In series: The santi020k way · Part 10
Why I deprecated @santi020k/eslint-config-santi020k in favor of a composable monorepo with clearer packages, better docs, and stronger DX.
In series: ESLint in Practice · Part 3
Positive conditionals usually reduce mental load and make branches easier to scan, review, and change.
In series: The santi020k way · Part 9
A release process should lower stress, tighten feedback loops, and make production changes easier to trust.
In series: The santi020k way · Part 8
The version of coding standards I would actually hand to a growing frontend team today.
In series: The santi020k way · Part 7
Responsive work gets easier when breakpoints and layout decisions are treated like a shared system.
In series: The santi020k way · Part 6
Simple commit and pull-request habits that reduce review friction and make collaboration calmer.
In series: The santi020k way · Part 5
A lightweight review language that makes feedback clearer, kinder, and easier to act on.
In series: The santi020k way · Part 4
Replace ad-hoc string literals with clearer domain language, stronger typing, and safer refactors.
In series: The santi020k way · Part 3
The code smells that usually predict rising maintenance cost before a team feels the full pain.
In series: The santi020k way · Part 2
Why strong engineers care about product outcomes, users, and system health instead of stopping at ticket completion.
In series: The santi020k way · Part 1
Reusable ESLint library for React, Next.js, and TypeScript projects. Enforces code quality with flat config support and simplifies the move from ESLint 8 to 9.
In series: ESLint in Practice · Part 2
A practical guide to moving from ESLint 8 to flat config in ESLint 9, with a cleaner setup for React, Next.js, and TypeScript projects.
In series: ESLint in Practice · Part 1
A practical approach to authentication and authorization in Next.js with Supabase, focused on SSR, route protection, and keeping auth logic understandable.
In series: Building a Production Next.js App · Part 7
A practical CI/CD setup for Next.js projects using GitHub Actions so linting, tests, and builds become part of the delivery process instead of an afterthought.
In series: Building a Production Next.js App · Part 6
A practical setup for testing React components with Vitest and React Testing Library, focused on behavior, confidence, and maintainable frontend code.
In series: Building a Production Next.js App · Part 5
Convert a standalone MongoDB instance to a replica set on macOS using Homebrew. Covers mongod.conf changes, replication settings, and local verification steps.
Set up Storybook in a Next.js project with Tailwind and TypeScript. Build isolated UI components, write stories, and improve design system collaboration.
In series: Building a Production Next.js App · Part 4
A practical Husky setup for Next.js projects so linting, testing, and pre-push checks become part of the team workflow instead of a last-minute cleanup step.
In series: Building a Production Next.js App · Part 3
Configure ESLint for Next.js with TypeScript and Vitest integration. Covers code quality rules, import conventions, and a scalable setup for React projects.
In series: Building a Production Next.js App · Part 2
Structure React projects using Atomic Module Components — covering file layout, naming conventions, and scalability patterns for growing TypeScript codebases.
In series: Building a Production Next.js App · Part 1
A new blog section collecting the principles I keep returning to around ownership, code quality, feedback, responsive thinking, and calmer releases.
This series turns a private set of notes into public writing. The throughline is simple: stronger teams care about the whole system, not just the local task in front of them.
The posts cover ownership, code smells, review language, Git habits, responsive standards, team conventions, release discipline, and small readability choices that compound over time.
Focus areas
It is the right track if you want the cultural and operational rules behind how I like to build software teams, not only the framework-specific implementation details.
Related posts now live in clearer tracks, so topics like Next.js delivery systems and ESLint tooling feel like connected reading instead of isolated entries.
A practical sequence for turning a fresh Next.js codebase into a product teams can lint, test, document, deploy, and secure with confidence.
A guided walkthrough from project structure to auth and delivery.
Browse seriesA focused track on config design, migrations, and the standards work that keeps code reviews sharper without slowing teams down.
Evergreen tooling notes for teams standardizing JavaScript and TypeScript work.
Browse seriesA running set of principles on ownership, review quality, code clarity, responsive thinking, and releases that do not rely on heroics.
Opinionated field notes on how strong software teams stay clear, calm, and accountable.
Browse seriesOne flagship post each month, plus one refresh to an older evergreen article so the archive keeps compounding instead of aging in place. The current roadmap runs from April 2026 through September 2026 so the site keeps growing on a predictable rhythm instead of in bursts.
Refreshing: Continuous Integration and Deployment for Next.js Projects
Refreshing: Testing React Components with Vitest and React Testing Library
Refreshing: Development Workflow with Husky for Next.js, ESLint, and Vitest Integration