(01)Services(02)Work(03)Pricing(04)Writing(05)Kits(06)AboutBook a call →
Work / kairos
Scheduling SaaS · solo-built · 2025–2026

Kairos— paste your notes, own your week.

Most people don't need another task list. They need something that turns the tasks they already have into a plan they'll actually follow. Kairos takes unstructured notes, extracts tasks using an LLM, and places them into Google Calendar automatically — respecting deadlines, dependencies, and your working hours. No drag and drop. No manual time-blocking.

TypeSolo product · Clupai
StackNext.js 15 · Drizzle · Neon · Vercel AI SDK · Better Auth · Google Calendar API
Timeline2025–2026 · 5 phases
StatusLive beta · v1.0.0 pending
Self-hostMIT · Docker Compose · one-click Vercel deploy
Livekairos.clupai.com
Schedule latency
1–3 s
task created → placed on Google Calendar · schedule-on-write
Plugins at launch
10
text, Instagram, Twitter, Readwise, voice, GitHub, Notion, Linear, email, Slack
Phases shipped
5
scheduling → recurrence → plugin host → marketplaces → collections
§ 01 · The brief

"Every scheduling app I tried had the same problem: it stored my tasks but it didn't do anything with them. I wanted something that would look at everything I had on, figure out when I could actually do it, and put it on my calendar — without me touching a single slot."

Sam Limbu · Founder, Kairos

§ 02 · The problem
  • 01Task managers are good at storage. They're bad at time. Nothing connected 'things I need to do' with 'when I can actually do them' without hours of manual scheduling.
  • 02Adding a new input source — say, pulling tasks from GitHub Issues or a Slack message — shouldn't require touching the core app. Every integration being a one-off made the codebase fragile and the system hard to extend.
  • 03The theme system needed to be community-extensible without any risk of a bad theme breaking the layout. Hand-rolled design tokens with no enforcement meant this was impossible to delegate.
§ 03 · The decisions

The calls that meaningfully moved the outcome. Not the cosmetic stuff.

Schedule-on-write

Creating or updating a task automatically enqueues a placement job via the Postgres jobs table. Scheduling completes in 1–3 s within the same Vercel function call — no separate trigger, no user action required. Idempotency keys prevent duplicates under concurrent saves.

Plugin host with PluginContext

Every scratchpad plugin gets a PluginContext — complete/completeStructured for LLM access, config, memory, logging — without core importing any provider SDK. Adding a new input source (Readwise, GitHub, Linear) is a PR to the public registry. 10 plugins shipped at launch without a single core change.

HTTP plugin runtime

Plugin authors deploy their own serverless function exposing GET /manifest and POST /parse. Kairos calls via lib/plugins/http-adapter.ts — HMAC-signed requests, 5 s timeout, circuit breaker (3 failures / 1 min → 5 min open). Supports version rollback. No third-party code runs inside the Kairos runtime.

Semantic token enforcement in CI

A custom ESLint rule (no-raw-colors) bans hex literals and raw Tailwind colour utilities in component files. Components reference semantic tokens only. Theme marketplace themes compile to CSS at install time. Safe to accept community submissions without manual design review.

LLM provider abstraction

lib/llm/ is the only place provider SDKs are allowed. All other code goes through PluginContext.complete() or Vercel AI SDK streamText. Switching OpenAI → Anthropic → Ollama is one env var. Self-hosters bring their own keys.

Collections as coordination, not taxonomy

Tags handle taxonomy. Google Calendar handles time. Collections handle coordination — grouping tasks into ordered phases (Planning → Build → Review) with progress tracking and bulk-schedule. No collectionId on the tasks table; many-to-many keeps tasks portable across collections.

§ 04 · The work

Screens, not mockups. The actual product—annotated.

01 / 06 · Core flow · scratchpad → tasks → calendarSchedule latency: 1–3 s
Mobile · 375px
02 · Mobile · 375px
03 · Schedule view · tasks placed on timeline
04 · Collections · phases · Phase 5d
Task list · obsidian-linear theme
05 · Task list · obsidian-linear theme
06 · Scratchpad · text → extracted candidates
Stack: Next.js 15 · Drizzle · Neon · Vercel AI SDK · Better Auth · Google Calendar API
clupai.com/contact

Right. Shall
we scope it?

Twenty minutes. No slideshow. We'll ask what you sell, who's buying, and where the site is getting in the way. You'll leave with a realistic estimate—or a reason we're not the right fit.

Replies within one AU business dayABN · Melbourne · VIC