Inspiration

I kept running into the same small problem with AI. Every new conversation starts with almost no idea of what I actually like.

Whenever I wanted a good recommendation I had to explain what I had watched, where I stopped, what I liked, what I did not like and why certain things worked for me. A simple 8/10 or 9/10 rating cannot really capture all of that.

That made me think. What if my taste could live somewhere outside a single conversation?

That idea eventually became TasteShelf. It is a personal and editable memory of the media I experience that my AI can access and work with through WebMCP.

I never wanted to build another AI chatbot. I wanted to keep using the AI I already use while giving it a persistent place for my tastes, memories, notes and preferences.

What it does

TasteShelf is a visual memory system for movies, series, books, animation and other kinds of media.

Instead of filling out a long form I can just tell my AI something naturally:

“I’m watching Silo. I stopped at S1E5. I love the mysteries, fast pace and claustrophobic setting.”

Through WebMCP the AI can update the same live TasteShelf that I use myself.

It can save progress, ratings, reactions, notes and more detailed memories. Every work can also have a visual memory canvas with characters, themes, locations, events, thoughts and connections.

TasteShelf currently has 10 WebMCP Site tools for reading and updating this shared state.

One idea that matters a lot to me is that AI should be able to notice patterns without quietly deciding who the user is.

If the agent notices a possible preference TasteShelf creates a suggestion that the user can review.

AI can infer you. It cannot define you.

Later I can simply ask my AI what I should watch next. TasteShelf is not another recommendation chatbot. The reasoning stays inside my AI and uses the memories and preferences I already created.

How we built it

TasteShelf is a full stack web application with WebMCP built directly into the live page.

The core stack includes: • React based UI • WebMCP Site tools using document.modelContext.registerTool(...) • Cloudflare Workers • Cloudflare D1 for persistent storage • one authenticated backend shared by the human interface and WebMCP actions

One important decision was not to create a separate agent backend.

When I change a rating in the UI and when the AI changes that same rating through WebMCP both actions work with the same application state and the same data.

That shared state is one of the parts I find most interesting.

The AI can make a change and I can see it immediately. Then I can edit something myself and the AI can read the new state and continue from there.

Challenges we ran into

The hardest part was not registering the tools. The bigger challenge was figuring out what good agent tools should actually look like.

A simple “add item” tool is easy. Things get much more interesting once an agent can change real user data.

Questions start appearing quickly: • How should human edits and agent edits work together? • How do we avoid overwriting newer changes made by the user? • What should happen with preferences inferred by AI? • How do we keep personal notes as user owned information instead of presenting AI conclusions as facts? • How do we stop a media agent from accidentally reading spoilers beyond the user’s saved progress?

The memory canvas created another interesting problem because both the user and the agent can edit the same visual space.

TasteShelf uses revision aware updates and progress aware canvas reads. This lets the agent add new memories without blindly replacing newer work or reading story information the user has not reached yet.

Deployment was another big learning experience for me.

This was my first time seriously building and deploying something with Cloudflare Workers and D1. I had to learn how Workers deployments, D1 bindings, migrations, authentication, build configuration and Cloudflare’s free infrastructure fit together.

At first it felt unfamiliar. By the end I really liked the workflow and how much of the full stack could live on one platform.

Accomplishments I’m proud of

I am especially happy that TasteShelf became more than a demo button connected to an AI tool.

Some of the things I am most proud of: • real WebMCP Site tools working with persistent application data • human UI actions and agent actions using the same state • persistent media memory instead of context limited to individual chats • visual memory canvases that both humans and agents can edit • progress aware and spoiler safe canvas reads • preference suggestions that require human confirmation • saved shortlists backed by evidence • precise canvas focus so an agent can open a specific memory or connection • activity tracking and undo behavior for safer shared interactions

The biggest achievement for me is the interaction model itself.

I can talk naturally with my AI and that conversation turns into something persistent that I can see, edit and use again later.

What we learned

The biggest thing I learned is that agent native applications do not need to replace traditional user interfaces.

I actually think the experience becomes much more interesting when the human interface still matters.

TasteShelf works as a visual media library and personal memory system on its own. WebMCP simply gives me another way to interact with the same product.

I also learned that persistent AI context feels much more trustworthy when users can actually see and edit it.

Instead of keeping a hidden model of the user somewhere inside an algorithm TasteShelf tries to make that memory visible: • what I watched • how I felt about it • why I liked something • what I disliked • what the AI inferred about me • which of those conclusions I actually approved

I also learned a lot about Cloudflare, D1, deployment, authentication and how to design tools that are genuinely useful to an agent without giving it more control than it needs.

What comes next for TasteShelf

One of the directions I am most excited about is making shared taste more social.

I want TasteShelf to help people find others who genuinely like the same things. It could connect people through shared interests and memories. It could also make it easier to start conversations around the shows, films, books, genres and creative worlds they care about.

That could include: • group chats around shared interests • matching people based on similar taste and memories • temporary or long term discussion rooms for specific shows, films, books or themes • optional anonymous chats for people who want to talk without connecting the conversation to a public profile

I do not want TasteShelf to become another generic social network. The idea is to make conversations happen naturally because people already care about the same things.

I also want to make onboarding much easier. Users should be able to import their history from services like Letterboxd, Goodreads, Trakt or simple CSV files. They should not have to manually rebuild years of watching and reading history.

Another direction is improving media lookup and making the connection between memories and preferences much clearer. I also want the AI to be able to point directly to the memories that influenced its reasoning.

In the future I see TasteShelf as a portable memory layer for personal taste. It should belong to the user and stay useful even if they decide to use a different AI.

The bigger vision is simple. TasteShelf should be a place where personal memory, AI assistance and human connection all grow from the things we genuinely care about.

The core idea is still simple: Talk to your AI. Build your memories together. Make those memories useful later. Your taste. Your memories. Your AI.

Built With

  • better-auth
  • cloudflare-d1
  • cloudflare-workers
  • drizzle-orm
  • react
  • shadcn/ui
  • tailwind-css
  • typescript
  • vinext
  • vite
  • webmcp
Share this project:

Updates

Submission history