{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Santiago Molina JSON Feed",
  "description": "Writing on software architecture, automation, developer experience, and calmer delivery systems.",
  "home_page_url": "https://santi020k.com/",
  "feed_url": "https://santi020k.com/feed.json",
  "language": "en-US",
  "authors": [
    {
      "name": "Santiago Molina",
      "url": "https://santi020k.com/"
    }
  ],
  "items": [
    {
      "id": "https://santi020k.com/blog/muted-commands-make-ai-automation-faster-and-cheaper/",
      "url": "https://santi020k.com/blog/muted-commands-make-ai-automation-faster-and-cheaper/",
      "title": "Muted Commands Make AI Automation Faster and Cheaper",
      "summary": "AI agents rerun checks constantly. Quiet logs, compact reporters, and parallel verification reduce token waste without lowering the quality bar.",
      "content_text": "AI agents rerun checks constantly. Quiet logs, compact reporters, and parallel verification reduce token waste without lowering the quality bar.",
      "date_published": "2026-04-29T15:00:00.000Z",
      "tags": [
        "ai",
        "automation",
        "developer-experience",
        "testing",
        "ci-cd"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/ai-coding-is-probabilistic-your-delivery-process-should-not-be/",
      "url": "https://santi020k.com/blog/ai-coding-is-probabilistic-your-delivery-process-should-not-be/",
      "title": "AI Coding Is Probabilistic. Your Delivery Process Should Not Be.",
      "summary": "AI speeds up code changes, but ESLint, tests, snapshots, and end-to-end checks are what keep probabilistic output from turning into production risk.",
      "content_text": "AI speeds up code changes, but ESLint, tests, snapshots, and end-to-end checks are what keep probabilistic output from turning into production risk.",
      "date_published": "2026-04-15T15:30:00.000Z",
      "tags": [
        "ai",
        "eslint",
        "testing",
        "e2e",
        "developer-experience"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/why-i-moved-my-eslint-library-to-eslint-config-basic/",
      "url": "https://santi020k.com/blog/why-i-moved-my-eslint-library-to-eslint-config-basic/",
      "title": "Why I Moved My ESLint Library to @santi020k/eslint-config-basic",
      "summary": "Why I deprecated @santi020k/eslint-config-santi020k in favor of a composable monorepo with clearer packages, better docs, and stronger DX.",
      "content_text": "Why I deprecated @santi020k/eslint-config-santi020k in favor of a composable monorepo with clearer packages, better docs, and stronger DX.",
      "date_published": "2026-04-01T18:30:00.000Z",
      "tags": [
        "eslint",
        "flat-config",
        "developer-experience",
        "open-source",
        "typescript"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/avoid-inverted-conditionals-when-clarity-matters/",
      "url": "https://santi020k.com/blog/avoid-inverted-conditionals-when-clarity-matters/",
      "title": "Avoid Inverted Conditionals When Clarity Matters",
      "summary": "Positive conditionals usually reduce mental load and make branches easier to scan, review, and change.",
      "content_text": "Positive conditionals usually reduce mental load and make branches easier to scan, review, and change.",
      "date_published": "2025-10-13T12:56:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "readability",
        "javascript",
        "frontend",
        "clean-code"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/a-release-process-that-reduces-drama/",
      "url": "https://santi020k.com/blog/a-release-process-that-reduces-drama/",
      "title": "A Release Process That Reduces Drama",
      "summary": "A release process should lower stress, tighten feedback loops, and make production changes easier to trust.",
      "content_text": "A release process should lower stress, tighten feedback loops, and make production changes easier to trust.",
      "date_published": "2025-10-05T18:44:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "release-management",
        "git",
        "qa",
        "delivery"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/code-standards-that-scale-with-a-team/",
      "url": "https://santi020k.com/blog/code-standards-that-scale-with-a-team/",
      "title": "Code Standards That Scale With a Team",
      "summary": "The version of coding standards I would actually hand to a growing frontend team today.",
      "content_text": "The version of coding standards I would actually hand to a growing frontend team today.",
      "date_published": "2025-09-14T14:18:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "engineering-standards",
        "typescript",
        "frontend",
        "team-process"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/responsive-design-standards-that-scale-across-components/",
      "url": "https://santi020k.com/blog/responsive-design-standards-that-scale-across-components/",
      "title": "Responsive Design Standards That Scale Across Components",
      "summary": "Responsive work gets easier when breakpoints and layout decisions are treated like a shared system.",
      "content_text": "Responsive work gets easier when breakpoints and layout decisions are treated like a shared system.",
      "date_published": "2025-09-12T16:40:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "responsive-design",
        "frontend",
        "design-systems",
        "ui-engineering"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/git-best-practices-for-calm-collaboration/",
      "url": "https://santi020k.com/blog/git-best-practices-for-calm-collaboration/",
      "title": "Git Best Practices for Calm Collaboration",
      "summary": "Simple commit and pull-request habits that reduce review friction and make collaboration calmer.",
      "content_text": "Simple commit and pull-request habits that reduce review friction and make collaboration calmer.",
      "date_published": "2025-07-21T13:10:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "git",
        "pull-requests",
        "collaboration",
        "developer-experience"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/write-better-review-feedback-with-conventional-comments/",
      "url": "https://santi020k.com/blog/write-better-review-feedback-with-conventional-comments/",
      "title": "Write Better Review Feedback with Conventional Comments",
      "summary": "A lightweight review language that makes feedback clearer, kinder, and easier to act on.",
      "content_text": "A lightweight review language that makes feedback clearer, kinder, and easier to act on.",
      "date_published": "2025-05-17T17:34:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "code-review",
        "engineering-culture",
        "communication",
        "git"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/avoid-magic-strings-in-typescript-and-javascript/",
      "url": "https://santi020k.com/blog/avoid-magic-strings-in-typescript-and-javascript/",
      "title": "Avoid Magic Strings in TypeScript and JavaScript",
      "summary": "Replace ad-hoc string literals with clearer domain language, stronger typing, and safer refactors.",
      "content_text": "Replace ad-hoc string literals with clearer domain language, stronger typing, and safer refactors.",
      "date_published": "2025-03-29T14:22:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "typescript",
        "javascript",
        "code-quality",
        "refactoring"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/common-code-pitfalls-that-signal-maintenance-risk/",
      "url": "https://santi020k.com/blog/common-code-pitfalls-that-signal-maintenance-risk/",
      "title": "Common Code Pitfalls That Signal Maintenance Risk",
      "summary": "The code smells that usually predict rising maintenance cost before a team feels the full pain.",
      "content_text": "The code smells that usually predict rising maintenance cost before a team feels the full pain.",
      "date_published": "2025-01-07T15:08:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "code-quality",
        "maintainability",
        "refactoring",
        "software-design"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/skin-in-the-game-for-software-teams/",
      "url": "https://santi020k.com/blog/skin-in-the-game-for-software-teams/",
      "title": "Skin in the Game for Software Teams",
      "summary": "Why strong engineers care about product outcomes, users, and system health instead of stopping at ticket completion.",
      "content_text": "Why strong engineers care about product outcomes, users, and system health instead of stopping at ticket completion.",
      "date_published": "2024-12-08T16:12:00.000Z",
      "date_modified": "2026-04-08T18:00:00.000Z",
      "tags": [
        "engineering-culture",
        "leadership",
        "product-thinking",
        "software-teams"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/boosting-code-quality-and-efficiency-with-my-eslint-configuration-library/",
      "url": "https://santi020k.com/blog/boosting-code-quality-and-efficiency-with-my-eslint-configuration-library/",
      "title": "Boosting Code Quality and Efficiency with My ESLint Configuration Library",
      "summary": "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.",
      "content_text": "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.",
      "date_published": "2024-11-23T19:27:02.000Z",
      "tags": [
        "react-native",
        "react",
        "eslint",
        "typescript",
        "eslint-config"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/migrate-eslint-8-or-less-to-eslint-9/",
      "url": "https://santi020k.com/blog/migrate-eslint-8-or-less-to-eslint-9/",
      "title": "Migrate ESLint 8 or Less to ESLint 9",
      "summary": "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.",
      "content_text": "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.",
      "date_published": "2024-05-19T15:41:30.167Z",
      "tags": [
        "eslint",
        "typescript",
        "react",
        "nextjs",
        "migration"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/authentication-and-authorization-in-next-js-applications-with-supabase/",
      "url": "https://santi020k.com/blog/authentication-and-authorization-in-next-js-applications-with-supabase/",
      "title": "Authentication and Authorization in Next.js Applications with Supabase",
      "summary": "A practical approach to authentication and authorization in Next.js with Supabase, focused on SSR, route protection, and keeping auth logic understandable.",
      "content_text": "A practical approach to authentication and authorization in Next.js with Supabase, focused on SSR, route protection, and keeping auth logic understandable.",
      "date_published": "2024-04-25T18:20:00.000Z",
      "tags": [
        "supabase",
        "authentication",
        "authorization",
        "nextjs",
        "typescript"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/continuous-integration-and-deployment-for-next-js-projects/",
      "url": "https://santi020k.com/blog/continuous-integration-and-deployment-for-next-js-projects/",
      "title": "Continuous Integration and Deployment for Next.js Projects",
      "summary": "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.",
      "content_text": "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.",
      "date_published": "2024-04-18T17:12:00.000Z",
      "tags": [
        "ci-cd",
        "github-actions",
        "nextjs",
        "react",
        "deployment"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/testing-react-components-with-vitest-and-react-testing-library/",
      "url": "https://santi020k.com/blog/testing-react-components-with-vitest-and-react-testing-library/",
      "title": "Testing React Components with Vitest and React Testing Library",
      "summary": "A practical setup for testing React components with Vitest and React Testing Library, focused on behavior, confidence, and maintainable frontend code.",
      "content_text": "A practical setup for testing React components with Vitest and React Testing Library, focused on behavior, confidence, and maintainable frontend code.",
      "date_published": "2024-04-11T15:46:53.731Z",
      "tags": [
        "vitest",
        "testing-library",
        "react",
        "typescript",
        "nextjs"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/configuring-mongodb-with-homebrew-on-macos-converting-a-standalone-instance-to-a-replica-set/",
      "url": "https://santi020k.com/blog/configuring-mongodb-with-homebrew-on-macos-converting-a-standalone-instance-to-a-replica-set/",
      "title": "Configuring MongoDB with Homebrew on macOS: Converting a Standalone Instance to a Replica Set",
      "summary": "Convert a standalone MongoDB instance to a replica set on macOS using Homebrew. Covers mongod.conf changes, replication settings, and local verification steps.",
      "content_text": "Convert a standalone MongoDB instance to a replica set on macOS using Homebrew. Covers mongod.conf changes, replication settings, and local verification steps.",
      "date_published": "2024-04-05T18:33:37.000Z",
      "tags": [
        "mongo",
        "configuration",
        "hombrew",
        "mac"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/storybook-in-action-with-next-js-tailwind-and-typescript/",
      "url": "https://santi020k.com/blog/storybook-in-action-with-next-js-tailwind-and-typescript/",
      "title": "Storybook in Action with Next.js, Tailwind and TypeScript",
      "summary": "Set up Storybook in a Next.js project with Tailwind and TypeScript. Build isolated UI components, write stories, and improve design system collaboration.",
      "content_text": "Set up Storybook in a Next.js project with Tailwind and TypeScript. Build isolated UI components, write stories, and improve design system collaboration.",
      "date_published": "2024-03-29T00:11:10.000Z",
      "tags": [
        "typescript",
        "tailwind",
        "storybook",
        "react",
        "nextjs"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/development-workflow-with-husky-for-next-js-eslint-and-vitest-integration/",
      "url": "https://santi020k.com/blog/development-workflow-with-husky-for-next-js-eslint-and-vitest-integration/",
      "title": "Development Workflow with Husky for Next.js, ESLint, and Vitest Integration",
      "summary": "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.",
      "content_text": "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.",
      "date_published": "2024-03-21T17:47:55.000Z",
      "tags": [
        "pre-commit",
        "vitest",
        "husky",
        "react",
        "nextjs"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/building-the-best-next-js-typescript-standard-vitest-eslint-configuration/",
      "url": "https://santi020k.com/blog/building-the-best-next-js-typescript-standard-vitest-eslint-configuration/",
      "title": "Building the Best Next.js TypeScript Standard Vitest ESLint Configuration",
      "summary": "Configure ESLint for Next.js with TypeScript and Vitest integration. Covers code quality rules, import conventions, and a scalable setup for React projects.",
      "content_text": "Configure ESLint for Next.js with TypeScript and Vitest integration. Covers code quality rules, import conventions, and a scalable setup for React projects.",
      "date_published": "2024-03-14T18:01:55.000Z",
      "tags": [
        "eslint",
        "vitest",
        "typescript",
        "standards",
        "react"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    },
    {
      "id": "https://santi020k.com/blog/atomic-module-component-structure-for-react/",
      "url": "https://santi020k.com/blog/atomic-module-component-structure-for-react/",
      "title": "Atomic Module Component Structure for React",
      "summary": "Structure React projects using Atomic Module Components — covering file layout, naming conventions, and scalability patterns for growing TypeScript codebases.",
      "content_text": "Structure React projects using Atomic Module Components — covering file layout, naming conventions, and scalability patterns for growing TypeScript codebases.",
      "date_published": "2024-03-07T22:05:53.000Z",
      "tags": [
        "development",
        "react",
        "nextjs",
        "typescript"
      ],
      "authors": [
        {
          "name": "Santiago Molina"
        }
      ]
    }
  ]
}