Skip to content

ultrakit/ultrakit-starter

Repository files navigation

UltraKit (Lite)

The lite version of UltraKit — an AI application starter kit for the Claude Code era.

This is the free, open-source teaser. The full version includes 4 LLM providers (incl. self-hosted), Drizzle + MySQL, Better-auth, vector stores, full RAG pipeline, production essentials, 3 themes, and plug-and-play add-ons. Join the waitlist →

Demo

UltraKit Lite chat demo

30-second demo of the streaming chat UI. Full version has 4 LLM providers, RAG, auth, and more.

What this lite version shows you

  • Clean architecture — two-layer separation of src/lib/ (platform primitives) and src/features/ (composable modules)
  • AI-assistant-native conventionsCLAUDE.md, AGENTS.md, .cursorrules files so Claude Code and Cursor extend the codebase correctly
  • Clean code enforced — ESLint rules, pre-commit hooks, strict TypeScript — commits fail on messy code
  • Streaming chat UI — working OpenAI-backed chat demo using the LLMClient abstraction
  • Feature module template — ready to copy when adding new features

What the lite version does NOT include

  • Self-hosted LLM adapter
  • Multiple LLM providers (just OpenAI here)
  • Authentication
  • Database + migrations
  • Vector store + RAG pipeline
  • File upload
  • Production essentials (rate limiting, cost tracking, observability)
  • Multiple themes
  • Docker, Makefile, Storybook
  • Commercial support

These are all in the full version. Join the waitlist →

Getting started

pnpm install
cp .env.example .env.local
# Add your OPENAI_API_KEY to .env.local
pnpm dev

Visit http://localhost:3000.

Use any OpenAI-compatible provider

The LLM client speaks the OpenAI protocol, so it works with any endpoint that does too. Just set OPENAI_BASE_URL in your .env.local:

# OpenRouter (access to 100+ models through one key)
OPENAI_API_KEY=sk-or-v1-...
OPENAI_BASE_URL=https://openrouter.ai/api/v1
OPENAI_MODEL=anthropic/claude-3.5-sonnet

# Ollama (self-hosted, free)
OPENAI_API_KEY=ollama
OPENAI_BASE_URL=http://localhost:11434/v1
OPENAI_MODEL=llama3.2

# Groq (fast inference)
OPENAI_API_KEY=gsk_...
OPENAI_BASE_URL=https://api.groq.com/openai/v1
OPENAI_MODEL=llama-3.1-70b-versatile

Zero code changes. One env flip switches between cloud and self-hosted. The full version of UltraKit adds native Anthropic, Gemini, and a dedicated OpenAICompatibleProvider to make this even cleaner.

Quality gates

pnpm check:quality

Runs ESLint, TypeScript typecheck, and tests. Pre-commit hooks call this automatically — commits fail on lint errors, type errors, missing tests, or files over 300 lines.

Try it with Claude Code

# From the project root
claude "add a simple document summary feature module"

Claude Code reads CLAUDE.md and docs/clean-code-rules.md, copies the features/chat/ pattern, creates a new module with tests, and the pre-commit hooks verify the output is clean.

Architecture

src/
├── lib/              # Platform primitives (stable foundation)
│   ├── llm/          # LLM client abstraction with OpenAI provider
│   └── env.ts        # Env validation
└── features/         # Composable feature modules
    └── chat/         # Streaming chat feature
        ├── index.ts          # public API
        ├── chat.ts           # core logic (tested)
        ├── chat.types.ts     # types
        ├── chat.test.ts      # tests
        ├── components/       # UI
        └── hooks/            # React hooks

Contributing

This is a teaser repo. Issues and PRs welcome, but active development happens in the full version.

License

MIT — do anything you want with this code, including commercial use.


Built by an experienced full-stack engineer shipping AI applications for a living. 10+ years of experience spanning consumer-scale systems and enterprise AI work.

This ships under a brand, not a face — my day job requires it. Follow on Twitter/X →

About

The AI application starter kit for the Claude Code era. Clean code enforced. (Lite version — full version at ultrakit.dev)

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors