Blitz-js is a modular full-stack framework for real-time applications that puts the developer first. Be it frontend development in ES7+, hot-module-replacement for your view, or component-based API endpoints to keep your backend tidy - blitz-js gives you all of that out of the box with no tedious setups. It just works.
Blitz-js comes with everything needed to create a full-size web application for modern standards:
- Vue.js as UI rendering engine
- Webpack for optimal dev & prod bundling
- Full OAuth2 integration
- Pub/Sub model for real-time data
- Rate limits and caching on a per endpoint-component basis
- Automatically exposed API endpoints to HTTP and WebSockets
- Decoupled API servers from CPU intensive endpoints for efficient scaling with docker
We keep blitz-js fairly opinionated, because it allows us to focus on one solution and make its usage as convenient and effective as possible. However, the fully modular nature of the framework allows to easily modify existing nodes, so you'll never be locked in with what we think is best.
Getting started in 5 minutes
Before you get started, make sure you have redis and
mongodb running on their default ports.
If you have to install these first, I apologize for lying about the "5 minutes" in the title. If not, you'll have a blast!
Select your project folder and run the following:
npm initnpm install blitz-js
Next we'll create index.js as our entrypoint to the server
// index.jsconst Blitz =const blitz =// Load auth, view and api nodes needed for a basic setupblitz
Ready to go
Now all we need to do is run
And blitz-js will automatically create some default API endpoints and views
that you can learn the basics from.
localhost:3000 to have a look at the view server.
If everything went right, you'll find an interactive tutorial on that server, asking you to hack the site. You'll have to work on the site's own code to fulfill some objectives and proceed. There'll be plenty of tips though, so it shouldn't be too hard. In fact, there's always a full solution available to each objective at all times.
Getting ready for production
For advanced usage that you'll need in production, have a look at blitz-js-loader. It lets you load every single node individually, pass custom configs and create your own group of blitz-js nodes.
We cannot stress enough how important this is for production, especially if you aim to containerize your application, since every node can be split up into a separate process this way.