Funded! This project was successfully funded on September 15, 2013.

Photo-main
Play
00:00
00:00

Designing a new way to build software & manage complexity - a visual development environment for all

NoFlo Website, NoFlo Github Repos

With your support, we will complete the hosted NoFlo UI, making software creation more accessible and collaborative.  If you are a programmer, you don't have to wait for the UI. Under the hood, NoFlo is a flow-based programming (FBP) framework for JavaScript, production ready for Node.js & the browser.  If we hit our stretch goals, we will support native Android and iOS app development and Python!

Fast CompanyTechCrunch, CNetAllThingsDGigaOMAndroid Authority

"If NoFlo succeeds, it could herald a new paradigm of web programming."
-
Gabe Stein, FastCo.Labs

Stretch Goals

  • $250K - Java Implementation (Android Apps) 
  • $500K - Objective-C Implementation (iOS Apps) 
  • $1M - Python Implementation

Recent NoFlo Talks

ATTENTION DEVELOPERS

  • NoFlo Kickstarter, the hacker's perspective, an article by Henri, NoFlo's author
  • The NoFlo UI is optional!  The purpose of this Kickstarter is to fund the hosted UI, but NoFlo is usable right now as a code-only framework.  Graphs can be created via JSON, procedurally or a fancy DSL.  Components are shared with Github.  For more info see the documentation.
  • NoFlo is not all or nothing. NoFlo can be incrementally integrated into an existing projects, graphs can be used as a service or embedded in existing code.
  • NoFlo is 100% open source.  The UI and programming framework will always be open source.  Naturally, the hosted infrastructure will be closed. Check out our Github repos.
  • The NoFlo UI does not generate code!  NoFlo was made by coders and originally for code, we have a seasoned distaste for generated code.  The UI manipulates graphs which can be exported as JSON.
  • The NoFlo port of Jekyll
  • The NoFlo UI includes buit-in code editor, TDD and tight Github integration.  Unlike Quartz Composer or Yahoo!Pipes or LabView, NoFlo is the only flow-based environment authentically connected to modern software development conventions.  Unlike UML, which visualizes Object-Oriented relationships within code, NoFlo visualizes graphs that represent the flow of data through components.

Software craftsmanship is today’s universe-denting superpower

Nothing is more rewarding, personally or financially, than melding mind and matter to summon forth living systems that reach out through the inter-aether and significantly impact people's lives. Software remains the only avenue for college dropouts to conquer the world faster than Alexander the Great.

When was the last revolution in software development?  Decades ago?

Hardware developments leap forward every 2 years to the tune of Moore’s Law, but software leaps are on a 20 year beat. The last code revolution was more than 20 years ago when Steve Jobs commercialized a long-existing technology – Object-Oriented Programming (OOP) – with his NeXT company. Little in how we program has evolved since. As Alan Kay, father of OOP, recently lamented "We're running on fumes technologically today".

Code inevitably collapses of its own complexity

"That's what building software is; it's how much scaffolding you can erect before it collapses of its own weight... It doesn't matter how many people you have working on it... A software development project gets to a certain size where you add one more person, the amount of energy to communicate with that person is actually greater than their net contribution to the project so it slows down."
- Steve Jobs on Software Development & The Mythical Man Month

If you’re a programmer, deep down, you know code is bad, it rots, and with each new line your software accrues complexity debt. New code means more bugs, more refactoring and more time needed to bring someone else up to speed. The inevitability of spaghetti-code is the result of one simple thing - text. It doesn't matter if it's JavaScript, Python or C++, text-based code is ineffective at describing the macro flow of software.

“Most traditional "sequential procedural style simple state space programming," even within dynamic objects, is too fragile and verbose to scale well into the new computing environments.” - Alan Kay

Actual source code to Jekyll, all 16,471 lines of code
Actual source code to Jekyll, all 16,471 lines of code
Jekyll rebuilt on NoFlo, only 4 custom components needed totaling about 500 lines of code
Jekyll rebuilt on NoFlo, only 4 custom components needed totaling about 500 lines of code

Designers are impotent in a code-based world

Bret Victor spent years hanging around various design groups at Apple, he bemoaned, “these brilliant designers could not make real things. They could only suggest. They would draw mockups in Photoshop... the designers could not produce anything that they could ship as-is. Instead, they were dependent on engineers to translate their ideas into lines of text. Even at Apple, a designer aristocracy like no other, there was always a subtle undercurrent of helplessness, and the timidity and hesitation that comes from not being self-reliant. It's fashionable to rationalize this helplessness with talk of "complementary skill-sets" and other such bullshit. But the truth is: An author can write a book. A musician can compose a song, a animator can compose a short, a painter can compose a painting. But most [UI designers] cannot realize their own creations, and this breaks my heart.”

Software begins as diagrams on a whiteboard, NoFlo keeps it that way

When we design software, we usually start by drawing boxes and arrows on a whiteboard. As the software evolves, people rarely go back to the original drawings, and the text-based source code becomes the lone key to understanding how different pieces of the system fit together. With NoFlo, the diagram is the software! 

Software applications are one of those things that are easy to draw, but impossible to describe without years of practice in arcane specialized languages.

If you don’t code, don’t fear

Don't celebrate the creation of code, celebrate the creation of solutions! Before you go rushing out to learn to program, immerse yourself in your problem. A good solution is independent of programming languages and frameworks. With NoFlo, you can skip the tens of thousands of hours becoming fluent in syntax and start visually hacking on your application now.

Programmers should invest themselves in reusable components, not banging their head against existing code

The ever-growing set of baseline skills required to be a successful web developer is staggering, and programmers who squander their brainpower rewriting and refactoring non-reusable code will struggle to keep up. NoFlo moves procedural code out from the application-level and down to small, reusable components. This shifts the role of coders to crafting small, reusable components and away from endless refactoring.  And, the burden of maintaining software gets distributed cross-team.  To get started creating custom components, check out the NoFlo component documentation.  


If you pay for code, you can’t afford to be in the dark

If your bottom-line is dependent on code, you know the angst of asking a programmer, “How long will {{ insert feature }} take?” You know programmers can jargon-speak their way to your consent and when everything comes crashing down, you are to blame. NoFlo frees your businesses from a labyrinth of text files so you can get-a-grip on what-the-hell-is-going-on!

The NoFlo community has contributed hundreds of ready-made components

Popular NoFlo component libraries include Stripe, BaseCamp, Twitter, and Github.

With your support we can take this to the next level by building a component marketplace where developers can monetize specialized, difficult-to-create components.

Flow-Based Programming (FBP)

Flow Based Programming is a paradigm where the logic of an application is designed in a visual graph — much like diagrams on a whiteboard. The graph is comprised of one-way connections between reusable components. The components are either code or sub-graphs. Simple.

The canonical FBP book by Morrison
The canonical FBP book by Morrison

NoFlo brings FBP to today’s multi-device, stream-based world. Designed originally in JavaScript, it can be used to create apps for the browser or Node.js. If we hit our funding Stretch Goals we will port NoFlo to Java and Objective-C so we can tackle native Android and iOS apps!

The father of FBP has given us his blessing

J Paul Morrison hanging with some of the NoFlo team
J Paul Morrison hanging with some of the NoFlo team

J. Paul Morrison “discovered” FBP while at IBM in the early 1970s.  We are fortunate to have Paul as a technical advisor, mentor and friend.  With his active engagement on the NoFlo Github repos you would never guess he is rounding 80 years young!  

FBP is tried and true

Soon after discovering FBP, Morrison took the tech out from the confines of IBM and constructed a Flow-based system for a world leading bank that’s still in use today, more than 40 years later!

Unbeknown to most developers, the flow-based revolution is well underway. Over the last half-century, under various guises like nodal editors and visual programming, FBP has emerged as the preferred mechanism for creative control over bleeding-edge software in fields like VFX, Games, Film, AI, and even social-networks. NoFlo was built to generalize FBP for modern software development. Why should niche industries have all the fun?

Video demos of game-changers made with flow-based tools 

The Al Gore iPad eBook App. Amazingly well designed and demonstrates that FBP is relevant to modern app development. Was #1 book on the app store and was designed with the flow-based, Quartz Composer, by Mike Matas and PushPopPress.

Use of flow-based tools to design Iron Man's helmet HUD in Iron Man 2 

Flow-based development of AI "brains" to control Massive crowds of autonomous agents in Lord of the Rings battle scenes

Facebook design team ditches Photoshop for FBP and Apple drops the ball

Something like Facebook Home is completely beyond the abilities of Photoshop as a design tool. How can we talk about physics-based UIs and panels and bubbles that can be flung across the screen if we’re sitting around looking at static mocks? (Hint: we can’t.)” - Julie Zhuo Facebook Product Design Director, Go Big by Going Home

