Viewflow/turbo

The low-code for developers
with yesterday's deadline

What?

A reusable component library that lets you build full-featured business apps in a few lines of code 

Designed to be easily included in any Django project. Ideal for Corporate and Private Deployments.

Why?

1
Meet yesterday's deadline When you have not much choice. Iterate quickly, deliver a working solution from day one
2
Cut development cost. Focus on your business goals, reuse and customize pre-made building blocks.
3
To be sure that everything is feasible. Retain the ability to use all Django and Python features in a low code project
4
Write as little code as possible. Keep your codebase manageable, understandable, and adaptable to new requirements
tips_and_updates

When?

Quick start right now:

pip install django-viewflow
Add into settings.py
INSTALLED_APPS = [
    '...',
    'viewflow',
]
        
And follow the quickstart guide

How?

Viewflow helps speed up development process

{% extends 'viewflow/base_page.html' %}


{% block page-toolbar-actions %}
   {{ block.super }}
   <!-- additional toolbar actions -->
{% endblock %}


{% block page-menu-app %}
  {{ block.super }}
  <!-- additional sidebar actions -->
{% endblock %}


{% block content %}
  <!-- page content -->
{% endblock %}

Start immediately
Simple, and beautiful design system already familiar for millions of users
class UserViewset(
    ExportViewsetMixin,
    DeleteViewMixin,
    ModelViewset
):
  model = User
  create_view_class = CreateUserView
  list_columns = ('first_name', 'last_name',)
  list_filter_fields = ('is_superuser', )
  form_widgets = {
      'department': AjaxModelSelect(
          lookups=['name__istartswith']
      )
  }

  def get_queryset(self):
      return User.objects.exclude(
          removed=True
      ).select_related('groups')
Ready-made and customizable
Class-based composition for views with declaration of behavior in one place
layout = Layout(
    Row('first_name', 'last_name'),
    Row('email', 'phone'),
    FieldSet(
      "Card Details",
      Row(
          Column("card_type", desktop=4),
          Column(
              "card_holder",
              Row(
                  Span("card_number", desktop=10),
                  Span("card_cvv2", desktop=2)),
              Row("card_exp_month", "card_exp_year"),
              desktop=8,
          ),
      ),
    ),
    FormSet('addresses', card_desktop=4),
)
Control on layout and logic
Complex data-entry forms without wasting time with HTML or Javascript
class Workflow(flow.Flow):
    start = (
        flow.Start(start_view)
        .Permission("workflow.can_start_request")
        .Next(this.approve)
    )
    approve = (
      flow.View(UpdateProcessView.as_view(
        fields=['comment'])
      )
      .Assign(select_random_admin)
      .Next(this.process)
    )
    process = (
        celery.Job(process_request)
        .Next(this.end)
    )
    end = flow.End()
  
Explicitly describe people collaboration
An additional thin architectural layer on top of standard Django Model-View-Template for simple control of dependency logic
Check Live Demo

Who?

Trusted by teams at

+100 more
I use Viewflow for large enterprise applications with complex workflow. It rules. The code is good and very readable. I like the state machine implementation. It is very easy to customize for your use case. It's much better to use Viewflow's foundational core than to roll your own.
mRWafflesFTW r/django
We used Viewflow for a few years and were super happy with it. We managed to integrate it and develop on top of it to adapt it to our particular needs. If in the future we need workflows, yours will no doubt be on top of our mind.
Mercedes Martínez Team Lead, Adevinta
We're enjoying the flexibility Viewflow brings to our ever-evolving workflow. It was great having a front-end built in — it helped us launch the product really quickly.
Florian Mayer Dept. of the Premier and Cabinet, Western Australia
All in all, the whole team are very satisfied with choosing Viewflow. It helped us focus most of our resources on the actual Machine Learning model.
Marcus Lind Coderbook
The product has served us well and has been very helpful.
Dacian Popute KuwaitNet
The library was great for rapid prototyping; would use again.
Greg Saunders Bright Village

Where?

Viewflow is a tool for developers who sit next to real users. It's well-suited for a small team of developers working on real-world business automation

Viewflow helps you collaborate with people to get a working solution from day one of development. Deploy and iterate daily with your users. You can choose from a variety of out-of-the-box components or implement custom solutions, all while leveraging the power of Python and Django and maintaining a small code base

Newsletter

Stay in the loop

Subscribe to our newsletter for updates on Viewflow, Django low-code patterns, and notes on shipping business applications fast.

Have a question?

Contact Us!

Feel free to ask a question on Viewflow Github discussions
Pro customers email support contact is support@viewflow.zohodesk.com or use support widget on the right.

Mikhail Podgurskiy

Software developer
  • Came to idea of workflow library when fighting with Workflows GUI in 2004
  • Spent 5 years in the banking industry to shoulder-to-shoulder work with business on automation.
  • Wrote open sourced django-fsm library to reduce pain of business apps development at 2010