After installing hoodie,
npm start will run
which reads out the configuration
from all the different places using the rc
package, then passes it as options to
server/index.js, the Hoodie core
the passed options are merged with defaults and parsed into configuration for
the Hapi server. It passes the configuration on to hoodie-server,
which combines the core server modules. It also bundles the Hoodie
client on first request to
/hoodie/client.js and passes in the
configuration for the client. It also makes the app’s
accessible at the
/ root path, and Hoodie’s Core UIs at
Once all configuration is taken care of, the internal plugins are initialised (see server/plugins/index.js). We define simple Hapi plugins for logging and for serving the app’s public assets and the Hoodie client.
Once everything is setup, the server is then started at the end of cli/start.js and the URL where hoodie is running is logged to the terminal.
Hoodie is a server built on top of hapi with frontend APIs for account and store related tasks. It is split up in many small modules with the goal to lower the barrier to new code contributors and to share maintenance responsibilities.
Client for the Account JSON API. It persists session information on the client and provides front-end friendly APIs for things like creating a user account, confirming, resetting a password, changing profile information, or closing the account.
Store client for data persistence and offline sync.
Browser library to monitor a connection status. It emits
reconnectevents if the request status changes and persists its status on the client.
Hoodie’s built-in Admin Dashboard, built with Ember.js