More Software Engineering Daily episodes

Biome and the Future of JavaScript Tooling thumbnail

Biome and the Future of JavaScript Tooling

Published 18 Jun 2026

Duration: 1:02:56

Biome is a Rust-built, minimal-config tool for formatting and linting web projects, emphasizing cross-environment consistency, type-aware linting without TypeScript, and serving as a drop-in replacement for Prettier/ESLint, while addressing tooling evolution through performance-focused design, semantic analysis, LSP integration, and community-driven features.

Episode Description

Modern web development requires an ever-growing collection of tools including formatters, linters, bundlers, and plugins. Each tool typically has its...

Overview

The podcast discusses Biome, a fast, opinionated tool combining formatting and linting for web projects, developed in Rust as a drop-in replacement for Prettier and ESLint. Key features include minimal configuration, consistent behavior across CLI and editor environments, a module graph for cross-file analysis, and type-aware linting rules that avoid requiring the TypeScript compiler. The tool emphasizes simplification, reducing setup complexity, and improving developer experience through unified configuration, performance optimization, and seamless integration with frameworks like Svelte, Vue, and Astro. Biomes architecture addresses challenges in managing multiple dev tools, leveraging Rust for memory efficiency and native speed, and includes a plugin system based on GridQL for extensibility and code modifications.

The conversation explores the evolution of tooling in modern web development, reflecting on debates around the shift from PHP/SSR to JavaScript frameworks, the complexity of bundlers, and the trade-offs between plugin flexibility and performance. Biomes development is framed as a community-driven effort evolving from the discontinued Rome project, with a renewed focus on formatter and linter capabilities over bundlers. The tool introduces educational lint rules, real-time linting via watchers, and plans for expanded language support, while emphasizing the importance of semantic models for advanced code analysis. Challenges in tooling, such as managing dependencies, optimizing build times, and balancing flexibility with maintainability, are highlighted as critical considerations for developers and open-source maintainers.

The discussion also touches on broader themes in programming, such as transferring front-end skills to tooling, the universality of problem-solving principles across contexts, and the role of open-source collaboration in learning and innovation. Biome aims to streamline workflows through cohesive linting and formatting, reduce boilerplate configuration, and foster a welcoming community via platforms like Discord. Upcoming features include enhanced CSS/Sass support, markdown formatting, and plugin improvements for custom rules and fixes, positioning Biome as a flexible foundation for project-specific tooling and potential code-modification capabilities.

What If

  • What if you leveraged Biomes module graph to audit and remove unused code in your project?

    • Move: Run biome lint --module-graph to identify unused CSS classes, uninstalled dependencies, or orphaned files across your codebase.
    • Why Now?: Modern web projects often accumulate technical debt through redundant assets and unneeded imports, slowing down builds and increasing maintenance overhead. Biomes module graph provides a unified view of these issues without relying on external tools.
    • Expected Upside: Reduce file size, improve performance, and simplify your project structure by systematically eliminating dead code.
  • What if you replaced your ESLint + Prettier stack with Biomes all-in-one solution?

    • Move: Execute biome init in your project to generate a single configuration file and migrate existing ESLint/Prettier rules into Biomes format.
    • Why Now?: Combining formatting and linting into one tool reduces setup complexity and potential conflicts between tools. Biomes compatibility with frameworks like Svelte, Vue, and Astro ensures minimal disruption during migration.
    • Expected Upside: Cut configuration time by 50%+ and eliminate tooling overhead, enabling faster CI/CD workflows and more consistent code quality.
  • What if you created a GridQL plugin to enforce project-specific lint rules for your team?

    • Move: Develop a custom GridQL plugin using Biomes plugin system to define rules like no unused reduce parameters or enforce specific component naming conventions.
    • Why Now?: Biomes GridQL plugin system allows you to tailor linting to your projects unique needs without relying on third-party ESLint plugins, which may not align with your teams standards.
    • Expected Upside: Enforce team-specific best practices automatically, reduce manual code reviews, and ensure compliance with internal coding standards.

Takeaway

  • Replace Prettier/ESLint with Biome: Use Biome as a single tool for both formatting and linting to eliminate redundant configurations, reducing setup time and ensuring consistent behavior across CLI and editor environments.
  • Leverage Biomes Module Graph: Utilize the module graph to identify unused CSS classes, import cycles, and uninstalled dependencies across your project, improving code efficiency and maintainability.
  • Enable Type-Aware Lint Rules: Apply Biomes type-aware linting (e.g., detecting unused promises or missing CSS classes) without requiring TypeScript or a compiler, enhancing code quality with minimal overhead.
  • Adopt Biomes Unified Configuration: Migrate to Biomes single config file with sensible defaults to simplify tooling maintenance, avoiding the complexity of managing multiple tools like ESLint and Prettier.
  • Implement Real-Time Linting with Watcher: Use Biomes biome lint --watch feature to enable instant feedback during development, catching issues as you code without manual rechecks.

Recent Episodes of Software Engineering Daily

16 Jun 2026 Preparing for Q-Day

Quantum computing threatens public-key cryptography, necessitating a shift to post-quantum alternatives by 2029, with lattice-based methods leading despite implementation challenges, as quantum advancements accelerate the urgency for infrastructure updates and secure cryptographic transitions.

11 Jun 2026 Developing Multiplayer Games in Godot

Domekeeper, a minimalist tower defense game evolved from a Ludum Dare jam, faces significant multiplayer development challenges including latency, cheating prevention, server costs, and synchronization issues, with developers addressing these through Godot 4, custom network state management, and community-driven multiplayer design over public lobbies.

4 Jun 2026 Web Native Game Development

The evolution from Flash to WebAssembly/WebGPU in web game development highlights performance gains and engine challenges, while contrasting with traditional platforms through shorter development cycles, mobile focus, and hurdles like file size, browser compatibility, and engagement.

2 Jun 2026 The Hardware Bottleneck AI Cant Fix

The text highlights the challenges hardware engineering faces with sensor data, real-time monitoring, and post-test analysis due to limited tooling compared to software, emphasizing solutions like data supply chain platforms, the need for agile hardware innovation, and addressing constraints such as multimodal data processing, latency, and safety-critical system requirements.

28 May 2026 Autonomous Drone Delivery at Scale

Zipline develops scalable autonomous drone delivery systems for critical healthcare and urban logistics, prioritizing safe, reliable medical supply delivery in regions with limited infrastructure while addressing fleet coordination, automation, and mass-scale reliability challenges.

More Software Engineering Daily episodes