Decision & Context Memory

Every decision, kept with its why.

Capture the decisions your team makes and the reasoning behind them, so the why behind every choice stays searchable instead of getting lost.

Capture a decisionFree to start. No credit card.
Ask why13 decisions on record

Why Kioku

Decisions get made in Slack threads,1 in meetings nobody writes up,2 in the comments of a pull request that merged a year ago.3

  1. 1slack / #platform-eng
  2. 2docs / mobile-launch-sync.md
  3. 3github / web-app / pull / 117

The code remembers what you chose. Nobody remembers why.

Kioku keeps the reasoning next to the decision, so the next person who asks gets an answer instead of a guess.

Anatomy of a decision

One record, every part of the why.

This is ADR-0014 the way Kioku keeps it and exports it, line for line. Each part has a field of its own, so the reasoning outlives the thread it came from.

docs/adr/0014-store-sessions-in-httponly-signed-cookies.mdMarkdown · 33 lines
# 14. Store sessions in httpOnly signed cookies
- **Status:** Proposed
- **Date:** March 19, 2026- **Owner:** Jon Okafor, Web lead
- **Project:** Platform v2- **Tags:** auth, security, sessions- **Source:** Pull request web-app #482
- **Supersedes:** ADR-0004: Keep the session token in localStorage
## ContextThe web app keeps its session token in localStorage, where any script on the page can read it.
## Options Considered- **Signed httpOnly cookie (chosen):** Scripts cannot read it, and no lookup on each request.- **Token in localStorage:** What we do today. Readable by any script that runs on the page.- **Server-side session table:** Instant revocation, but a database read on every request.
## DecisionKeep the session token in an httpOnly, signed cookie with a short expiry, and check a revocation list on logout.## RationaleAny XSS can read a token in localStorage. A signed httpOnly cookie keeps it out of reach of scripts without adding a database read to every request.
## ConsequencesLogout is enforced with a short expiry and a revocation list. Supersedes ADR-0004.
Recorded in Kioku as ADR-0014.

How thinking changed

Calls change. The record keeps both.

A newer decision can supersede an older one. Nothing is deleted: the old record stays where it was, marked superseded, with a line to the call that replaced it.

  • Supersedes
  • Proposed, not yet in force

Scroll sideways through the record

ADR-0014 supersedes ADR-0004ADR-0019 supersedes ADR-0009ADR-0020 supersedes ADR-0013Sep 2025Oct 2025Nov 2025Dec 2025Jan 2026Feb 2026Mar 2026Apr 2026May 2026Jun 2026Jul 2026Aug 2026
  1. ADR-0001Sep 16, 2025Chose PostgreSQL over MongoDB for the primary storeAcceptedMaya Chen
  2. ADR-0002Sep 30, 2025Modular monolith over microservices for v2AcceptedMaya Chen
  3. ADR-0003Oct 14, 2025React Native over fully native for the first releaseAcceptedPriya Raman
  4. ADR-0004Oct 28, 2025Keep the session token in localStorageAcceptedADR-0014 proposed
  5. ADR-0005Nov 18, 2025Row Level Security for tenant isolationAcceptedTom Rivera
  6. ADR-0006Dec 9, 2025ELT over ETL for the analytics pipelineAcceptedAna Silva
  7. ADR-0007Jan 13, 2026Strangler-fig migration off the v1 monolithAcceptedMaya Chen
  8. ADR-0008Jan 27, 2026Single events table with a typed JSONB payloadAcceptedAna Silva
  9. ADR-0009Feb 3, 2026Defer SSO and SAML to Q3Supersededby ADR-0019
  10. ADR-0010Feb 18, 2026Gate the mobile launch on a closed betaAcceptedPriya Raman
  11. ADR-0011Feb 25, 2026Collapse onboarding to a single screenAcceptedLena Park
  12. ADR-0012Mar 4, 2026Run background jobs on Postgres, not RedisAcceptedMaya Chen
  13. ADR-0013Mar 11, 2026Launch mobile with read-only offline modeSupersededby ADR-0020
  14. ADR-0014Mar 19, 2026Store sessions in httpOnly signed cookiesProposedreplaces ADR-0004
  15. ADR-0015Apr 2, 2026Structured JSON logging with request trace idsAcceptedTom Rivera
  16. ADR-0016Apr 21, 2026Nightly batch refresh for the exec dashboardAcceptedAna Silva
  17. ADR-0017May 12, 2026Default the pricing page to annual billingAcceptedLena Park
  18. ADR-0018Jun 2, 2026Stop the referral-program experimentAcceptedLena Park
  19. ADR-0019Jul 8, 2026Add SAML single sign-on through the identity-provider adapterAcceptedreplaces ADR-0009
  20. ADR-0020Aug 19, 2026Allow offline edits, last write wins per fieldAcceptedreplaces ADR-0013

