Introduction

Codeflow is a fully open source, visual programming platform built on top of Node.js™. Codeflow is built around the vision that a properly implemented visual programming stack can let developers build high performance, scalable back ends with minimal effort. Since Codeflow programs look and remain like a graph, it's relatively easier to write complex, asynchronous code without the associated side effects like callback hell or resorting to promises and generators.

The Codeflow platform consists of following parts:

  1. Codeflow designer - A graphical IDE for designing and debugging Codeflow programs, a.k.a flows.

  2. Codeflow engine - A command-line engine for executing programs created by the designer.

  3. Package repository - A service for hosting and discovering Codeflow packages maintained by the community.

A quick example:

Below is a "hello world" program in Codeflow. The designer is used to build and debug flows visually:

Codeflow hello world |width:550

The same flow can be executed from a command-line environment. This is how a Codeflow project is run in production:

command line|width:450

Codeflow programs (a.k.a flows) are built by composing reusable components on a visual canvas. You don't need to type commands word by word or memorize libraries and their APIs. The visual interface lets you explore libraries on your own without documentation and navigate quickly through the source code.

The components, called as modules, can range from the simple ones like the log module to complex modules that lets you create web servers, interact with databases and much more. Since the modules are all visual, they do not require extensive documentation and can reduce the learning curve tremendously.

Features of Codeflow

  • Rapid development: The intuitive visual interface and modular architecture helps reduce learning curve and boilerplate code, thereby reducing the time to market.

  • Improved collaboration: The code is easily readable and navigable, and is no more a black box to non-developers, improving collaboration across the stakeholders.

  • Performance: Codeflow is built with performance and scalability in mind. Features like JIT compiler, immutable data structures, and many more upcoming features are made for performance and scalability in mind.

  • Improved maintainability. Because Codeflow is simple to learn and use, the barriers to entry is lower. Also, the code is easy to read and understand. This leads to reduced maintenance overhead in long term.

  • Hackable: Codeflow is extensible through its own packages ecosystem. In addition, you can write JavaScript code, and include packages from NPM directly. You are not going to hit a wall.

What can be built using Codeflow?

Codeflow is suitable for building a wide range of solutions ranging from web services to embedded/IOT solutions. Below is a list of example services that Codeflow is suited for:

  • Web applications back ends including REST APIs.
  • Embedded/IOT applications.
  • Machine learning services.
  • Background jobs like timers and queue listeners.
  • & much more

While Codeflow is suitable for a wide range of applications, it is not intended to fully replace the text-based code. The idea behind Codeflow is to make the life of developers easier and not be tied to a particular paradigm, be it visual or text. If a complex algorithm or business logic is better expressed as text, Codeflow encourages you to do that. That can then be packaged as higher level Codeflow packages without any performance hit.

Download and setup

To get started, download and install the designer and the engine from the downloads page. Codeflow requires Node.js™ v4.0 or above installed in your system to run. It might work on earlier versions of Node.js but is not supported anymore.

Road map

Codeflow is still under active development. Check out the upcoming features and sign up for the mailing list to get updated on new feature additions and status updates.

Getting Help

If you need to reach out to us regarding any queries or suggestions, email us at support@codeflow.co.

Github:

http://github.com/codeflowlang

What's next?

Getting started - Glossary