Coder Social home page Coder Social logo

rifandani / vue-app Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 2.08 MB

Bulletproof Vue 3 SPA template

Home Page: https://vue-app-rifandani.vercel.app

License: MIT License

JavaScript 1.37% HTML 0.30% TypeScript 50.78% Vue 47.20% CSS 0.37%
ark-ui axios pinia tailwind-merge tanstack-vue-query type-fest typesafe-i18n typescript vee-validate vue-router

vue-app's Introduction

Intro

CI

DeepScan grade

An opinionated and scalable project starter and reference for building bulletproof production ready Vue applications.

Intro

Vue is an excellent tool for building front-end applications. It has a diverse ecosystem with hundreds of great libraries for literally anything you might need. However, being forced to make so many choices can be overwhelming. It is also very flexible, you can write Vue applications in any way you like, but that flexibility comes with a cost. Since there is no pre-defined architecture that developers can follow, it often leads to a messy, inconsistent, and over-complicated codebase.

This repo attempts to present a way of creating Vue applications using some of the best tools in the ecosystem with a good project structure that scales very well. Based on my experience working with different codebases, this architecture turns out to be the most effective.

The goal here is to serve as a collection of resources and best practices when developing Vue applications. It is supposed to showcase solving most of the real-world problems of an application in a practical way and help developers write better applications.

Feel free to explore the codebase to get the most value out of the repo. For a full documentation, check out the docs folder in the root of the repo.

License

MIT

vue-app's People

Contributors

rifandani avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

vue-app's Issues

Use Storybook

What problem is this solving

  • build, view, test, debug, and document UI components in isolation
  • develop hard-to-reach states and edge cases without needing to run the whole app
  • track components history and versions
  • we can publish the documented UI components
  • hundreds of addons that helps build UI faster, document component libraries, and integrate with other tools

Proposed solution

  • delete all demo components in /playground
  • use storybook
  • setup storybook CI

Describe alternatives you've considered

No response

Uninstall primevue, use radix-vue instead

Primevue pro:

  • a LOT of components ๐Ÿ‘ ๐Ÿ‘

Primevue cons:

  • not composables, like radix-vue (biggest concerns) ๐Ÿ‘Ž ๐Ÿ‘Ž
  • the concept of passthrough or pt is a hassle and not typesafe. They need this pt, because they didn't compose the components correctly. The mergeProps and mergeSections also a hassle. ๐Ÿ‘Ž

radix vue pro:

  • composables ๐Ÿ‘ ๐Ÿ‘

radix vue cons:

  • not much components ๐Ÿ‘Ž

Use eslint flat config

The eslint flat config is the new recommended approach.

From v8.21.0, eslint announced a new config system.
In the new system, .eslintrc* is no longer used. eslint.config.js would be the default config file name.
In eslint v8, the legacy system (.eslintrc*) would still be supported, while in eslint v9, only the new system would be supported.

And from v8.23.0, eslint CLI starts to look up eslint.config.js.
So, if your eslint is >=8.23.0, you're 100% ready to use the new config system.

You might want to check out the official blog posts,

and the official docs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.