Paste from anywhere

Wherever the call was made, paste it in.

Copy the part of the thread, the notes or the review that settled it. Kioku pulls out the decision, the options and the reasons, and you can edit any of it before it is saved.

Pasted, not connected. Kioku does not read your Slack, GitHub or calendar. Nothing reaches it unless you paste it.

Slack thread

#platform-engslack / #platform-engPasted

Wednesday, March 4

  1. Maya Chen10:02Email digests need a job queue before launch. Redis with BullMQ, or do we keep it in Postgres?
  2. Tom Rivera10:05OptionBullMQ is solid, but Redis is one more stateful service to run, back up and get paged for.
  3. Ana Silva10:07OptionSQS would work too, but then local dev needs an emulator and the queue is tied to AWS.
  4. Maya Chen10:11ReasonOur volume is nowhere near needing Redis. A jobs table means we enqueue in the same transaction as the write, so a job never points at a rolled-back row.
  5. Tom Rivera10:12ReasonFair. Let’s revisit if we ever sustain more than 50 jobs a second.
  6. Maya Chen10:14DecisionDecision: jobs run from a Postgres table, workers claim rows with SKIP LOCKED. I’ll write it up.
ADR-0012Accepted

Run background jobs on Postgres, not Redis

Maya Chen · Mar 4, 2026

Decisionfrom 1 line
Run background jobs from a jobs table in Postgres, with workers that claim rows using SKIP LOCKED.
Options weighedfrom 2 lines
Postgres jobs table over Redis with BullMQ and Amazon SQS.
Rationalefrom 2 lines
Job volume is far below what needs Redis, and enqueuing in the same transaction as the write means a job never points at a rolled-back row.

Meeting notes

Mobile launch syncdocs / mobile-launch-sync.mdPasted

March 11 · Priya Raman, Jon Okafor, Lena Park

  1. AgendaOffline mode for the launch build.
  2. LenaReasonField users keep asking to see their jobs on the train. Almost every ticket is about reading, not editing.
  3. JonOptionFull offline editing means conflict resolution, CRDTs or last-write-wins. Either way it is a quarter of work.
  4. PriyaOptionLaunching with no offline support at all leaves the field team with a blank screen on day one.
  5. AgreedDecisionLaunch with a read-only offline cache. Edits need a connection. Revisit editing after launch.
  6. ActionsJon scopes the cache. Priya logs the decision in Kioku.
ADR-0013Accepted

Launch mobile with read-only offline mode

Priya Raman · Mar 11, 2026

Decisionfrom 1 line
Ship a read-only offline cache for launch. Editing needs a connection until conflict handling is designed.
Options weighedfrom 2 lines
Read-only offline cache over Full offline editing and No offline support.
Rationalefrom 1 line
Support tickets are about reading jobs without signal, not editing them, and offline edits would need conflict resolution that pushes the launch back a quarter.

PR discussion

Move sessions to signed cookies #482github / web-app / pull / 482Pasted

Open · 3 comments

  1. Jon OkaforMar 18ReasonThis moves the session token out of localStorage into an httpOnly signed cookie. Today any XSS can read the token.
  2. Ana SilvaMar 18OptionWhy not a server-side session table? Then a logout revokes instantly.
  3. Jon OkaforMar 19ReasonOptionThat adds a database read to every request. A short expiry plus a revocation list covers logout for now.
  4. Maya ChenMar 19ApprovedDecisionLooks right. Merge once the revocation list lands. This supersedes ADR-0004, the localStorage decision.
ADR-0014Proposed

Store sessions in httpOnly signed cookies

