Welcome to Flitter.

Flitter is a lightweight, pleasant, MVC-style web app framework based on Express.js. Thanks for reading the docs. To get started with Flitter, check out the walkthrough here: Getting Started with Flitter.

If you've used an MVC framework before, here's a Quick Start guide you might find faster.

What is Flitter?

Flitter is an MVC style framework that aims to get you up and running faster by providing a structure and a wrapper for Express.js. Files in predictable directories are parsed into routes, middleware, controllers, models, and views. But, you are still working in a comfortable and well-supported Express environment.

Flitter provides access to the Express app, while making it possible to create an app without needing to piece together the Express framework.

Flitter's 1st party packages provide:

  • Statically defined routes
  • Full-featured ORM for MongoDB
  • User auth & sessions (see below)
  • A development CLI tool with interactive shell
  • Task-scheduling with Agenda
  • GridFS file support
  • and more...

Why?

Flitter's creator is a former Laravel junkie, but loves Node and Express. He got tired of having to hammer out the same 500 lines of code to start every project, but didn't want the bulk and obfuscation of larger frameworks like AdonisJS.

Flitter is designed to be compartmentalized and easy to understand. Every piece of its core functionality is broken into "units." Each of these units does some task like loading config, parsing middleware, connecting to the database, etc. You can see exactly what units your application is loading by viewing the Units file in config/Units.flitter.js. Each of Flitter's core units are open to view in the libflitter package.

Of course, this also means that Flitter is extremely easy to extend. If you want to add a custom package, simply require it and add its unit to the Units file!

Who?

Flitter was created by Garrett Mills, and its use is governed by the terms of the MIT License as specified in the LICENSE file in the main repo.

Of course, that does mean that Flitter is © 2019 Garrett Mills. ;)

Auth?

Out of the box, Flitter ships with a ready-to-use user registration/login/session system called flitter-auth. Flitter Auth provides:

  • Registration & Login
  • GuestOnly and UserOnly route middlewares
  • A customizable User model w/ Bcrypt hashed passwords
  • User session support with logout functions
  • a simple Providers API for custom auth sources
  • out-of-the-box support for:
    • database-backed users
    • LDAP-backed users
    • OAuth2-backed users
  • A built-in OAuth2 server

To get started using Flitter Auth, just run:

./flitter deploy auth

This command will copy the necessary files to your Flitter install. The files are directly accessible and, therefore, completely customizable.

Hooked?

Get started developing on Flitter with the tutorial here: Getting Started with Flitter.