All Projects β†’ DaxChen β†’ Vue Firebase Starter

DaxChen / Vue Firebase Starter

Licence: mit
boilerplate of vue/vuex/vue(x)-router, with sass/prerendering, muse-ui, and firebase/firebaseui

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vue Firebase Starter

Bento Starter
🍱 Full-Stack solution to quickly build PWA applications with Vue.js and Firebase
Stars: ✭ 1,519 (+3432.56%)
Mutual labels:  firebase, firebase-auth, vuex, pwa
Meal Prep
Source code for a 4-part series I wrote about Vue, Vue Router, Vuex and Vuetify
Stars: ✭ 496 (+1053.49%)
Mutual labels:  firebase, firebase-auth, vuex, vue-router
React Most Wanted
React starter kit with "Most Wanted" application features
Stars: ✭ 1,867 (+4241.86%)
Mutual labels:  firebase, starter-kit, firebase-auth, pwa
React Firebase Admin
React βš›οΈ starter kit with Firebase πŸ”₯ and Bulma for setting up an admin dashboard - Highly scalable, PWA, Serverless
Stars: ✭ 232 (+439.53%)
Mutual labels:  firebase, starter-kit, boilerplate, pwa
Buefy Shop
A sample shop built with Nuxt, Stripe, Firebase and Serverless Functions
Stars: ✭ 207 (+381.4%)
Mutual labels:  firebase, vuex, pwa
Laqul
A complete starter kit that allows you create amazing apps that look native thanks to the Quasar Framework. Powered by an API developed in Laravel Framework using the easy GraphQL queries language. And ready to use the Google Firebase features.
Stars: ✭ 110 (+155.81%)
Mutual labels:  firebase, firebase-auth, pwa
Enso
Laravel Vue SPA, Bulma themed. For demo login use `[emailΒ protected]el-enso.com` & `password` -
Stars: ✭ 959 (+2130.23%)
Mutual labels:  boilerplate, vuex, vue-router
Docker Vue Node Nginx Mongodb Redis
πŸ‰ An awesome boilerplate, Integrated Docker, Vue, Node, Nginx, Mongodb and Redis in one, Designed to develop & build your web applications more efficient and elegant.
Stars: ✭ 34 (-20.93%)
Mutual labels:  vuex, pwa, vue-router
Vue Pomo
A progressive web app for the Pomodoro Technique, built with Vue 2.0, Vuex and Firebase.
Stars: ✭ 51 (+18.6%)
Mutual labels:  firebase, vuex, pwa
Vue Firebase Auth Vuex
Vue FirebaseπŸ”₯ Authentication with Vuex
Stars: ✭ 248 (+476.74%)
Mutual labels:  firebase, vuex, pwa
Plato
❀️ a Boilerplate for [mobile] SPAs use vue, vuex, vue-router
Stars: ✭ 283 (+558.14%)
Mutual labels:  boilerplate, vuex, vue-router
Vue Boilerplate Template
🍎 Efficient development of web SPA using Vue.js(2.*) + Webpack + Element-ui + Pwa + Vuex + Vuex-router + Vue-i18n + Dayjs + Lodash.
Stars: ✭ 461 (+972.09%)
Mutual labels:  vuex, pwa, vue-router
Vue Ts Daily
基于vue、Typescript、pwaηš„δΈ€ζ¬ΎδΉ ζƒ―ε…»ζˆapp
Stars: ✭ 735 (+1609.3%)
Mutual labels:  vuex, pwa, vue-router
Vue Memo
Using Vue.js for memo web App. webpack, vuex, vue-router, Firebase.
Stars: ✭ 88 (+104.65%)
Mutual labels:  firebase, vuex, vue-router
Yesplaymusic
ι«˜ι’œε€Όηš„η¬¬δΈ‰ζ–Ήη½‘ζ˜“δΊ‘ζ’­ζ”Ύε™¨οΌŒζ”―ζŒ Windows / macOS / Linux
Stars: ✭ 12,981 (+30088.37%)
Mutual labels:  vuex, pwa, vue-router
Vuejs Firebase Shopping Cart
Shopping cart demo using Vuejs and Firebase
Stars: ✭ 274 (+537.21%)
Mutual labels:  firebase, firebase-auth, vue-router
Webxr Webpack Boilerplate
Starter Kit for building rich, immersive WebXR projects (featuring A-Frame) PWA with Webpack and SASS
Stars: ✭ 48 (+11.63%)
Mutual labels:  starter-kit, boilerplate, pwa
Meteor Apollo Starter Kit
Meteor, Apollo, React, PWA, Styled-Components boilerplate
Stars: ✭ 91 (+111.63%)
Mutual labels:  starter-kit, boilerplate, pwa
Preact Starter
Webpack3 boilerplate for building SPA / PWA / offline front-end apps with Preact
Stars: ✭ 384 (+793.02%)
Mutual labels:  starter-kit, boilerplate, pwa
Hackernews
HackerNews clone built with Nuxt.js
Stars: ✭ 758 (+1662.79%)
Mutual labels:  vuex, pwa, vue-router