Facebook gets it - you can’t design gesture-rich UIs with a static tool like Photoshop. Instead, they went with Apple’s Flow-based tool, Quartz Composer (QC). Unfortunately, QC is only suitable for prototypes so everything has to be redone in code anyway!  

Snapshot from a tutorial on prototyping Facebook Home in Quartz Composer
Snapshot from a tutorial on prototyping Facebook Home in Quartz Composer

Unlike Quartz Composer, with NoFlo you can create production-ready software.

Flow-based editors seem isolated to young industries like visual-FX... Why hasn't this taken off with programmers?

Bret Victor's talk on the Future of Programming touches on this...

"Technology changes quickly, people's minds change slowly. So, it's easy to adopt new technologies, it can be hard to adopt new ways of thinking."

Unlike general software development, new industries like VFX do not have 50+ years of legacy thinking - dogma has not set in. Programmers are notorious for thinking they know what-programming-is and for hostility against new-ways-of-doing-things. Machine coders resisted assemblers, who resisted Fortran, etc, etc. Again, as Bret pointed out,

"The most dangerous thought you can have as a creative person is to think you know what you're doing."

Bret Victor's four key ideas from The Future of Programming talk illustrate why FBP is a natural fit for new industries that need to control complex software systems:

  • Unlike procedural instructions, it allowed more direct manipulation of data.
  • Unlike OOP, with FBP you don't worry about how components should communicate, you just worry about what connections should be made.
  • Unlike lines of text, spatial representations can optimize information for easy download to human brains.
  • Unlike sequential code, FBP is inherently asynchronous and parallel.

Why should niche industries have all the fun?  As Morrison, the father of FBP explained:

"FBP has been used in various niche applications, but it is a general software development paradigm."

NoFlo UX Design

Check out Leigh's Dribbble for more NoFlo UI
Check out Leigh's Dribbble for more NoFlo UI

NoFlo's designer, Leigh Taylor, found inspiration in the London Underground map, a natural fit to his dashing English accent and the Flow-based paradigm.  Leigh, the first full-fledged designer at Obvious Corp, is a celebrated pixel craftsman, check out his Behance.

Early light theme, more literal interpretation of a subway map with circle nodes
Early light theme, more literal interpretation of a subway map with circle nodes
Light theme with rectangular nodes
Light theme with rectangular nodes
Detail view of "cards" in current default theme
Detail view of "cards" in current default theme

NoFlo + Meemoo, the two leading FBP web platforms unite

NoFlo and Meemoo are the two viable FBP implementations for the open web. Meemoo is designed for hackability and playful experimentation. It allows kids and other artists to not only create media online, but also hack creative tools, opening the door to coding. 

Forrest Oliphant, creator of Meemoo, joined forces with the NoFlo team to hack on the UI layer. The web-based graph editor is open source and can be used in other contexts, like audio synthesis and filtering, image and video filtering, interactive prototyping, and more. We look forward to seeing how other projects can use it. 

"Recursive spiral" hackable Meemoo demo by Forrest
"Recursive spiral" hackable Meemoo demo by Forrest

It’s time to go beyond OOP

The object-oriented revolution promised us a maintainable software world through encapsulation (hiding away internal complexity of components) but it’s encapsulation boundaries were too easily broken and complexity spilled out.  OOP is not elegant enough to bear the complexity of large applications because real world things do not conform to its concept of Objects.  This led to one of it’s greatest benefactors, Steve Jobs, to conclude that software would inevitably collapse under its own weight.

Unlike text-based OOP frameworks, NoFlo enforces bullet-proof encapsulation by removing code from the application level and ensuring components only communicate through named dataports. NoFlo is inherently parallel, maintainable and language agnostic. NoFlo allows beginners to do what even the best OO coders struggle with, like multi-threading and orchestrating asynchronous mayhem.  OOP will always be with us, just further down the stack.

NoFlo Core Team

Henri Bergius, @bergiegithub; creator of NoFlo and Create.js, author of  O'Reilly CoffeeScript on Node.js, and renowned conf speaker

Leigh Taylor, @lat, behance, dribbble; first full fledged designer at Obvious Corp and Medium

Dan Tocchini, @d4tocchini, github; founder of the Grid and formerly 4D

Forrest Oliphant, @forrestogithub; creator of Meemoo

Gordon Henson, former 3D designer for Sony Computer Entertainment, Konami, and Pixar

