create-react-app, nx, and vue-cli are tools used to initialize and manage frontend projects, but they serve different architectural needs. create-react-app was the standard for single-page React applications, offering zero-config setup. vue-cli provided similar scaffolding and build configuration for Vue.js projects. nx is a broader build system and monorepo tool that supports React, Vue, and other frameworks, focusing on code sharing and task running across multiple projects.
create-react-app, nx, and vue-cli are tools used to initialize and manage frontend projects, but they serve different architectural needs. create-react-app was the standard for single-page React applications. vue-cli provided similar scaffolding for Vue.js projects. nx is a broader build system and monorepo tool. Let's compare how they handle common tasks.
create-react-app creates a single React application with zero config.
# create-react-app: Initialize React app
npx create-react-app my-app
vue-cli creates a single Vue application with selectable features.
# vue-cli: Initialize Vue app
vue create my-app
nx creates a workspace that can hold multiple apps and libraries.
# nx: Initialize workspace
npx create-nx-workspace@latest my-workspace
create-react-app hides configuration inside react-scripts.
// create-react-app: package.json
{
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build"
}
}
vue-cli uses a dedicated config file for adjustments.
vue.config.js.// vue-cli: vue.config.js
module.exports = {
configureWebpack: {
resolve: { alias: { '@': 'src' } }
}
};
nx uses nx.json and project.json for global and local settings.
// nx: nx.json
{
"tasksRunnerOptions": {
"default": {
"runner": "nx/tasks-runners/default",
"options": { "cacheableOperations": ["build", "test"] }
}
}
}
create-react-app does not support monorepos.
# create-react-app: No monorepo command
# Developers must manually link packages or use tools like Lerna
vue-cli does not support monorepos natively.
# vue-cli: No monorepo command
# Developers must configure workspaces manually in package.json
nx is built for monorepos from the ground up.
# nx: Generate a new app and library
nx g @nx/react:app dashboard
nx g @nx/react:lib shared-ui
create-react-app uses npm scripts wrapped by react-scripts.
// create-react-app: Running build
npm run build
vue-cli uses npm scripts wrapped by @vue/cli-service.
// vue-cli: Running build
npm run build
nx uses a task runner to execute commands across projects.
# nx: Running build for specific project
nx build my-app
create-react-app is officially deprecated.
# create-react-app: Warning on npm install
# This package has been deprecated
vue-cli is in maintenance mode.
create-vue (Vite based) instead.# vue-cli: Warning on npm install
# Vue CLI is now in maintenance mode
nx is actively maintained and updated.
# nx: Active development
# Regular releases and feature updates
| Feature | create-react-app | vue-cli | nx |
|---|---|---|---|
| Framework | โ๏ธ React Only | ๐ Vue Only | ๐ Any (React, Vue, Angular) |
| Monorepo | โ No | โ No | โ Yes |
| Config | ๐ Hidden (Eject required) | ๐ง vue.config.js | ๐ nx.json + project.json |
| Status | ๐ Deprecated | โ ๏ธ Maintenance | โ Active |
| Best For | ๐ฐ๏ธ Legacy React Apps | ๐ฐ๏ธ Legacy Vue Apps | ๐ข Enterprise Monorepos |
create-react-app was the king of React scaffolding but is now retired. Do not use it for new work. Migrate to Vite or Next.js instead.
vue-cli served Vue developers well but is now in maintenance. Do not use it for new work. Migrate to create-vue based on Vite instead.
nx is the choice for complex setups. Use it if you need to manage multiple apps, share code efficiently, or speed up builds with caching. It works with modern tools like Vite under the hood.
Final Thought: For single apps, choose modern framework-specific tools like Vite. For multiple apps, choose nx. Avoid create-react-app and vue-cli for greenfield projects.
Choose nx if you are managing a monorepo with multiple applications or libraries. It is ideal for teams needing shared code, cached builds, and complex task management across React, Vue, or Node.js projects.
Do not choose this for new projects. It is in maintenance mode and the Vue team recommends create-vue based on Vite. Only use it for legacy Vue 2 maintenance.
Do not choose this for new projects. It is officially deprecated and no longer receives updates. Use Vite or Next.js instead for React development.
Get to green PRs in half the time. Nx optimizes your builds, scales your CI, and fixes failed PRs. Built for developers and AI agents.
Using npx
npx create-nx-workspace
Using npm init
npm init nx-workspace
Using yarn create
yarn create nx-workspace
Run:
npx nx@latest init