You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
www/src/app/resources/blog-posts/Flitter-Framework-Cohesive-...

3.5 KiB

title slug date tags
Flitter Framework: Cohesive Express.js Flitter-Framework-Cohesive-Express-js 2019-03-19 00:01:00
flitter
webdev

My take on a Node.js framework, based on Express.

This is the first part in my series on Flitter, my Express-based web app framework. This first post is an introduction to Flitter and the motivation behind it. There will be more parts to come, but for a crash-course, check out the documentation.

I love Express. I think its wonderfully extensible, modular, and dynamic. However, when building Express-based apps, Ive noticed that there are quite a few things that I find myself repeating. Enough, that I decided to standardize the steps into my own framework: Flitter.

The Bigger FlitterThe Bigger Flitter

Flitter is a full-stack model-view-controller framework built using various Express packages. It is designed to provide a more cohesive environment for developing with Express. However, unlike some other frameworks, Flitter isnt supposed to *replace *Express in your app, but rather complement it.

Flitter includes a Unit-based startup system so various underlying functionality in Flitter is broken into manageable, extensible chunks. These chunks provide commonly used things like sessions, MongoDB access, database models, controllers, the Pug view engine, middleware, and an interactive shell.

This means that Flitter does a lot of the initial hard work for you — it provides a simple way to define structures like models, routes, controllers, middleware, etc. These structures are imported by Flitter and are passed to their respective sub-components (Mongoose, Express, Pug).

All you have to do is write the logic for your app.

Flitter also provides a coherent system for add-on packages. These packages can be created by 3rd parties (or myself) to enable additional functionality in Flitter. Because Flitters functionality is already broken up into chunks, creating these packages is trivial — simply add their units.

I developed Flitter for a number of reasons:

First, I didnt like how hard to understand other frameworks like AdonisJS and Sails are. Not necessarily their functionality, but how they work under the hood. Flitter is broken up into parts so it can be easily understood and modified.

Second, I use the functionality provided by Flitter a *lot. *So, Flitter is a generic implementation of how I would start every Node.js application I write. This is useful for me. I decided to spin if off as a framework so it will hopefully be useful for you, too.

Third, lets be honest — I wanted to learn how to build a framework. I think it has been a good opportunity to expand my ES6 skills, and it has taught me how Express and Node.js work at a much deeper level. Plus, its just fun.

Flitter is free as in freedom.

Its also open-source and developed over on my Git server. Contributions/suggestions/bug reports are welcome! I also dog-food Flitter — it runs my website and several other projects I use.

How do I get started?

Interested? Great! In the subsequent parts in this series, Ill walk through creating a sample app using Flitter. But, Flitter is fully-documented, so you can check out the documentation here to get started.