Skip to content
Framework: Vite + React + TypeScriptDifficulty: intermediateFeatured

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

src/chat.ts18 lines
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.

PackageVersion
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.