Skip to content

kineticio/runnable

Repository files navigation

Runnable logo

Runnable

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.

Runnable

// 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);

Read the Docs to Learn More.

License

MIT