Work

Portfolio

Contact

Building an open-source platform for AI assistants

A personal project to build, learn, and distribute LLM applets.

The Spark

After wrapping up my position at Hasura, I found myself with some free time and an itch to scratch.

As a designer/developer, I've always been fascinated by Large Language Models (LLMs) and their potential.
But something was missing in the current landscape of LLM applications.

Problem

Most LLM chat apps, like ChatGPT or Claude, felt like walled gardens.
I was paying for access - but all my data was also getting locked into closed ecosystems.

I had a theory:

  1. The outputs of these models are incredibly important - far more than we're giving them credit for.
  2. There's a universal schema for threads and messages in chat applications. One that allows for rich feedback between user and AI.

But no one seemed to be leveraging this schema to its full potential.

My Solution

So, I rolled up my sleeves and got to work.
The result? PromptPanel - which is a a flexible, open-source development platform for creating LLM applications.

What makes it special?

  • It's un-opinionated. While it provides a boilerplate schema, authentication, and chat UI out of the box, you can rip and replace anything you want.
  • It's fully pluggable and extendable. Aside from using Python, there are no strict rules about what can be customized.
  • It's free and open-source.

The Technical Nitty-Gritty

While PromptPanel has a chat UI - it isn't just another chat UI.
It's a playground for developers who want to push the boundaries of what's possible with LLMs.

Chat / plugin data model

Some of the features include:

  1. A centralized history for preserving model outputs.
  2. The ability to experiment with different models (with almost every model capable out-of-box, without coding).
  3. A flexible schema that allows building anything on top of it, with a thread > message feedback model.
  4. A plugin system and roadmap to build anything.

Running the app as an end-user is as easy as:

docker run --name promptpanel -p 4000:4000 -v PROMPT_DB:/app/database -v PROMPT_MEDIA:/app/media --pull=always promptpanel/promptpanel:latest

Setting up an OpenAI plugin for a first query.

Want to know more about how plugins are made (or even wanna try making your own)?
Have a look at the docs to find out more about the process (and checkout our one-click dev environment, powered by GitPod).

Reception

The reception to PromptPanel has been really positive and I've been happy with the users who are finding it useful.

It's also not just a personal project anymore - I've used it to support a couple of development contracts, as a base for POC and production LLM solutions which I've helped to deploy for a couple of customers.

Index