cliff.webkodingtheme.comLive

No signup. Try it with a test card; the demo resets itself regularly.

Ninety-second vertical episodes end on a cliffhanger and the viewer picks a side — the risky path that usually costs coins, or the safe one that is free. Each side leads somewhere different, so a series ends in two, four or more places.

Competing items play episodes in a straight line. Here a series is a directed graph, and two rules are enforced in the database rather than left to convention: an unlock is permanent, and a VIP subscription grants none — otherwise one month of VIP would buy the catalogue forever and nobody would renew.

What you get, before you pay

Everything in the box, so there is nothing to discover after checkout.

Files

  • cliff.zip, installed from the source you build
  • Unminified source, no obfuscation
  • Changelog and sample data

Licence

  • 1 application you build and publish
  • Licence key sent by email after payment
  • GPL v2 or later

Updates and support

  • 1 year of updates and email support
  • After that the software keeps working
  • Renew only if you want new versions

Requirements

  • Flutter
  • Node.js
  • PostgreSQL
  1. 1
    Deploy the backend

    Node and PostgreSQL, with the operator panel for the catalogue and pricing.

  2. 2
    Build the series as a graph

    Episodes are nodes, choices are edges. Endings are counted from the graph.

  3. 3
    Sell the branch

    Coins and permanent unlocks. VIP grants none, and the database enforces it.

What it does

  • Flutter app for iOS and Android with a Node and PostgreSQL backend
  • Branching engine — episodes are nodes, choices are edges, endings counted from the graph
  • Vertical player with seeking, resume and per-episode progress
  • A branch map showing walked paths solid and sealed ones dim
  • Coins, permanent unlocks and a VIP subscription that grants no unlocks
  • Operator panel for the catalogue, episodes, branches and pricing

What you need

  • Flutter installed, with the toolchain for whichever platform you ship
  • A server for the Node and PostgreSQL backend and the operator panel
  • Video hosting and bandwidth of your own — short vertical episodes are the expensive part and are not included
  • An Apple and a Google developer account, and their in-app purchase setup if you sell coins

A Flutter app plus a Node and PostgreSQL backend with an operator panel. You host the backend; video hosting and bandwidth are your own arrangement.

What Cliff does not do

  • It does not host or deliver video, and short vertical video is the largest running cost of an app like this. Bandwidth is your own arrangement.
  • It does not come with any content. The branching engine is the product; the episodes are yours to make or license.
  • It does not complete in-app purchase setup. The flow is built; store products, pricing and review are yours.
  • VIP grants no unlocks, by design and enforced in the database. If you want a subscription that unlocks everything, this is not that app.

Questions

Why does VIP not unlock episodes?

Because one month of VIP would otherwise buy the catalogue forever and nobody would renew. It is enforced in the database rather than left to convention, along with the rule that an unlock is permanent — those two rules together are the business model.

How is a branching series different from a playlist?

A series is a directed graph: episodes are nodes and choices are edges, so one series ends in two, four or more places. Competing apps play episodes in a straight line, which means the choice is decoration.

Is video hosting included?

No, and it is the largest running cost of an app like this. Short vertical video is bandwidth-heavy; hosting and delivery are your own arrangement and your own bill.

What is in the operator panel?

The catalogue, episodes, branches and pricing — the day-to-day work of running the app, rather than a database client.

Does the viewer keep their place?

Yes: the vertical player supports seeking and resume with per-episode progress, and the branch map shows walked paths solid and sealed ones dim.

Everything else is in the Cliff documentation, and anything it does not answer goes to support@webkoding.com.

Not quite it? Three nearby

Not ready to buy?

We will write when there is a new plugin, or a release worth knowing about. A few emails a year, each about something we actually shipped — no offers, no sequence, and your address goes nowhere else.

One click to leave, from any of them. What we do with it.