diff --git a/.vitepress/config/en.ts b/.vitepress/config/en.ts index 85b492c0d9c..30887b93ce3 100644 --- a/.vitepress/config/en.ts +++ b/.vitepress/config/en.ts @@ -23,9 +23,10 @@ export const enConfig = defineLocaleConfig("root", { { text: "Resources", items: [ - { text: "Blog", link: "/blog/2025-12-08-type-aware-alpha" }, + { text: "Release Blog", link: "/blog/2025-12-08-type-aware-alpha" }, + { text: "Endorsements", link: "/endorsements" }, { text: "Team", link: "/team" }, - { text: "Release Notes", link: "https://github.com/oxc-project/oxc/releases" }, + { text: "Releases", link: "https://github.com/oxc-project/oxc/releases" }, { text: "Branding", link: "/branding" }, { text: "Website GitHub", link: "https://github.com/oxc-project/oxc-project.github.io" }, ], @@ -35,154 +36,175 @@ export const enConfig = defineLocaleConfig("root", { sidebar: { "/docs/guide/": [ { - text: "Guide", - items: [{ text: "Getting Started", link: "/docs/guide/introduction" }], + text: "Introduction", + collapsed: false, + items: [ + { text: "What is Oxc?", link: "/docs/guide/what-is-oxc" }, + { text: "Getting Started", link: "/docs/guide/introduction" }, + ], }, { - text: "Tools", + text: "Oxlint", + collapsed: true, + link: "/docs/guide/usage/linter", items: [ + { text: "Overview", link: "/docs/guide/usage/linter" }, { - text: "Linter", - link: "/docs/guide/usage/linter", - collapsed: true, - items: [ - { - text: "Configuring Oxlint", - link: "/docs/guide/usage/linter/config", - }, - { - text: "Type-Aware Linting", - link: "/docs/guide/usage/linter/type-aware", - }, - { - text: "Nested Configs", - link: "/docs/guide/usage/linter/nested-config", - }, - { - text: "Rules", - link: "/docs/guide/usage/linter/rules", - }, - { - text: "Plugins", - link: "/docs/guide/usage/linter/plugins", - }, - { - text: "JS Plugins", - link: "/docs/guide/usage/linter/js-plugins", - }, - { - text: "Automatic Fixes", - link: "/docs/guide/usage/linter/automatic-fixes", - }, - { - text: "CLI reference", - link: "/docs/guide/usage/linter/cli", - }, - { - text: "Configuration file reference", - link: "/docs/guide/usage/linter/config-file-reference", - }, - { - text: "Versioning", - link: "/docs/guide/usage/linter/versioning", - }, - ], + text: "Configuring Oxlint", + link: "/docs/guide/usage/linter/config", + }, + { + text: "Type-Aware Linting", + link: "/docs/guide/usage/linter/type-aware", + }, + { + text: "Nested Configs", + link: "/docs/guide/usage/linter/nested-config", + }, + { + text: "Rules", + link: "/docs/guide/usage/linter/rules", }, { - text: "Formatter", + text: "Plugins", + link: "/docs/guide/usage/linter/plugins", + }, + { + text: "JS Plugins", + link: "/docs/guide/usage/linter/js-plugins", + }, + { + text: "Automatic Fixes", + link: "/docs/guide/usage/linter/automatic-fixes", + }, + { + text: "CLI reference", + link: "/docs/guide/usage/linter/cli", + }, + { + text: "Configuration file reference", + link: "/docs/guide/usage/linter/config-file-reference", + }, + { + text: "Versioning", + link: "/docs/guide/usage/linter/versioning", + }, + ], + }, + { + text: "Oxfmt", + collapsed: true, + link: "/docs/guide/usage/formatter", + items: [ + { + text: "Overview", link: "/docs/guide/usage/formatter", - collapsed: true, - items: [ - { - text: "Configuration", - link: "/docs/guide/usage/formatter/config", - }, - { - text: "Integration", - link: "/docs/guide/usage/formatter/integration", - }, - { - text: "CLI reference", - link: "/docs/guide/usage/formatter/cli", - }, - { - text: "Configuration file reference", - link: "/docs/guide/usage/formatter/config-file-reference", - }, - { - text: "Migrating from Prettier", - link: "/docs/guide/usage/formatter/migrate-from-prettier", - }, - ], }, - { text: "Parser", link: "/docs/guide/usage/parser" }, { - text: "Transformer", - link: "/docs/guide/usage/transformer", - collapsed: true, - items: [ - { - text: "Lowering", - link: "/docs/guide/usage/transformer/lowering", - }, - { - text: "TypeScript", - link: "/docs/guide/usage/transformer/typescript", - }, - { - text: "JSX", - link: "/docs/guide/usage/transformer/jsx", - }, - { - text: "Plugins", - link: "/docs/guide/usage/transformer/plugins", - }, - { - text: "Global Variable Replacement", - link: "/docs/guide/usage/transformer/global-variable-replacement", - }, - { - text: "Isolated Declarations", - link: "/docs/guide/usage/transformer/isolated-declarations", - }, - ], + text: "Configuration", + link: "/docs/guide/usage/formatter/config", + }, + { + text: "Integration", + link: "/docs/guide/usage/formatter/integration", + }, + { + text: "CLI reference", + link: "/docs/guide/usage/formatter/cli", + }, + { + text: "Configuration file reference", + link: "/docs/guide/usage/formatter/config-file-reference", + }, + { + text: "Migrating from Prettier", + link: "/docs/guide/usage/formatter/migrate-from-prettier", + }, + ], + }, + { + text: "Parser", + collapsed: true, + link: "/docs/guide/usage/parser", + items: [{ text: "Overview", link: "/docs/guide/usage/parser" }], + }, + { + text: "Transformer", + collapsed: true, + link: "/docs/guide/usage/transformer", + items: [ + { text: "Overview", link: "/docs/guide/usage/transformer" }, + { + text: "Lowering", + link: "/docs/guide/usage/transformer/lowering", + }, + { + text: "TypeScript", + link: "/docs/guide/usage/transformer/typescript", + }, + { + text: "JSX", + link: "/docs/guide/usage/transformer/jsx", + }, + { + text: "Plugins", + link: "/docs/guide/usage/transformer/plugins", }, { - text: "Minifier", + text: "Global Variable Replacement", + link: "/docs/guide/usage/transformer/global-variable-replacement", + }, + { + text: "Isolated Declarations", + link: "/docs/guide/usage/transformer/isolated-declarations", + }, + ], + }, + { + text: "Minifier", + collapsed: true, + link: "/docs/guide/usage/minifier", + items: [ + { + text: "Overview", link: "/docs/guide/usage/minifier", - collapsed: true, - items: [ - { - text: "Dead Code Elimination", - link: "/docs/guide/usage/minifier/dead-code-elimination", - }, - { - text: "Syntax Normalization", - link: "/docs/guide/usage/minifier/syntax-normalization", - }, - { - text: "Mangling", - link: "/docs/guide/usage/minifier/mangling", - }, - { - text: "Whitespace Stripping", - link: "/docs/guide/usage/minifier/whitespace-stripping", - }, - { - text: "FAQ", - link: "/docs/guide/usage/minifier/faq", - }, - ], }, - { text: "Resolver", link: "/docs/guide/usage/resolver" }, + { + text: "Dead Code Elimination", + link: "/docs/guide/usage/minifier/dead-code-elimination", + }, + { + text: "Syntax Normalization", + link: "/docs/guide/usage/minifier/syntax-normalization", + }, + { + text: "Mangling", + link: "/docs/guide/usage/minifier/mangling", + }, + { + text: "Whitespace Stripping", + link: "/docs/guide/usage/minifier/whitespace-stripping", + }, + { + text: "FAQ", + link: "/docs/guide/usage/minifier/faq", + }, ], }, { + text: "Resolver", + collapsed: true, + link: "/docs/guide/usage/resolver", + items: [{ text: "Overview", link: "/docs/guide/usage/resolver" }], + }, + { + text: "Resources", + collapsed: false, items: [ { text: "Troubleshooting", link: "/docs/guide/troubleshooting" }, - { text: "All benchmarks", link: "/docs/guide/benchmarks" }, + { text: "Benchmarks", link: "/docs/guide/benchmarks" }, { text: "Projects using Oxc", link: "/docs/guide/projects" }, - { text: "On media", link: "/docs/guide/media" }, + { text: "Talks & media", link: "/docs/guide/media" }, ], }, ], diff --git a/public/sponsors.svg b/public/sponsors.svg index 00e0ce8cd5b..49e623768e3 100644 --- a/public/sponsors.svg +++ b/public/sponsors.svg @@ -1,4 +1,4 @@ - + Silver Sponsors - schoolhouse.w... + schoolhouse.w... - + - -Supporters - N-iX Ltd + + + + Zephyr Cloud IO + + + + + +Bronze Sponsors + N-iX Ltd - + - + - - Léo + + Miro - - + + - + +Supporters + + + + + - Spence - - + + - + - Snyder - - + + - + - ArrayZo... - - + + - + - Marais - - + + - + - Ulrich - - + + - + - Liminity - - + + + + + + + + + - -Backers + +Backers - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - + - + - - - - - - - - - + + - + - + - + - + - + - + - - - + + - + - + - + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + diff --git a/src/docs/guide/introduction.md b/src/docs/guide/introduction.md index 51b52baaff4..f1ca0f5734f 100644 --- a/src/docs/guide/introduction.md +++ b/src/docs/guide/introduction.md @@ -1,70 +1,35 @@ --- title: Getting Started -outline: deep --- # Getting Started -## Overview +[What is Oxc?](/docs/guide/what-is-oxc) -Oxc (each letter is individually pronounced, `/oh-eks-see/`) is the JavaScript Oxidation Compiler, a collection of high-performance tools for the JavaScript language written in Rust. +## Lint or format a codebase -Our focus lies in constructing essential compiler tools for JavaScript: parser, linter, formatter, transpiler, minifier and resolver. +- Lint: [Oxlint](/docs/guide/usage/linter) +- Format: [Oxfmt](/docs/guide/usage/formatter) -Our goal is to empower the [next generation toolchain for JavaScript](https://voidzero.dev/posts/announcing-voidzero-inc) as part of [VoidZero](https://voidzero.dev). +## Build tooling on top of Oxc -## Endorsements +- Parse JavaScript and TypeScript: [Parser](/docs/guide/usage/parser) +- Transform TypeScript, JSX, and modern JavaScript: [Transformer](/docs/guide/usage/transformer) +- Minify JavaScript for production builds: [Minifier](/docs/guide/usage/minifier) +- Resolve modules for JavaScript and TypeScript: [Resolver](/docs/guide/usage/resolver) -#### [Evan You](https://x.com/youyuxi/status/1734439543280128030), creator of [Vue.js](https://vuejs.org) and [Vite](https://vitejs.dev): +## Contribute or learn -> Ran oxlint on the Vue 3 codebase, ~200 rules + ~590 files finished in 50ms 🤯 (30ms re-runs) -> -> The performance is absolutely nuts +- [Contribute](/docs/contribute/introduction) +- [Learn](/docs/learn/parser_in_rust/intro.html) -#### [Jason Miller](https://github.com/developit), creator of [Preact](https://preactjs.com): +## Other resources -> oxlint has been a massive win for us at Shopify. Our previous linting setup took 75 minutes to run, so we were fanning it out across 40+ workers in CI. -> -> By comparison, oxlint takes around 10 seconds to lint the same codebase on a single worker, and the output is easier to interpret. -> -> We even caught a few bugs that were hidden or skipped by our old setup when we migrated! - -#### [Luke Edwards](https://x.com/lukeed05/status/1829527267162345651) - -> For a while now, @boshen_c has been crushing it, setting the foundation for the next generation of JS tooling. -> -> There's just so much to learn from the OXC source code. Everything is meticulously measured and benchmarked, then formalized into simple, elegant, non-frightening APIs. -> -> This guy is brilliant, a team player, and is + has been doing thankless, hard work. - -#### [Yagiz Nizipli](https://github.com/sponsors/anonrig), founder of [Node.js performance team](https://github.com/nodejs/performance): - -> I'm impressed by how oxc is actively encouraging JavaScript tools to improve their performance. - -#### [Eric Simons](https://x.com/ericsimons40/status/1766525300584947999), CEO of [StackBlitz](https://stackblitz.com/): - -> Oxc is slept on rn -> -> Most JS/TS toolchains will be using it within the next few yrs imo - -#### [Miles Johnson](https://x.com/mileswjohnson/status/1734698340791800283), creator of [Moonrepo](https://moonrepo.dev): - -> It's crazy how good oxlint (and oxc tools) is. Not just in performance, but ease of use. Banking on Rust was a good choice! - -#### [Joe Savona](https://x.com/en_JS/status/1676467920334094336), [React](https://react.dev) team member: - -> For…reasons I am experimenting w various Rust-based JS compilers. I don’t agree w every design decision but overall oxc is really well done. - -#### [Sathya Gunasekaran](https://x.com/_gsathya/status/1676453430263701506), [React](https://react.dev) team member: - -> oxc is kinda neat - -## Special Thanks - -- [Biome][biome] and [Ruff][ruff]: This project would not exist without the help, inspiration, and encouragement from these two projects, who are pioneers in the field of Rust-based unified toolchains. -- [quick-lint-js][quick-lint-js] and [elm-review][elm-review]: For educating how static analysis could be improved in both performance and usability. - -[biome]: https://biomejs.dev -[ruff]: https://beta.ruff.rs -[quick-lint-js]: https://quick-lint-js.com/ -[elm-review]: https://package.elm-lang.org/packages/jfmengels/elm-review/latest/ +- [Troubleshooting](/docs/guide/troubleshooting) +- [Benchmarks](/docs/guide/benchmarks) +- [Projects using Oxc](/docs/guide/projects) +- [Talks and media](/docs/guide/media) +- [Team](/team) +- [Endorsements](/endorsements) +- [Release Blog](/blog/2025-12-08-type-aware-alpha) +- [Releases](https://github.com/oxc-project/oxc/releases) diff --git a/src/docs/guide/media.md b/src/docs/guide/media.md index 415d74fbcae..ccd1c75fbe7 100644 --- a/src/docs/guide/media.md +++ b/src/docs/guide/media.md @@ -3,7 +3,7 @@ title: On Media outline: deep --- -# On Media +# Talks & media ## Articles diff --git a/src/docs/guide/what-is-oxc.md b/src/docs/guide/what-is-oxc.md new file mode 100644 index 00000000000..6192452028c --- /dev/null +++ b/src/docs/guide/what-is-oxc.md @@ -0,0 +1,57 @@ +--- +title: What is Oxc? +description: The fastest toolchain for JavaScript and TypeScript. +--- + +# What is Oxc? + +/oʊ ɛks siː/ + +The Oxidation Compiler is a collection of high-performance tools for JavaScript and TypeScript written in Rust. + +Oxc is part of [VoidZero](https://voidzero.dev)'s vision for a unified, high-performance toolchain for JavaScript. It powers [Rolldown](https://rolldown.rs) ([Vite](https://vitejs.dev)'s future bundler) and enables the next generation of ultra-fast development tools that work seamlessly together. + +\* Oxidation is the chemical process that creates rust + +## Fastest tooling across the stack + +Oxc focuses on performance across the whole toolchain. This includes parsing, module resolution, linting, formatting, transforms, and minification. + +## Philosophy + +Oxc is built around a few core ideas. + +### Performance is a feature + +Oxc treats speed as a product requirement. Faster tools improve the local feedback loop and reduce CI cost. Performance regressions are treated as bugs. + +### One toolchain, shared building blocks + +Oxc is a suite. Tools like the linter, formatter, parser, transformer, minifier, and resolver are built on shared components. This reduces duplicated work and makes behavior more consistent across the stack. + +### Correctness with clear boundaries + +Oxc aims to be correct and predictable. When behavior differs from other tools, the differences should be documented. Compatibility is a feature, not an accident. + +### Practical developer experience + +Oxc focuses on a workflow that works in real projects. Defaults should be sensible, configuration should be understandable, and output should be stable. + +## What you get + +Oxc includes end-user tools and reusable compiler building blocks: + +- [Oxlint](/docs/guide/usage/linter) is the fastest linter for JavaScript and TypeScript. +- [Oxfmt](/docs/guide/usage/formatter) is the fastest formatter. It targets Prettier-compatible formatting. +- [Parser](/docs/guide/usage/parser) is the fastest JS and TS parser with an AST for tooling. +- [Transformer](/docs/guide/usage/transformer) provides fastest TS, JSX, and modern JavaScript transforms. +- [Minifier](/docs/guide/usage/minifier) is the fastest minifier for production output. +- [Resolver](/docs/guide/usage/resolver) is the fastest module resolver for JS and TS projects. + +You can use each tool on its own, or use them together as one toolchain. + +## Who Oxc is for + +- **App and library developers** who want the fastest lint and format loop locally and in CI. +- **Toolchain and platform teams** who want a fast compiler-grade foundation at scale. +- **Tool authors** who want fast reusable crates or npm packages for JS tooling. diff --git a/src/endorsements.md b/src/endorsements.md new file mode 100644 index 00000000000..3bc7b52f12a --- /dev/null +++ b/src/endorsements.md @@ -0,0 +1,49 @@ +--- +editLink: false +--- + +# Endorsements + +### [Evan You](https://x.com/youyuxi/status/1734439543280128030), creator of [Vue.js](https://vuejs.org) and [Vite](https://vitejs.dev): + +> Ran oxlint on the Vue 3 codebase, ~200 rules + ~590 files finished in 50ms 🤯 (30ms re-runs) +> +> The performance is absolutely nuts + +### [Jason Miller](https://github.com/developit), creator of [Preact](https://preactjs.com): + +> oxlint has been a massive win for us at Shopify. Our previous linting setup took 75 minutes to run, so we were fanning it out across 40+ workers in CI. +> +> By comparison, oxlint takes around 10 seconds to lint the same codebase on a single worker, and the output is easier to interpret. +> +> We even caught a few bugs that were hidden or skipped by our old setup when we migrated! + +### [Luke Edwards](https://x.com/lukeed05/status/1829527267162345651) + +> For a while now, @boshen_c has been crushing it, setting the foundation for the next generation of JS tooling. +> +> There's just so much to learn from the OXC source code. Everything is meticulously measured and benchmarked, then formalized into simple, elegant, non-frightening APIs. +> +> This guy is brilliant, a team player, and is + has been doing thankless, hard work. + +### [Yagiz Nizipli](https://github.com/sponsors/anonrig), founder of [Node.js performance team](https://github.com/nodejs/performance): + +> I'm impressed by how oxc is actively encouraging JavaScript tools to improve their performance. + +### [Eric Simons](https://x.com/ericsimons40/status/1766525300584947999), CEO of [StackBlitz](https://stackblitz.com/): + +> Oxc is slept on rn +> +> Most JS/TS toolchains will be using it within the next few yrs imo + +### [Miles Johnson](https://x.com/mileswjohnson/status/1734698340791800283), creator of [Moonrepo](https://moonrepo.dev): + +> It's crazy how good oxlint (and oxc tools) is. Not just in performance, but ease of use. Banking on Rust was a good choice! + +### [Joe Savona](https://x.com/en_JS/status/1676467920334094336), [React](https://react.dev) team member: + +> For…reasons I am experimenting w various Rust-based JS compilers. I don’t agree w every design decision but overall oxc is really well done. + +### [Sathya Gunasekaran](https://x.com/_gsathya/status/1676453430263701506), [React](https://react.dev) team member: + +> oxc is kinda neat