AI chat interface
A chat UI that posts the conversation to a backend endpoint you configure. No provider keys in the browser.
A complete chat front end: message list with user/assistant bubbles, Enter-to-send textarea, pending and error states, cancel with AbortController, and persisted history. It talks to a single configurable endpoint (VITE_CHAT_API_URL or a field in the header) using a documented JSON contract, and renders an explicit 'No backend configured' state until you point it at a server that holds the provider key. Pair it with the Express REST API template for the backend.
- react
- ai
- chat
- assistant
- tailwind
This preview is the template's actual file tree and source code — exactly what is copied into a new project. Codexa does not publish screenshots or mock-ups of templates; run the project to see it rendered.
Files12 files
export type Message = { role: "user" | "assistant"; content: string };
/**
* Send the conversation to your backend. The backend is responsible for calling the AI provider;
* never put a provider API key in browser code.
*/
export async function sendMessages(endpoint: string, messages: Message[], signal?: AbortSignal): Promise<string> {
const res = await fetch(endpoint, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ messages }),
signal,
});
if (!res.ok) throw new Error("Backend responded with " + res.status);
const data = (await res.json()) as { reply?: unknown };
if (typeof data.reply !== "string") throw new Error("Backend response is missing a string 'reply' field");
return data.reply;
}
Dependencies
Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.
| Package | Version |
|---|---|
| react | ^19.1.0 |
| react-dom | ^19.1.0 |
| vite | ^6.3.0 |
| @vitejs/plugin-react | ^4.4.0 |
| tailwindcss | ^4.1.0 |
| @tailwindcss/vite | ^4.1.0 |
| typescript | ^5.8.0 |
How it runs
- Framework
- Vite + React + TypeScript
- Dev command
- npm run dev
- Build command
- npm run build
- Output directory
- dist
- Port
- 5173
- Opens at
- /
- Difficulty
- intermediate
Projects run in an isolated sandbox with a live preview. Read the projects documentation for details on settings, snapshots and deployment.
Need the raw data? GET /api/v1/templates/vite-react-ai-chat returns this template with its files.
Build on AI chat interface
Create a free account, start from this template, and ask the AI agent to turn it into your app.