vuesion
Vuesion is a boilerplate that empowers product teams to build faster with modern best practices across engineering and design. It features a full-stack framework, comprehensive design system, robust testing, and seamless internationalization.
Top Related Projects
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
The Intuitive Vue Framework.
Quasar Framework - Build high-performance VueJS user interfaces in record time
🐉 Vue Component Framework
A Vue.js 2.0 UI Toolkit for Web
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin
Quick Overview
Vuesion is a boilerplate for building production-ready Vue.js applications. It provides a comprehensive set of features and tools to help developers kickstart their projects with a solid foundation, including a modern development environment, state management, routing, testing, and more.
Pros
- Comprehensive Boilerplate: Vuesion offers a well-structured and feature-rich boilerplate, covering a wide range of common requirements for building production-ready Vue.js applications.
- Modern Development Environment: The project uses the latest versions of Vue.js, Vuex, Vue Router, and other related libraries, ensuring developers are working with the most up-to-date tools and best practices.
- Extensive Documentation: The project's documentation is detailed and covers various aspects of the boilerplate, making it easier for developers to understand and get started.
- Customizable and Extensible: Vuesion is designed to be customizable and extensible, allowing developers to easily modify or add new features to suit their specific project needs.
Cons
- Steep Learning Curve: The boilerplate includes a significant number of features and tools, which can make it challenging for beginners to fully understand and utilize all the available functionality.
- Potential Overkill for Small Projects: For small or simple Vue.js projects, the comprehensive nature of Vuesion may be overkill, and a more lightweight boilerplate or setup might be more appropriate.
- Potential Maintenance Overhead: As the project evolves and new versions of the underlying libraries are released, maintaining and updating the boilerplate to stay up-to-date may require additional effort.
- Limited Community Support: Compared to more popular Vue.js projects, Vuesion may have a smaller community and fewer resources available for troubleshooting and support.
Getting Started
To get started with Vuesion, follow these steps:
- Clone the repository:
git clone https://github.com/vuesion/vuesion.git
- Install the dependencies:
cd vuesion
npm install
- Start the development server:
npm run serve
This will start the development server and open the application in your default web browser. You can now start modifying the code and see the changes in real-time.
- Build the production-ready application:
npm run build
This will create a dist
folder containing the optimized and minified files for your production deployment.
For more detailed information, please refer to the Vuesion documentation.
Competitor Comparisons
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
Pros of Vue
- Larger community and ecosystem, with more resources and third-party libraries
- More flexible and lightweight, allowing for gradual adoption in existing projects
- Extensive documentation and learning resources for developers of all levels
Cons of Vue
- Less opinionated structure, which may lead to inconsistencies in large projects
- Requires more setup and configuration for advanced features and optimizations
- Steeper learning curve for complex state management and routing
Code Comparison
Vue (basic component):
<template>
<div>{{ message }}</div>
</template>
<script>
export default {
data() {
return {
message: 'Hello, Vue!'
}
}
}
</script>
Vuesion (component with TypeScript):
<template>
<div>{{ message }}</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const message = 'Hello, Vuesion!';
return { message };
},
});
</script>
Vuesion provides a more structured approach with TypeScript support out of the box, while Vue offers a simpler setup for basic components. The choice between the two depends on project requirements and team preferences.
The Intuitive Vue Framework.
Pros of Nuxt
- More comprehensive framework with built-in server-side rendering (SSR) capabilities
- Larger ecosystem and community support, with extensive documentation and plugins
- Automatic code splitting and optimized performance out of the box
Cons of Nuxt
- Steeper learning curve due to its more opinionated structure and conventions
- Potentially heavier initial setup and configuration compared to Vuesion
- Less flexibility in project structure as it follows a specific directory layout
Code Comparison
Nuxt:
// pages/index.vue
export default {
asyncData({ $axios }) {
return $axios.$get('https://api.example.com/data')
}
}
Vuesion:
// src/app/home/Home/Home.vue
import { HttpService } from '@/app/shared/services/HttpService';
export default {
async created() {
this.data = await HttpService.get('https://api.example.com/data');
}
}
The code comparison shows how Nuxt handles asynchronous data fetching using the asyncData
method, which is specific to Nuxt and allows for server-side data fetching. Vuesion, on the other hand, uses a more traditional Vue.js approach with a custom HttpService
in the created
lifecycle hook.
Quasar Framework - Build high-performance VueJS user interfaces in record time
Pros of Quasar
- Extensive UI component library with Material Design support
- Cross-platform development capabilities (web, mobile, desktop)
- Active community and frequent updates
Cons of Quasar
- Steeper learning curve due to its comprehensive nature
- Potentially larger bundle size for simple applications
Code Comparison
Quasar component usage:
<template>
<q-btn color="primary" label="Click me" />
</template>
Vuesion component usage:
<template>
<button class="button">Click me</button>
</template>
Key Differences
- Quasar offers a more extensive ecosystem with built-in components and tools
- Vuesion focuses on providing a lean, customizable starting point
- Quasar supports multiple build targets, while Vuesion is primarily web-focused
Use Cases
- Choose Quasar for rapid development of complex, cross-platform applications
- Opt for Vuesion when building lightweight web applications with full control over the architecture
Community and Support
- Quasar has a larger community and more comprehensive documentation
- Vuesion provides a simpler structure, making it easier for beginners to understand and contribute
Performance Considerations
- Quasar may have a larger initial bundle size but offers optimizations for production
- Vuesion starts lean, allowing for better performance in simple applications
🐉 Vue Component Framework
Pros of Vuetify
- Larger community and ecosystem with more resources and third-party components
- Comprehensive Material Design implementation with a wide range of pre-built components
- Extensive documentation and examples for easier learning and implementation
Cons of Vuetify
- Heavier bundle size due to the large number of components and features
- Less flexibility in customizing the overall design aesthetic beyond Material Design
- Steeper learning curve for developers new to Material Design principles
Code Comparison
Vuetify component usage:
<template>
<v-app>
<v-btn color="primary">Click me</v-btn>
<v-card>
<v-card-title>Card Title</v-card-title>
</v-card>
</v-app>
</template>
Vuesion component usage:
<template>
<vue-button color="primary">Click me</vue-button>
<vue-card>
<vue-card-title>Card Title</vue-card-title>
</vue-card>
</template>
Both frameworks offer component-based architecture, but Vuetify follows Material Design more strictly, while Vuesion provides more customizable components.
A Vue.js 2.0 UI Toolkit for Web
Pros of Element
- Larger community and more widespread adoption, with over 50k GitHub stars
- Extensive component library with 60+ pre-built UI components
- Comprehensive documentation and examples in multiple languages
Cons of Element
- Steeper learning curve due to the large number of components and options
- Potentially heavier bundle size if not properly tree-shaken
- Less flexibility for customization compared to Vuesion's more minimal approach
Code Comparison
Element:
<el-button type="primary" @click="handleClick">
Click me
</el-button>
Vuesion:
<vue-button primary @click="handleClick">
Click me
</vue-button>
Both repositories provide Vue.js component libraries, but they differ in scope and approach. Element offers a comprehensive set of UI components, making it suitable for rapid development of complex applications. Vuesion, on the other hand, provides a more lightweight foundation, focusing on best practices and scalability.
Element's extensive component library can accelerate development for projects requiring a wide range of UI elements. However, this comes at the cost of a larger bundle size and potentially less flexibility for custom designs.
Vuesion emphasizes a clean, modular architecture and encourages best practices in Vue.js development. It offers fewer pre-built components but provides a solid foundation for building scalable applications with more control over the final design and functionality.
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin
Pros of vue-element-admin
- More comprehensive and feature-rich admin panel solution
- Larger community and ecosystem, with extensive documentation
- Includes advanced features like permission control and i18n out of the box
Cons of vue-element-admin
- Steeper learning curve due to its complexity
- Potentially heavier and slower performance for simpler projects
- Less flexibility for customization compared to Vuesion's modular approach
Code Comparison
vue-element-admin:
import permission from './permission'
Vue.use(permission)
// In a component
export default {
permission: {
role: ['admin', 'editor']
}
}
Vuesion:
import { registerModule } from '@/app/store'
import { MyModule } from './MyModule'
registerModule(['my', 'module'], MyModule)
// In a component
export default {
computed: {
...mapGetters(['myModuleData'])
}
}
vue-element-admin offers a more opinionated approach with built-in permission handling, while Vuesion provides a flexible, modular structure for custom state management. vue-element-admin is better suited for complex admin panels, whereas Vuesion offers more flexibility for various project types.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Vuesion
Vuesion is a boilerplate that empowers product teams to build faster with modern best practices across engineering and design. It features a full-stack framework, comprehensive design system, robust testing, and seamless internationalization.
Live demo
Please visit the vuesion app on heroku!
Or have a look into the future and visit the vuesion-next app on heroku!
Get started
Documentation
Features
Testing
- Cypress.io E2E testing
- Vitest Testing framework
- Testing-library to encourage good testing practices
- 250+ example tests included
DX, Code quality and maintenance
- TypeScript
- Eslint
- Commit message linting
- Prettier code formatting
- Semantic releases
- Changelog
- Husky pre-commit hooks
- Dockerfile included
- .env support
Core
- server-side-rendering, single-page-app or statically generated HTML with Nuxt.js
- 100% customizable Design-system with 35+ components including
- layout, typography, button, input, select, checkbox, radio, (range-)slider, toggle, ...
- theming/whitelabel support
- Figma UIKit
- SEO support
- i18n support
- Authentication module
- PWA module
- Code generators for
- components
- pages
- RESTful APIs
- pinia stores
- Storybook with the following add-ons
- Form validation with vee-validate
- Anime.js integration
Support this project
- Give a :star:!
it!
- Join the
Discord community!
- Contribute!
Contribute
Contributions are always welcome! Please read the contribution guidelines first.
Thanks goes to these wonderful people:
This project follows the all-contributors specification. Contributions of any kind welcome!
References
- nuxt
- @sidebase/nuxt-auth
- nuxt/pwa
- nuxt/i18n
- Storybook
- vitest
- cypress.io
- testing-library
- vee-validate
- animejs
Contact
License
Top Related Projects
This is the repo for Vue 2. For Vue 3, go to https://github.com/vuejs/core
The Intuitive Vue Framework.
Quasar Framework - Build high-performance VueJS user interfaces in record time
🐉 Vue Component Framework
A Vue.js 2.0 UI Toolkit for Web
:tada: A magical vue admin https://panjiachen.github.io/vue-element-admin
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot