Every AI wait can do some good.
While an AI app is "thinking", it shows one clearly labeled sponsored line. Half of the net ad revenue goes to Khan Academy's free education, and every wait adds to this public counter.
The cause
Leaderboard
- Loading...
Add it to your AI app
riverside-library. It registers on first use and joins the leaderboard.- Download the filter (one Python file).
- Admin Panel > Functions > + > Import, and pick the file.
- Open its Valves and set
siteto your key. - Turn it on and make it Global (three-dot menu).
Runs sandboxed in the user's browser. Nothing is sent from your server. Users can switch it off in Settings > Functions. Tested on Open WebUI 0.11.
# fresh install: our LibreChat fork
git clone https://github.com/neverpeakev/goodwait-librechat.git
cd goodwait-librechat && cp .env.example .env
echo "GOODWAIT_SITE=your-site" >> .env
docker compose up -d
Already running LibreChat? Apply the patch (git apply librechat.patch) and rebuild. Users get a "Show Sponsored Line While Waiting" switch in Settings > Chat. GOODWAIT=off turns it off for everyone.
The official Vercel AI Chatbot template with Goodwait built in.
Deploy to VercelSet NEXT_PUBLIC_GOODWAIT_SITE to your key. Source: neverpeakev/goodwait-chatbot.
<script src="https://mvnfgrydpdwaatkcsrdd.supabase.co/functions/v1/goodwait/embed.js" defer></script>
<goodwait id="iw" site="your-site"></goodwait>
<script>
const iw = document.getElementById("iw");
// when the user sends a message:
iw.query = userMessage; iw.active = true;
// when the reply is done:
iw.active = false;
</script>
npm i github:neverpeakev/goodwait
import { Goodwait } from "goodwait/react";
<Goodwait site="your-site" active={isLoading} query={lastUserMessage} />
Run AI chat for a school or nonprofit?
We'll set it up with you for free, on a 20-minute call. You keep full control: one switch turns it off for everyone, and each user can turn it off for themselves.
Get set up free