vue-firebase-starter

Standard - JavaScript Style Guide

Progressive Web App (PWA) starter-kit using vue/vuex/vue(x)-router/offline-plugin, with sass, prerendering, muse-ui, and firebase/firebaseui!

Features

Everything in vue-cli:webpack (hot reloading/vue file/webpack2/eslint/postcss+sass+stylus+less/...), plus:

  • vue / vuex / vue-router / vuex-router-sync
  • firebase
  • vuexfire
  • firebaseui
  • muse-ui
  • Offline Ready, Progressive Web App (PWA)
  • prerendering for better SEO

Online Demo

Build Commands

# install dependencies
yarn # or `npm install`

# serve with hot reload at localhost:8080
yarn dev # or `npm run dev`

# build for production with minification and prerendering
yarn build # or `npm run build`

# build for production and view the bundle analyzer report
npm run build --report

# run unit tests
yarn run unit # or `npm run unit`

# run e2e tests
yarn run e2e # or `npm run e2e`

# run all tests
yarn test # or `npm test`

For detailed explanation on how things work, checkout the guide and docs for vue-loader.

Folder Structure

The folder structure is basically the same as vue-cli's webpack template.

Check the folder structure of the docs here.

β”œβ”€β”€ build           # webpack config files
β”œβ”€β”€ config          # project config (mainly used by webpack)
β”œβ”€β”€ dist            # production bundled files when `npm run build`
β”œβ”€β”€ node_modules    # npm dependencies
β”œβ”€β”€ src             # the main src folder, see below for detail
β”œβ”€β”€ static          # pure static assets (directly copied)
β”œβ”€β”€ test            # unit tests and e2e tests
β”œβ”€β”€ index.html      # the index.html template, used by html-webpack-plugin
└── package.json    # package info, build scripts and npm dependencies
src
β”œβ”€β”€ assets              # module assets (processed by webpack)
β”œβ”€β”€ components          # ui components
β”œβ”€β”€ router              # vue-router routes
β”œβ”€β”€ sass                # sass styles, _variables and _mixins
β”œβ”€β”€ store               # vuex setting, store and modules
β”œβ”€β”€ views               # also called `containers`, see below
β”œβ”€β”€ App.vue             # main app component
β”œβ”€β”€ initFirebase.js     # firebase settings, put your apiKeys here
β”œβ”€β”€ main.js             # the entry point
β”œβ”€β”€ muse-ui-theme.less  # muse-ui theme settings
└── pwa.js              # progressive web app (offline-plugin) runtime

To understand the difference between components and views (or containers), check out this article by redux author Dan Abramov (@gaearon).

You can rename the views to containers if you prefer : )

Development

Muse-UI Theme

Muse-UI currently only support theme settings using less. Check out the docs and change variables in this file src/muse-ui-theme.less.

You can use the color palette from material design colors, watch the video to learn how to choose them.

Webpack Settings

Globals Variables

__DEV__

There is a __DEV__ variable that is defined by webpack, and will be replaced during compile time. Therefore, you can use this in your code to separate debug code and production code.

For example, this

if (__DEV__) {
  window.firebase = firebase
}

will make window.firebase available during development for easier debugging, but will be trimmed out when building for produciton.

Aliases

@ = src

When importing, the @ sign is aliased to src directory, so no need to use ../../../ in nested directories anymore, just use @/store, @/components, etc.

Static folder path

Different from the default settings of vue-cli webpack template, I changed the assetsSubDirectory from 'static' to ''. This means that everything you put in the static/* folder will be copied to the root of dist/*, instead of dist/static/*.

I did this because Netlify's _redirects needs to be in the root of the published directory dist/, see the following Deploy/Netlify section for more info.

Progressive Web App (PWA)

The offline-plugin is only used in production build.

Thanks to the awesome offline-plugin, vue-firebase-starter is offline ready! It uses ServiceWorker and fallbacks to AppCache to cache webpack output assets (or other assets if specified).

To understand the life-cycle of ServiceWorker and how it is updated, check out this awesome video.

For more information, check out offline-plugin's docs.

Prerendering

vue-firebase-starter uses prerender-spa-plugin to prerender html when building for production.

Because prerender will generate rendered DOM into html, and vue needs to be able to take control after, make sure the root component has the same id as the element it's replacing.

Deployment

favicon

I recommend http://realfavicongenerator.net/, the best favicon generator I've used!

Just follow the instruction and put the extracted files in the static/ folder, and override the <head></head> section in index.html.

Netlify

I highly recommend you try out Netlify if you haven't!

Just signup, choose your GitHub/GitLab/BitBucket account and repo, put in two settings:

  • build command: yarn build
  • Publish directory: dist

And you're all set! Every time you push to the chosen branch, you're site rebuilds and deploys automatically!

_redirects

To use Netlify with vue-router (or any other SPA), we need to setup a _redirects file in the root of the published directory (NOT the root of project).

This is already done for you, check out statics/_redirects.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].