Build internal workflows with ease
- 💻 Leverage your internal models/db/services without having to expose them via REST/GraphQL
- 🚷 Keep internal operations...internal
- 🛠️ No more coding UIs for admin tools
- 〰️ Build complex workflows with conditionals and loops
- 📦 Works with Nest.js and Express
- ⭐️ Looks great out of the box
Note You can play around with the demo Runnable! And login with any Google creds.
Runnable is a framework for building user-facing internal workflows and applications. It's built on top of Remix to allow you to build workflows without UI code and a developer experience that allows you to only write server code. Using the io object, you can prompt the users at any point in the workflow.
| // index.ts
import { installRunnable } from '@runnablejs/express';
import { getUsers, getTeams, assignTeam } from './db';
// ... normal express setup
installRunnable(app, {
  assign_user_to_team: {
    title: 'Assign a user to a team',
    execute: async (io) => {
      const users = await getUsers();
      const user = await io.select.dropdown({
        title: 'Select a user',
        data: users,
      });
      const teams = await getTeams();
      const team = await io.select.table({
        title: 'Select team',
        data: teams,
        initialSelection: user.teamId,
      });
      await assignTeam(user.id, team.id);
    },
  },
});
app.listen(3000); | 
MIT
 
  