Skip to content

What's in The Boring JavaScript Stack? ​

The Boring JavaScript Stack combines Sails, Inertia, Tailwind CSS, and your choice of Vue, React, or Svelte.

Vue, React, or Svelte ​

Pick one UI framework for the app's pages and components. Inertia uses those components as the client-side view layer.

Tailwind CSS ​

Tailwind CSS provides the utility classes used for styling pages and components.

Inertia ​

Inertia lets Sails controllers return pages and props without building a separate JSON API.

Sails ​

At the core of this stack is Sails, which handles routing, policies, models, helpers, sessions, scripts, and other server-side behavior.

Because we’re using Sails as the web framework, we can leverage a lot of its features including:

  • Authentication: Sails has a robust support for session-based authentication.
  • Sails Wish: Easily setup OAuth flows with providers like GitHub or Google in your Sails applications.
  • Authorization: Sails has policies which are versatile tools for authorization and access control: they let you execute some logic before an action is run in order to determine whether or not to continue processing the request.
  • Waterline ORM: Sails comes installed with a powerful ORM/ODM called Waterline, a datastore-agnostic tool that dramatically simplifies interaction with one or more databases.
  • WebSocket support: Sails apps are capable of full-duplex, realtime communication between the client and server.
  • File uploads: Skipper makes it easy to implement streaming file uploads to disk, Amazon S3, Cloudflare R2, DigitalOcean Spaces or any supported file upload adapters.
  • Shell scripts: Sails lets you run JavaScript functions as shell scripts. This can be useful for running scheduled jobs with Sails Quest (cron, Heroku scheduler), worker processes, and any other custom, one-off scripts that need access to your Sails app's models, configuration, and helpers.
  • Sails Mail: Send email through a Sails hook and helper-based API.
  • Sails Quest: Schedule background jobs in your Sails applications with human-readable intervals, cron expressions, and full access to your app's context.

All open source projects are released under the MIT License.