Our Database Builder GPT

Sudhir Balaji
Backengine
Published in
2 min readNov 24, 2023

Last week we made a GPT to expose a subset of the features and functionality that we’ve built at https://app.backengine.dev — we call it Database Builder.

GPTs are still quite new, so we expected to find a lot of rough edges, but we were largely pleasantly surprised by how smoothly most of the process went.

A fair chunk of our time was spent figuring out how to set up authentication from the GPT to the backend for Backengine and how to get everything to play nicely together — we’ve got it working fairly well now, but please do let us know if something still doesn’t work!

There’s one known bug — if you’re a new user and the chat has triggered a GPT action, you’ll be taken through a login/signup flow first, but then it will appear as though an action is running or pending but will never actually execute. The workaround we’ve found for this is to ask the GPT to retry the action.

We used Clerk for OAuth for our GPT because we’ve been using it for a while and use it in Backengine currently, and Stripe for billing after the free trial of the API/GPT actions for new users has elapsed (currently 7 days).

There is an example repo for the stack that we use as the backend for serving the API endpoints for GPT actions here: https://github.com/Engine-Labs/gpt-billing-template

In the end, making the GPT boiled down to:

  1. doing some system prompt design/tweaking our
  2. setting up OAuth with existing backend exposing endpoints for the GPT actions
  3. documenting those endpoints in an OpenAPI document
  4. setting up a free trial mechanism for using the actions/API (each signed-up user gets a hosted database for free for 7 days)

Okay great but what does it do?

We’d love it if you gave it a try! Here’s the link to the GPT: https://chat.openai.com/g/g-A3ueeULl8-database-builder

Alternatively, if you don’t have access to ChatGPT, we’ve opened signups to our main app, which has all of the GPT features and more at https://app.backengine.dev!

--

--