/tools

The Rome Toolchain. A linter, compiler, bundler, and more for JavaScript, TypeScript, HTML, Markdown, and CSS.

Primary LanguageRustMIT LicenseMIT

Rome's logo depicting an ancient Roman arch with the word Rome to its side

Rome is currently being rewritten in Rust. Read more about it in our latest blog post.

The documentation below is is out of date and available for posterity.

Rome is a linter, compiler, bundler, and more for JavaScript, TypeScript, JSON, HTML, Markdown, and CSS.

Rome is designed to replace Babel, ESLint, webpack, Prettier, Jest, and others.

Rome unifies functionality that has previously been separate tools. Building upon a shared base allows us to provide a cohesive experience for processing code, displaying errors, parallelizing work, caching, and configuration.

Rome has strong conventions and aims to have minimal configuration. Read more about our project philosophy.

Rome is written in TypeScript and runs on Node.js. Rome has zero dependencies, and has largely been written from scratch. See credits for more information.

Rome is MIT licensed and moderated under the Contributor Covenant Code of Conduct.

Status

The current area of focus is linting. See the umbrella task #20 for tracking.

Getting Started

To setup Rome in a project, all you need is a rome.json file.

$ mkdir hello-world
$ cd hello-world
$ rome init

This file is used to configure Rome and indicates the boundaries of your project.

See Getting Started guide for more usage instructions.

Philosophy

The project philosophy can be found on our website.

Community

Contribution and development instructions can be found in CONTRIBUTING.

Additional project coordination and real-time discussion happens on our Discord server. Remember that all activity on the Discord server is still moderated and will be strictly enforced under the project's Code of Conduct.