ShipGPT

We love AI.
It’s 2023 and we’re already using Midjourney to create game assets and to inspire us. We utilize ChatGPT as peer programmer in code reviews and sometimes even to write simple or repetitive code in different languages. For some of us, it has even begun to replace Google as primary search engine.
So it’s no surprise that we want to get into programming as well. Started as a weekend hackathon, within a couple of days we developed a full-fledged ChatGPT client of our own, which we have been using on a daily basis ever since.
We wanted a fast, responsive (mobile-first) and effortless user experience. No authentication, as much work as possible done in the client browser to make it super fast. Basically, ChatGPT always at your fingertips.
Technically, it’s powered by one of our most beloved and established tech stacks:
- SvelteKit
- Tailwind
- Firebase
- Serverless (Edge) Functions
- hosted on Netlify or Vercel
We also used the project to evaluate Skeleton UI which is a Svelte/Tailwind-based UI framework that we immediately fell in love with and will be adding to our kit right away.
The secret sauce of ShipGPT is that almost everything is stored in the localStorage
of the browser. One case where we step outside this boundary is, of course, when a user communicates with the OpenAI API. While questions are simple POST requests, responses are sent back to the client using the native EventSource API and rendered as a “live stream” just like the ChatGPT client does (when it’s not overloaded).
The other case is when users share their chats with others using our “userless share” feature. Then we dump the appropriate localStorage
object in a simple Firebase Realtime Database and tag it with a random updateToken
. Our serverless function sends this token back to the client where it is stored in the localStorage
next to the original chat. It can be used later to update or unshare chats.
We are currently evaluating the OpenAI API pricing model, so we have imposed a hard cap on the quota. You can use and tell people about ShipGPT as much as you like, but don’t be mad at us if it goes offline for a few days if we ever hit that cap.