THIS IS ALPHA, BE CAREFUL
I'm also VERY interested in feedback / PRs, so send them my way or email me!
Use npx, if you do not have sao installed. npx comes bundled with npm version 5.2+.
npx sao npm:@feathers-nuxt/template-app --update awesome-app
You will be prompted to answer a couple of questions to determine how the template should be customized to your needs.
Sao will then clone the template in this repository and put the customized template inside
If you already have sao installed globally, just invoke it with this template.
sao npm:@feathers-nuxt/template-app --update awesome-app # downloads template from npm # sao feathers-nuxt/template-app --update awesome-app # downloads template from github
You may also use
f3 cli instead of
sao if you install it globally.
yarn global add @feathers-nuxt/cli # npm i -g @feathers-nuxt/cli f3 init awesome-app
yarnis preferred to
npm, although you may use the later if you so wish.
Once your app is initialized,
cd awesome-app to access your new project.
To start the application in development mode - watch files for changes and reload - run
If you are using an sql database ensure you run
yarn migrate up to create necessary tables, then
yarn seed to add test data to the database.
There are several other npm scripts defined in package.json. To list them all, invoke
- SSR ready PWA with offline support.
- User Authentication and Authorization taken care of.
- Logging mixin for Feathers app backed by winston with file and console transports.
- End-to-end, hierarchical, real-time, colorful logs and stories with console and websockets transports.
- Bring your own database or RESTful backend for data storage.
- Database migration and seeding npm scripts included.
- Project build and deployment scripts provided.
- Use any compile to JS langauge supported by webpack: livescipt, coffescript, typescript,
- Use any compile to CSS language supported by webpack: stylus, sass, less,
- Use any compile to HTML language supported by webpack: pug, slim, haml,
- Use HEML markup language for building responsive emails with any compile to HTML language.
- Notifications service for sending all kinds of transactional alerts via emails, SMS, pushes, webpushes or slack
- File uploads service with configurable backing storage: Any store that implements the blob store interface.
- All feathers services automatically available in
- Namespaced routing to prevent conflict of API and UI routes.
- Optional caching for API routes using Redis on the backend.
- Automatic caching for API routes using feathers-vuex on the frontend.
- Automatic caching for UI routes using workbox runtimeCaching.
- Optional distributed, delayed background job system backed by Redis.
- iView: A high quality UI Toolkit built on Vue.js
- DataTable and DataCard UI components compatible with feathers service endpoints.
An application initialized using
f3 will have the following directory stucture.
├── f3.config.js # nuxt & backpack configuration ├── .babelrc # babel configuration to use with backpack ├── .podhook # shell commands to run on remote server during deploy ├── .gitignore # list of file to ignore while deploying to remote server └── src ├── client # transpiled using nuxt ├── assets # files to transpile with webpack: less, stylus ├── static # files to serve as static resources ├── pages # Vue SFC accessible via a URL ├── components # Vue SFC to use within other SFC ├── layouts # Vue SFC to use for page layout ├── middleware # nuxt renderer middleware ├── modules # nuxt modules ├── plugins # Vue.js plugins ├── store # Vuex store modules └── utils ├── initClient.js # creates feathers client for server and client bundle ├── initAuth.js # autheticate and populate store with user object └── store ├── modules # modules for vuex └── plugins # plugins for vuex └── server # transpiled using backpack ├── config ├── default.yml # settings for development env ├── production.yml # settings for production env └── production-0.yml # settings for PM2 app instance 0 ├── index.ls # entry to initialize both app and api servers ├── app.ls # express server with nuxt middleware and feathers as sub app ├── api.ls # feathers server with socket.io and rest transports ├── api.hooks.ls # configures global api hooks ├── hooks # triggers run during resource access └──global.ls # configures global api hooks ├── notifications # templates and dispatcher for email, sms, webpush, ├── services # service, schema, model and hooks for resources in db, fs, └── auth.ls # configures feathers for authentication └── db ├── orm.ls # configures feathers to use mongoose or sequelize ORM ├── seed.ls # populates database with dummy data └── migrations # procedures to creates and drop tables └── middleware └── nuxt.ls # nuxt middleware for SSR