npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

frill

v0.6.20

Published

A flux + api application framework, using hapi and React.

Downloads

75

Readme

Yet another FLUX starter kit

Circle CI Code Climate Test Coverage HAPI 9.3.0

dependencies devDependency Status

Gitter

Features

You can always implement anything yourself.

Getting Started

$ npm install -g frill

NOTE: use sudo if necessary

then, the command below creates a new project from your current directory:

$ frill new appName

if you only want the front-end (for creating isomorphic flux app), use:

$ frill frontend appName

if you only want the back-end (for creating APIs with hapi), use:

$ frill backend appName

Building your app

$ npm run build

or

$ gulp build

building your app for release, use:

$ npm run build-release

or

$ gulp build --release

Run app and watch for changes

$ npm start

or

$ npm run watch

or

$ gulp

Run your app as a daemon

Start app

$ npm run service-start

Stop app

$ npm run service-stop

Restart app

$ npm run service-restart

See forever for more information.

Deploying your app

Install Shipit

$ npm install -g shipit

Configure deployments inside ./config/default.js to your environment, then

For production

$ shipit production deploy

For staging

$ shipit staging deploy

shipit (environment) pwd, shipit (environment) start, shipit (environment) stop, shipit (environment) restart is configured by default.

See Shipit and shipit-deploy for more information.

Testing your app

$ npm test

exports NODE_ENV=test automatically

or

$ NODE_ENV=test gulp test

IMPORTANT: You should always use test for your NODE_ENV environment variable to make sure that your production/development database will not be affected by tests

Project directory structure

When using the new command:

.
├─ /docs/                   # Documentation files for the project
├─ /node_modules/           # 3rd-party libraries and utilities
├─ /public/                 # The folder for compiled output and serving
├─ /src/                    # The source code of the application
│  ├─ /actions/             # Actions that allow to trigger a dispatch to stores
│  ├─ /api/                 # REST API /api/ endpoints
│  │   ├─ /auth/            # Authentications
│  │   │  └─ /strategies/   # Authentication strategies
│  │   ├─ /footprints/      # Customize footprint routes
│  │   │  └─ /user.js       # An example for customizing footprint routes (filename must be identical with the model name)
│  │   ├─ /v1/              # Place your version 1 api routes here
│  │   └─ routes.js         # File to include all your API routes
│  ├─ /assets/              # Asset files should be placed here
│  │   └─ /images/          # Image files
│  ├─ /components/          # Place your Frill(or React) Components here
│  │   ├─ /Mediators/       # Components which watches the stores, dispatch actions, etc.
│  │   ├─ /Pages/           # Page components used in react-router (src/config/routes.jsx)
│  │   ├─ /UI/              # The 'dumb' (mainly)render-only components
│  │   └─ App.jsx           # A component which wraps around the app
│  ├─ /config/              # All configuration files are placed here
│  │   ├─ /env/             # Environment-specific configurations are placed here
│  │   │  ├─ /development/  # Configurations used in NODE_ENV = 'development'
│  │   │  └─ /production/   # Configurations used in NODE_ENV = 'production'
│  │   ├─ /locales/         # Language files are placed here
│  │   ├─ api.js            # Configurations for API routes
│  │   ├─ cache.js          # Configurations for hapi's caching
│  │   ├─ config.js         # Configurations for configurations
│  │   ├─ cors.js           # Configurations for CORS(Cross-Origin Resource Sharing)
│  │   ├─ deployment.js     # Configurations for deployments
│  │   ├─ footprints.js     # Configurations for footprints (Builds routes automatically from models)
│  │   ├─ i18n.js           # Configurations for internationalizations
│  │   ├─ logs.js           # Configurations for hapi's logging
│  │   ├─ models.js         # Configurations for models (Using 'dogwater' by default)
│  │   ├─ routes.jsx        # Routes for 'react-router'
│  │   ├─ server.js         # Basic configurations for hapi
│  │   ├─ session.js        # Configurations for sessions
│  │   └─ strategies.js     # Configurations for authentication strategies
│  ├─ /helpers/             # All helper methods/classes should be placed here
│  ├─ /models/              # Dogwater (waterline) models to use inside API
│  ├─ /stores/              # Stores that allow to emit changes to components
│  ├─ /styles/              # CSS(Stylus) files should be placed here
│  ├─ /templates/           # Template files should be placed here
│  ├─ /bootstrap.js         # Bootstraps client and server codes
│  ├─ /client.js            # Entrypoint for Client bundle
│  └─ /server.js            # Entrypoint for server-side application
├─ /tasks/                  # Gulp task scripts
├─ /test/                   # Test scripts (using Mocha)
├─ .gitignore               # List of files to exclude from git repository
├─ .eslintrc                # Configuration for ESLint
├─ .jshintrc                # Configuration for JSHint
├─ README.md                # The README file
├─ esdoc.json               # Configuration for ESDoc
├─ app.js                   # Entrypoint for server-side without using gulp
├─ gulpfile.babel.js        # Used for configuring gulp (in ES6 syntax)
├─ package.json             # List of 3rd party libraries using NPM
├─ webpack.config.js        # Webpack configuration for bundling client scripts
├─ shipitfile.js            # Enables ES6 syntax for shipitfile.babel.js
└─ shipitfile.babel.js      # Configuration for deployment tasks

NOTE: The project structure changes when using the $ frill frontend appName command and the $ frill backend appName command.

Questions or Bugs?

Please send us an issue, or a chat in gitter.

License

MIT