--:--
--
My Crafts Space
12 months

Kore

A capture-first second brain — anything you think, saved in under ninety seconds.

hero shot — drop a product image here
Timeline12 months
StackNext.jsPrismaPostgresSupabasetRPC
Overview

Kore turns any fragment — a screenshot, a half-sentence, a paste from Discord — into a discrete, dated thing you can close. It was built under one rule: if capture takes longer than ninety seconds, the tool has failed.

The challenge

Every note tool I tried wanted me to live inside it or invent yet another taxonomy of tags. Across three machines and a phone, none of them met me where the thought actually happened.

The real product question was never “is this good?” — it was “do I open it on a Tuesday morning?” Everything in Kore is bent toward that single moment of friction.

Approach

I deleted a beautiful native-first version after two weeks and rebuilt a worse-looking web version I actually used. That gap — admired vs. used — became the only metric I trusted.

The capture path is a single keyboard-first inbox. Everything else — organisation, search, linking — is deferred until after the thought is safely in.

What I built

01

Ninety-second capture

Global hotkey → typed or pasted → saved & dated. Zero required fields.

02

Deferred structure

Tags, links and collections are optional and applied later, never at capture.

03

Sub-500ms load

The capture screen opens in under half a second on a cheap laptop.

04

Safe migrations

A 12-line guard refuses any DB migration without a tested rollback.

Under the hood

a slice of the core logic
lib/capture.tsts
1// capture is the only path that must never fail2export async function capture(input: string, source: Source) {3  const item = {4    body: input.trim(),5    source,                 // "hotkey" | "paste" | "share"6    createdAt: new Date(),  // dated on the way in, always7    status: "open",8  };9  // optimistic: show it instantly, sync in the background10  store.add(item);11  await db.item.create({ data: item });12  return item; // < 90s from thought to saved13}

Screens

capture inbox — keyboard-first, single field
weekly review — deferred structuring view

Results

<500mscapture screen load
150+weekly active users
12 linesthe migration guard

Links & resources