Open source · MITNext.js App Router

Multi-model AI chat · Try the live demo

Ship a real chat product—not a weekend prototype

Sinpoura is a full-stack AI workspace: accounts, persisted threads in MongoDB, and generation through xoin-js—a powerful structured multi-LLM toolkit so OpenAI, Anthropic, and other providers share one coherent server runtime. Use host keys, bring-your-own-key from the browser, or both—then own the UI and routes on top.

Package: @xoin/xoin-js—full multi-provider docs and APIs ship with the library; Sinpoura shows how to wire them in production.

Built with

Next.js 16React 19MongoDBAuth.jsZustandTailwind v4xoin-js

Why teams pick this template

Persistence, auth, and LLMs—already wired

Skip rebuilding login walls and message stores. Focus on prompts, models, and the product layer on top.

MongoDB conversations

Threads and messages live in the database—reload, revisit, and delete with real CRUD, not session-only state.

Structured multi-model runtime

xoin-js orchestrates OpenAI, Anthropic, and more behind one powerful generate-shaped pipeline—add providers without forking your UI.

Hosted keys or BYOK

Set API keys on the server for shared quotas, or let users paste keys stored only in the browser—secrets never land in MongoDB.

Credentials auth

Registration and sign-in run through Auth.js with middleware protecting /chat—sessions are ready for stricter RBAC later.

Workspace-grade UI

Sidebar, drawer on mobile, themes, quick prompts into the composer, and avatars—polished enough to demo or deploy internally.

Readable codebase

Feature slice under features/chat, typed API routes with Zod, and YAML-backed system prompts—easy to fork and extend.

How it works

From zero to first reply in minutes

  1. 01

    Register

    Create an account—sessions gate the chat workspace so conversations stay yours.

  2. 02

    Configure LLM access

    Add OPENAI_API_KEY / ANTHROPIC_API_KEY on the host, or open Model settings and paste a browser-only key.

  3. 03

    Chat with persistence

    Every send hits POST /api/chat: validation, ownership, history, then generation via xoin-js's structured LLM layer—assistant rows persist like production.

Ready to own your AI chat stack?

Spin up Sinpoura locally with MongoDB and an auth secret, or explore the hosted demo—then fork and ship.