One Config File To Rule Them All

Bookmark
Rate this content
Sentry
Promoted
Code breaks, fix it faster

Crashes, slowdowns, regressions in prod. Seer by Sentry unifies traces, replays, errors, profiles to find root causes fast.

Node.js introduces --experimental-config-file, a new experimental flag that enables loading a node.config.json file at startup. While it adds yet another config file, this powerful addition finally allows developers to customize Node.js execution in ways that were previously impossible. This talk explores the capabilities unlocked by this feature, including fine-tuned runtime behavior, improved portability, and potential future extensions.

This talk has been presented at Node Congress 2026, check out the latest edition of this JavaScript Conference.

FAQ

Marco Ippolito is a Senior Security Engineer at Herodevs and a member of the NodeJS Technical Steering Committee.

Some new features in NodeJS include the test runner, watch mode, native TypeScript support, test coverage, and a permission model for improved security.

Configuring NodeJS features with flags is a problem because there are many flags, making it difficult to remember and manage them all, leading to a suboptimal developer experience.

'Node options' is an environment variable that allows you to pass configuration flags to a Node.js application, providing an alternative to passing numerous flags directly in the command line.

The experimental config file is a feature that allows Node.js applications to be configured using a JSON file, reducing the need to pass numerous flags in the command line.

JSON was chosen over YAML for NodeJS configuration because Node.js has a built-in JSON parser, whereas it does not have a built-in parser for YAML or other formats.

No, the experimental config file feature in NodeJS is still considered experimental and is not yet production-ready.

Yes, custom configurations can be added to the Node config JSON, but they will be ignored by Node.js.

The priority order for NodeJS configurations is: 1) Command-line interface (CLI) flags, 2) Node options as an environment variable, 3) Configuration file, 4) Node options from the .env file.

Future developments include adding more namespaces, providing help text in the JSON schema, and potentially marking the feature as a release candidate.

Marco Ippolito
Marco Ippolito
19 min
26 Mar, 2026

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Marco Ippolito discusses the complexities of configuring NodeJS features and the need for a centralized config file. He explains the challenges of managing multiple flags for different features and demonstrates how to enhance developer experience by using specific flags to address TypeScript integration and testing procedures. The text discusses the challenges of managing multiple configuration flags in NodeJS and introduces the concept of using node options as an alternative to passing numerous flags directly after the node command. Node options provide a solution for managing configuration flags in NodeJS, simplifying the command structure and enabling the use of .mfile for configuration settings. I sent a PR to introduce the experimental config file feature in Node.js, including two major flags: experimental default config file and experimental config file, allowing customization of configuration settings through JSON files with version-matched schemas for IDE support and auto-completion. V8 flags in Node.js provide customization options, with a priority hierarchy among CLI, Node options, and config files, excluding no-op flags. Node 25 introduces new namespaces for test configuration, watch settings, and permissions, simplifying the configuration process and enhancing developer experience. Node.js JSON configuration offers convenience with a built-in JSON parser and plans for more namespaces and explanatory text in the JSON schema to simplify configuration management.
Available in Español: One Config File To Rule Them All
Video transcription and chapters available for users with access.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

The Future of Performance Tooling
JSNation 2022JSNation 2022
21 min
The Future of Performance Tooling
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
No REST for Cap'n Web
Node Congress 2026Node Congress 2026
23 min
No REST for Cap'n Web
Kenton Varda advocates for using CapnWeb, an RPC protocol, over REST for web APIs, emphasizing benefits for humans and AI agents. CapnWeb simplifies client-server communications by treating them as function calls. TypeScript type checking ensures method accuracy in CapnWeb across JavaScript runtimes. Stubs in CapnWeb allow method calls to execute on remote objects and simulate all possible method names for remote calls. Converting REST APIs to CapnWeb streamlines code and improves API calls. CapnWeb enhances API functionality with object-specific RPC sessions and promises pipelining for multilevel API optimization. AI agent security challenges are addressed with sandboxing and token protection in CapnWeb. CapnWeb capabilities for AI agents include passing restricted CapnWeb stubs and exploring capability-based security with CapnProto.
Rome, a Modern Toolchain!
JSNation 2023JSNation 2023
31 min
Rome, a Modern Toolchain!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Conquering Complexity: Refactoring JavaScript Projects
JSNation 2024JSNation 2024
21 min
Conquering Complexity: Refactoring JavaScript Projects
Top Content
Today's Talk explores the complexity in code and its impact. It discusses different methods of measuring complexity, such as cyclomatic complexity and cognitive complexity. The importance of understanding and conquering complexity is emphasized, with a demo showcasing complexity in a codebase. The Talk also delves into the need for change and the role of refactoring in dealing with complexity. Tips and techniques for refactoring are shared, including the use of language features and tools to simplify code. Overall, the Talk provides insights into managing and reducing complexity in software development.
Improving Developer Happiness with AI
React Summit 2023React Summit 2023
29 min
Improving Developer Happiness with AI
Watch video: Improving Developer Happiness with AI
GitHub Copilot is an auto-completion tool that provides suggestions based on context. Research has shown that developers using Copilot feel less frustrated, spend less time searching externally, and experience less mental effort on repetitive tasks. Copilot can generate code for various tasks, including adding modals, testing, and refactoring. It is a useful tool for improving productivity and saving time, especially for junior developers and those working in unfamiliar domains. Security concerns have been addressed with optional data sharing and different versions for individuals and businesses.
Automate the Browser With Workers Browser Rendering API
JSNation 2024JSNation 2024
20 min
Automate the Browser With Workers Browser Rendering API
The Talk discusses browser automation using the Worker's Browser Rendering API, which allows tasks like navigating websites, taking screenshots, and creating PDFs. Cloudflare integrated Puppeteer with their workers to automate browser tasks, and their browser rendering API combines remote browser isolation with Puppeteer. Use cases for the API include taking screenshots, generating PDFs, automating web applications, and gathering performance metrics. The Talk also covers extending sessions and performance metrics using Durable Objects. Thank you for attending!

Workshops on related topic

Pragmatic 101 on Custom JS Tooling for Your Project
JSNation US 2025JSNation US 2025
122 min
Pragmatic 101 on Custom JS Tooling for Your Project
Featured Workshop
Will Klein
Will Klein
Let’s demystify the secrets of modern JavaScript tooling. In this workshop, you will learn how linters, compilers, and code transforms work. You will take your first steps building your own developer tools, writing an ESLint rule, a compiler plugin, and a code transformation. Learn these skills to help your team and deepen your understanding of computer languages.Workshop Plan:A preview of how ASTs can be usedA brief walkthrough of how compilers workAn intro to working with an ASTThe secret to making thousands of changes in secondsHow to apply this skill
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
JSNation 2023JSNation 2023
44 min
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
WorkshopFree
Ryan Albrecht
Ryan Albrecht
You know that annoying bug? The one that doesn’t show up locally? And no matter how many times you try to recreate the environment you can’t reproduce it? You’ve gone through the breadcrumbs, read through the stack trace, and are now playing detective to piece together support tickets to make sure it’s real.
Join Sentry developer Ryan Albrecht in this talk to learn how developers can use Session Replay - a tool that provides video-like reproductions of user interactions - to identify, reproduce, and resolve errors and performance issues faster (without rolling your head on your keyboard).