ELI5 is one page and one API. You paste text (or load a .txt, .md, or .log file) into the box and press Explain this simply. The browser sends that text to POST /api/explain. The server checks it is not empty, caps it at 4,000 characters, and applies a light per-IP rate limit (10 requests per minute). It then calls an OpenAI-compatible chat-completions endpoint with a fixed system prompt: explain in everyday language, include one concrete analogy, keep it to a few sentences. The model reply comes back as plain text and is shown below the input. Nothing is saved — no accounts, no database, no history. Refresh and it is gone. The API key never reaches the browser.
What is in use
Next.js 16 (App Router) and React 19 for the UI and the /api/explain route TypeScript and Tailwind CSS 4 for the interface An OpenAI-compatible chat API on the server (URL, key, and model name come from environment variables; the key stays server-only) In-memory rate limiting and a 30-second timeout on the model call Stateless by design: React state in the tab only, wiped on refresh
Built With
- next.js
- openrouter
Log in or sign up for Devpost to join the conversation.