Hi everyone,

During the Meta Global AI Developer Hackathon, I worked on a problem I know from my time in a bank: loan approval workflows.

Why this problem

A bank writes its credit procedures in PDF policies. To turn one policy into a working approval process, business and IT teams often meet for weeks. After that, it is hard to say which step comes from which rule of the text.

I saw this first as a developer, then as a PMO in a bank. Zotra is my attempt to make it easier.

How it works

  1. Read the policy. The AI (Meta's Muse Spark) drafts the steps, roles, deadlines, documents and rules from the PDF. Each step cites its paragraph.
  2. Review and shape. You edit the diagram by hand, or ask the assistant in plain words. Nothing is saved until you accept it.
  3. Test it. You play a case as any role and replay it step by step.
  4. Run it. On a live case, only people and CEL rules decide. The AI helps to design and test, but it does not decide.

Stack: Go, PostgreSQL, React and Tailwind. Apache 2.0 license.

Why "Zotra"?

Zotra means "path" or "direction" in Malagasy. A workflow is a path to a decision, so the name felt right.

Try it

You can run it with Docker, without an AI key (the demo replays recorded answers):

GitHub logo donovan-ratefison / Zotra

Meta Global AI Developer Hackathon 2026: a workflow studio that turns a bank's credit policy into a tested, auditable approval app

Zotra, workflow studio for banks

From a credit policy PDF to a tested approval app.
The AI drafts and tests. Humans decide

CI Latest release License: Apache 2.0 Meta Global AI Developer Hackathon 2026

See it

Watch the Zotra demo video on YouTube

Try it in 2 minutes

You need Docker with Compose v2.

git clone https://github.com/donovan-ratefison/Zotra.git && cd Zotra docker compose up -d

Open http://127.0.0.1:8080. At the first start, Zotra adds 60 sample cases over 30 days, so the inbox, the triage and the supervision have data. No AI key is needed for the demo: the app replays recorded AI answers for the sample policies. A thin line at the top of the studio says so.

Tour in 5 minutes

These steps work with no AI key.

  1. Import a policy. On the library page, under Start…





I also put a short demo on X:

// Detect dark theme var iframe = document.getElementById('tweet-2116898213101724061-790'); if (document.body.className.includes('dark-theme')) { iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=2116898213101724061&theme=dark" }

Your thoughts

It is still a hackathon project, and I am still learning in this area. I would love to hear your thoughts, especially if you work in or near a bank. Issues and pull requests are welcome too.

Thanks for reading!