Jennifer Nguyen

Bootwitch

Scientist building AI and research tools
Bootwitch / Interactive demo
Simulated session
Files
Terminal
Welcome to Bootwitch.
Projects / cloudflare-worker-project

Cloudflare Worker Rebuild

A Cloudflare Worker workspace for conversation memory, search, and background AI jobs.

context-notebookcontext-and-memorycloudflareworker
Tech stack
Cloudflare WorkersD1R2KVVectorizeLLM APIs

I rebuilt the Cloudflare Worker behind my private Bootwitch workspace and got it running with a clean database and storage layer. This is the write-up for that rebuild.

Jennifer Naomi Nguyen · systems project · Running privately · February 2026 – present

Source on GitHub

Why I built it

Long AI conversations lose continuity. The decision I made three weeks ago, the constraint that ruled out the obvious approach, the half-finished thread I meant to come back to — all of it is still in the transcript, and none of it is easy to pick up next time.

Bootwitch is the system I built for my own work. Conversations come in; summaries, wiki pages, a knowledge graph, and an evolving memory state come out.

What it does

  • Streams conversations and stores the messages.
  • Turns long discussions into summaries and Spell Book pages — a personal wiki I can return to.
  • Searches conversations, wiki pages, branches, and themes by meaning.
  • Builds connections between ideas as the conversation history grows.
  • Supports conversation branches, files, images, and speech in and out.
  • Runs the background work that keeps those pieces moving after I close the laptop.

There's also a small real-time experiment I call the water cooler. It started as a joke and became a useful way to see how shared state behaves when several participants are active at once.

How it fits together

The interface is React. A Cloudflare Worker connects it to a clean D1 database, R2 object storage, KV, Queues, Vectorize, Workers AI, and a Durable Object. Each has a job: messages, files, memory state, background work, search, or shared live interaction.

The most useful split is between a conversation happening now and the work that can happen afterward. A streamed response takes one path; summarization, embedding, and wiki generation take another.

Memory I can read

I wanted the results to be things I could open: a summary, a wiki page, a branch, a basin weight. That makes it easier to understand what the system carried forward and decide whether it's useful.

Summaries become search inputs; the graph grows from the relationships surfaced across conversations. The Worker keeps that background processing off the live response path.

Current status and next steps

I'm connecting the pieces around my own workflow and working through the tradeoffs as they appear. It brings together context, retrieval, background jobs, routing, and interface work in one system I use.

The workspace runs privately. This write-up shows its architecture and current status, with the public source linked above. The next useful improvement is a visible status for background jobs, so a delayed summary is easier to investigate.

This page describes the private application; the workspace itself is not public. The portfolio's Attractor visualization is a published, read-only snapshot, not a window onto my conversation history.

Connected projects

Attractor — Adaptive Context and Personalization focuses on memory and context delivery in a standalone prototype. Model Routing looks at how this workspace and the Multi-Provider LLM Orchestrator choose models and move work. Systems Logging and Telemetry looks at the signals those systems leave behind.

All projects

Bootwitch — Jennifer NguyenBuilt with Claude