Jon Okafor · Mar 19, 2026

Decisionfrom 1 line
Keep the session token in an httpOnly, signed cookie with a short expiry, and check a revocation list on logout.
Options weighedfrom 2 lines
Signed httpOnly cookie over Token in localStorage and Server-side session table.
Rationalefrom 2 lines
Any XSS can read a token in localStorage. A signed httpOnly cookie keeps it out of reach of scripts without adding a database read to every request.
Kioku's glass crystal on a desk at night, a beam of light entering it

Signed in

The sky becomes your team's own record.

Your workspace

Every decision, kept where you can find it.

  1. 01

    Capture

    Paste a thread or a rough note and get a structured record you can edit before it is saved.

    /remember
  2. 02

    Recall

    Ask why in plain words. Answers come from your records and point back to the decisions they used.

    /recall
  3. 03

    Timeline

    Every decision in the order it was made, filtered by project, with the calls that replaced it.

    /timeline
  4. 04

    Projects and tags

    Each decision belongs to a project and carries tags, so history narrows to the part you care about.

    /projects
  5. 05

    Export

    Copy or download any decision as ADR Markdown, or export the whole account as JSON from settings.

    docs/adr
  6. 06

    Private by default

    Decisions are scoped to your account, encrypted at rest and never used to train models.

    your account

Pricing

Start free. Upgrade when the record grows.

Free covers your first decisions with no card. Pro is for teams that decide a lot. Organizations that need single sign-on or self-hosting talk to us.

Kioku plans compared
FeatureFree$0foreverFor capturing your first decisionsProRecommended$15per monthFor teams that decide a lotEnterpriseCustomFor organizations with security requirements
DecisionsA generous numberUnlimitedUnlimited
Structured decision captureIncludedIncludedIncluded
AI formatting from rough notesIncludedIncludedIncluded
Semantic search and grounded recallNot includedIncludedIncluded
Timeline and tagsNot includedIncludedIncluded
ADR exportNot includedIncludedIncluded
Single sign-onNot includedNot includedIncluded
Self-hosting optionNot includedNot includedIncluded
Dedicated supportNot includedNot includedIncluded
Start freeStart with ProTalk to us

Questions

Asked and answered.

Anything else? Ask us directly.

How is Kioku different from documentation or a wiki?

Documentation describes how things work today. Kioku captures why a decision was made, what alternatives were considered, and the tradeoffs you accepted, structured as ADRs. It is the record of your reasoning, not just the current state.

Do I have to write every decision by hand?

No. Paste a rough note or a few sentences and Kioku will structure it into a clean decision record with context, options, decision, rationale, and consequences. You stay in control and can edit anything before saving.

How does recall work when I ask why we chose something?

Kioku uses semantic search to find decisions by meaning, then answers questions like why did we choose X grounded in your actual records. Every answer points back to the real decisions it came from, so you can trust it.

Is our decision history private?

Your decisions are scoped to your account, encrypted at rest, and never used to train models. Enterprise plans add a self-host option so your institutional memory never leaves your environment.

How does pricing work?

Free includes a generous number of decisions with structured capture and AI formatting, no credit card required. Pro is $15 per month for unlimited decisions, semantic search, timeline, tags, and ADR export. Enterprise is custom with SSO, self-hosting, and dedicated support.

What does Kioku keep for each decision?

The decision itself, the context that prompted it, the options you weighed, the rationale and the consequences, with tags and the project it belongs to. Decisions can also be linked, so a newer call can supersede an older one.

Can I export decisions as ADRs?

Yes. A decision can be copied or downloaded as an Architecture Decision Record in Markdown, ready to commit to docs/adr. Your whole account can also be exported as JSON from settings.

Can I try it without an account?

Yes. The demo workspace is seeded with sample projects and decisions, so you can capture, recall and browse the timeline without signing up. Start it from the sign-in page.

Start the record

Keep the whybehind every choice.

Paste a thread, a meeting note or a pull request discussion, and get a decision your team can search. Free to start, no credit card.

Start free
Kioku's hexagonal glass crystal on the night stage, a white beam entering it
Ask whyWhy did we choose Postgres?1ADR-00012ADR-0005Ask it in the sky above