Contact
← All work2026

rai kit

Coming soon: a source-installed assistant component for personal sites, docs, and product pages. The assistant in the bottom-left corner of this site is the proof: page-aware prompts, site tools, guardrails, rate limits, persistence, and shareable threads running in one real interface.

Role
Solo project
Stack
Next.js · AI SDK · OpenAI · Upstash
Status
coming soon

What it is

Rai Kit is the public, configurable extraction of the assistant system already running here. It is not a black-box widget. It is a CLI and template set that copies editable source into a site: launcher UI, orb, API route, prompt builder, content index, guardrails, browser tools, and storage hooks.

The live byricky.dev assistant stays on its current private component. Rai Kit is a separate public copy that can be generalized without risking this site's production launcher.

Why source-installed

A normal package can render a button, but this needs more than a button. The useful part is the whole system: API routes, model tools, page context, generated site indexes, guardrails, rate limits, local persistence, and site-specific voice.

The planned install flow follows the shadcn pattern. Start with strong defaults, then own the files. Teams can change the surface, rephrase the prompt, add tools, swap storage, or wire a CMS without waiting for a package maintainer.

Planned install shape

# coming soon
npx rai-kit init

# then mount it in your app shell
import { RaiLauncher } from "@/components/rai/rai-launcher"

The unpublished starter template currently lives in packages/rai-kit. It copies a Next.js App Router implementation with a config file, assistant route, content index seed, guardrails, rate limiter, orb, and launcher component.

Configuration

Behavior belongs in a typed config file. Secrets stay in the environment. The public copy is designed around knobs for identity, model, UI, tools, rate limits, and indexed content.

export const raiConfig = {
  assistant: {
    name: "rai",
    label: "Ask rai",
    scope: ["projects", "writing", "about", "contact"],
  },
  model: {
    provider: "openai",
    name: "gpt-5.4-nano",
  },
  ui: {
    position: "bottom-left",
    accent: "#4ade80",
  },
}

What will ship first

  • Config-driven launcher with persistence, keyboard shortcut, hash trigger, page context, quick replies, and local browser tools.
  • Next.js API route with OpenAI streaming, same-origin checks, basic guardrails, rate limiting, and content search tools.
  • Content index seed that can be replaced by a generated index from routes, Markdown, MDX, Notion, or a custom CMS adapter.