Svetly Metodiev, @smetodiev, formerly at Credit Suisse

Brian Axe, ex-Googler that brought Google AdSense to market

So where are we in this whole process?

  • Formed a world-class team in San Francisco, Berlin and London
  • Battle-tested NoFlo core for nearly two years in live, mission critical production
  • Implemented a drag & drop development tool prototype
  • Grew a NoFlo community that has already produced hundreds of open-source components
  • Generalized NoFlo to work in Node.js & modern browsers
  • Open-sourced about 40 test-backed Github repos
  • Programmers can define graphs using JSONprogrammatically or with a custom FBP language

All we need is you

The core of NoFlo works and is in use by several startups and research groups, but right now NoFlo is a code platform.  We need your help to finish the UI layer and fund a hosted ecosystem. Your support will help us to:

  • Evolve our drag and drop UI layer from prototype to production ready
  • Make the UX more touch friendly
  • Implement real-time collaboration
  • Fund infrastructure for the hosted NoFlo ecosystem
  • Tighter integration with GitHub
  • Implement more robust auto-layout routines driven by spatial constraints
  • Create more tutorials, demos, docs and app starter kits
  • Fund the development of more components
  • Create a component marketplace for developers to monetize their domain knowledge
  • Ensure our team can devote time to increasing NoFlo’s awesomeness =)

Rewards


Thank you!  Show the world, through your numbers, that you're out there.

Risks and challenges Learn about accountability on Kickstarter

This is a huge paradigm shift in how we think about programming. Although we have been diving into FBP in our work we have only scratched the surface. We don't have all of the answers as to how this work in practice in different contexts. We're inviting you to join us in exploring the possibilities.

We're fully ready for curmudgeonly trolls to point out the ways that visual programming has come up short in the past. We are confident that our implementation addresses novel programming challenges in a well-designed way. In the next decade, 5 billion people will come online. We're excited to see what they decide to code.

FAQ

  • Flow-Based Programming is a paradigm that can be adapted to work with any existing programming languages. To keep the project manageable we need to limit our initial focus, and that means that at first we will ship support for the NoFlo FBP environment, which is built on JavaScript for both Node.js and the browsers.

    If we hit our stretch goals, we will also expand the support to Java and Objective-C to allow native Android and iOS development, and for Python.

    The user interface layer has been designed to be independent of the underlying FBP implementation, and so the various programming communities should be able to connect it with their flow-based environments. Making it work with Actor Based and Functional Reactive systems should be especially easy.

    Last updated:
  • If we don't hit our stretch goals we will *eventually* support multiple platforms, but it will not be a payroll priority. Receiving those funds will secure the needed salaries and allow us to prioritize expanding and supporting multiple platforms. We've purposefully stayed away from the more common VC route, so your support will go a long way in making this happen!

    Last updated:
  • The NoFlo UI will come with a hosted service that allows you to connect your projects with GitHub, run the test suites, and make it easier to deploy your flow-based applications.

    Graph editing itself can work completely offline, and if you're working with client-side graphs you can even write components and run everything without talking to the servers. And since the whole system is open source, you'll be able to install the whole system also in your own infrastructure.

    Last updated:
  • NoFlo, the user interface, and the server code will all be available under the permissive MIT license. However, to make things easier we will provide a hosted version of the full setup for a fee. The rewards that include a license will provide access to the hosted environment.

    Last updated:
  • Hold your horses! NoFlo was made by coders and originally for text-based code. The purpose of this Kickstarter is to fund the hosted UI, but NoFlo is usable right now as a code-only framework. Graphs can be created via JSON, procedurally or a fancy DSL. Components are coded according to traditional OO idioms. For more info see: noflojs.org/documentation/

    Software logic is inherently a graph; functions connect to other functions, sending data along. NoFlo is a framework for manipulating directed graphs representing one-way connections between encapsulated components... the UI is optional!

    NoFlo has been in production for more than 2 years without a UI. But, some things are just better suited for visual interaction. For example, selecting a group of nodes and making a subgraph, that gets really, really irritating in code! And, of course, the UI is killer for facilitating collaboration between developers, designers and domain experts.

    Yes, well-written code will always remain a critical part of NoFlo.

    Last updated:
  • Don't worry, NoFlo does not generate code, but graphs can be exported as JSON.

    Last updated:
  • This is not a rehash of UML. UML is a diagram mapping out object-oriented constructs, often used for code generation. NoFlo graphs instead are only the coordination layer that manages the control flow of your software. The components are still handcrafted and unit-tested code that NoFlo merely wires together at runtime, following the edges specified in a JSON file. No code generation here.

    Last updated:
  • The story of visual programming tools started with the GRaIL system of the 60s, and has progressed to tools like LabView and Pure Data. So far none of these tools has reached mainstream acceptance outside of their (sometimes fanatic) industry niches.

    This is partly because these tools were built originally with a particular problem domain in mind, and partly because of the user experience. Execution matters, as we've seen so many times in the tech industry. After all, there were a lot of tablets before the iPads.

    Last updated:
1,205
Backers
$115,677
pledged of $100,000 goal
0
seconds to go
  • Pledge $25 or more
    You selected

    368 backers

    OPEN SOURCE SUPPORTER: Early access for public projects + Your name on the exclusive list of supporters section on the NoFlo site + Help change the world of programming

    Estimated delivery:
  • Pledge $45 or more
    You selected

    136 backers

    OPEN SOURCE & T-SHIRT: Beautifully designed NoFlo T-shirt (shipping October 2013) + OPEN SOURCE SUPPORTER

    Estimated delivery:
    Add $10 USD to ship outside the US
  • Pledge $69 or more
    You selected

    99 backers Limited (1 left of 100)

    EARLY BIRD: Same as INDIVIDUAL + T-SHIRT

    Estimated delivery:
  • Pledge $95 or more
    You selected

    256 backers

    INDIVIDUAL: 1 user for 2 years to the NoFlo Environment + Access for private projects + Your name & link forever emblazoned on the supporters section of the NoFlo site

    Estimated delivery:
  • Pledge $195 or more
    You selected

    39 backers Limited (1 left of 40)

    TENURED: Same as INDIVIDUAL + 10 year user license

    Estimated delivery:
  • Pledge $195 or more
    You selected

    100 backers All gone!

    TENURED: Same as INDIVIDUAL + 10 year user license + T-Shirt (shipping October 2013)

    Estimated delivery:
    Add $10 USD to ship outside the US
  • Pledge $249 or more
    You selected

    21 backers

    STARTUP TEAM: Up to 3 users with real-time collaboration for 2 years to the NoFlo Environment + Access for private projects + Your name & link on the list of business supporters section of the NoFlo site

    Estimated delivery:
  • Pledge $595 or more
    You selected

    5 backers

    SMALL BUSINESS: Up to 5 users with real-time collaboration for 2 years to the NoFlo Environment + Access for private projects + Your name, link & logo on the list of business supporters section of the NoFlo site

    Estimated delivery:
  • Pledge $2,495 or more
    You selected

    2 backers

    ENTERPRISE STARTER: Up to 10 users with real-time collaboration for 3 years to the NoFlo Environment + Access for private projects + Your link & logo on the NoFlo homepage + Your name, link & logo on the list of business supporters section of the NoFlo site

    Estimated delivery:
  • Pledge $9,995 or more
    You selected

    0 backers Limited (2 left of 2)

    WORKSHOP: On-site workshop for your whole team with Henri Bergius, creator of NoFlo (travel costs not included) + ENTERPRISE STARTER

    Estimated delivery:
  • Pledge $9,995 or more
    You selected

    0 backers Limited (2 left of 2)

    CONSULTING: 10 hours consulting by Henri Bergius, creator of NoFlo + ENTERPRISE STARTER

    Estimated delivery:
  • Pledge $10,000 or more
    You selected

    2 backers Limited (3 left of 5)

    ADOPT-A-LIBRARY: The NoFlo team will develop a component library for an API of your choice + ENTERPRISE STARTER

    Estimated delivery:
  • Pledge $10,000 or more
    You selected

    0 backers Limited (1 left of 1)

    MAYAN VISION QUEST: Bring up to 3 people on an epic journey to where the Mayan pyramids overlook white sandy beaches with the NoFlo team (accommodations and excursions provided, flights not included) + STARTUP TEAM

    Estimated delivery:
  • Pledge $10,000 or more
    You selected

    0 backers Limited (1 left of 1)

    HISTORIC VACATION COWORK WEEK: Bring up to 3 people to hack with the NoFlo team for 5 days, 4 nights in the historic mansion used as the set in the NoFlo video, in the Pacific Heights area of San Francisco + STARTUP TEAM

    Estimated delivery:
Funding period

- (45 days)