Introduction

Codeflow is a fully 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 for both building and executing a flow without leaving the IDE:

Codeflow hello world |width:550

Below is an example of how the same flow can be executed from a command-line (This is how Codeflow programs are deployed to a production environment):

![command line|width:450] (./img/animations/executing-command-line.gif)

Codeflow programs (a.k.a flows) are built by composing reusable components on a visual canvas. You don't need to type commands line by line or memorize libraries or APIs. The graphical interface makes navigating and understanding the source code easier and also lets you explore the modules without the need of extra documentation.

The components, called as modules, can range from the simple ones that print a message to the console to complex modules that can create web servers, interact with databases and much more. Since all the modules are 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.
  • 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 code. The philosophy of Codeflow is to make programs in the most efficient manner 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 a Codeflow module and invoked from Codeflow programs.

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