Level Up!

The next evolution in the NoFlo Development Environment.
Focused on touch and motion.

Visit flowhub.io

About NoFlo

Flow-Based Programming (FBP)

NoFlo is a JavaScript implementation of Flow-Based Programming (FBP). Separating the control flow of software from the actual software logic. Helping you organize large applications easier than traditional OOP paradigms, especially when importing and modifying large data sets.

NoFlo and Node.js

FBP itself is not a new idea: it comes from a term IBM used in the 70s to define the concepts of more manageable business workflows. NoFlo, however, refreshes these concepts and brings them to HTML5 and Node.js applications.

NoFlo library

The MIT-licensed NoFlo library can either be used to run full flow-based applications or as a library for making complex workflows or asynchronous processes more manageable. It can also be used as an Extract, Transform, Load (ETL) tool in business applications.

NoFlo has been written in CoffeeScript for simplicity.

NoFlo Videos

Featured: The origins of NoFlo

Play Video
  • Introduction to Flow-Based Programming and NoFlo
  • The origins of Flow-Based Programming with J Paul Morrison
  • Leigh Taylor chats about designing the NoFlo UI
Funded on Kickstarter

Thank You!

Together we funded the NoFlo Development Environment on Kickstarter.

NoFlo and Flow-Based Programming

The significance of FBP.

"In computer science, flow-based programming (FBP) is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing, where the connections are specified externally to the processes. These black box processes can be reconnected endlessly to form different applications without having to be changed internally. FBP is thus naturally component-oriented..."

Flow-Based Programming on Wikipedia

"This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface."

Unix Philosophy

"I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages (so messaging came at the very beginning -- it took a while to see how to do messaging in a programming language efficiently enough to be useful)."

Alan Kay's original idea of object-oriented programming.

Flow-Based Programming, 2nd Edition
by J. Paul Morrison

Flow-Based Programming, 2nd edition

Be a part of NoFlo

Watch and Participate in the development of NoFlo

Participate in the development of NoFlo on GitHub. Also see the NoFlo change log.