a stack of fun

Competing for Attention

Two of my favorite hobbies are reading fiction hardcovers and playing single-player, story-focused video games. I was that nerd on campus with terrible posture carrying around a backpack full of sci-fi books I was in the middle of reading (this isn't a humble brag—we're talking Star Trek and Mass Effect paperbacks). When I got back to my apartment you better believe I abused my PS3 for hours in Skyrim and Metal Gear Solid 4. Today, not much has changed except my ability to hold multiple story lines in memory at a given time. If anything, I have more access to books and games than at any other point in my life. If you have a Steam account and play PC games, you're well aware of the digital-hoarding mentality that comes with seasonal Steam sales.

My memory isn't as elastic as it once was and I have multiple life-times worth of video games to play. Covid lockdown exemplified this behavior of struggling to finish a book or game once started. If something doesn't stick within the first hour, the desire to drop it and switch to something new was incredibly attractive. A few years of this and I found that none of the books and games I'd been spending my hard earned money on saw the finish line. The amount of stories I dropped was telling. I was tired of falling victim to choice overload and backlog anxiety. Something had to change.

home

I didn't lose interest in stories because they were bad, but because I struggled to go deeper with them. The best part of reading with friends or for school is the accountability required to understand what you've read. This means you have to ask yourself questions, look for deeper meaning and obscure themes, and be able to discuss them with others — all of which take a concerted effort. This is a skill that has to be maintained, otherwise we can find ourselves losing interest in anything that requires effort and commitment. Even spending time to understand why we may not like something challenges the way we interpret what we choose to consume.

A few years ago I started actively tracking which games and books I wanted to consume, when I started, finished, dropped, and even paused them. This self-administered accountability helped me not only tailor what I wanted to play or read beyond "what's on sale", but made a definite impact on my ability to finish things. I tried tools like Sofa and Yamtrack, but they lacked the one thing that changed how I engaged with stories: a place to put my thoughts.

For books like Neal Stephenson's Baroque Cycle trilogy, I struggled to remember who a character was that had been absent for 700 pages, what a complex financial concept meant, and why the Dutch were always upset by the French. I found myself keeping a separate journal to capture what I wanted to remember, which included a map of 18th century London, a running list of significant events, and a growing list of characters known by multiple names. These notes helped me engage with the series at a much deeper level than I expected. If this sounds like homework, replace the word "book" with "Dungeons & Dragons" and suddenly it becomes a well-spent Saturday night with friends, taking notes of significant events and drawing maps of dungeons explored.

collections

The problem with taking physical notes and tracking across subscription-based applications and self-hosted services is the burden of distraction, cost of use, and admin for moments meant to relieve us from these types of activities. In December 2025 I started designing the exact product I would use for tracking and capturing the books and games I wanted to spend my downtime enjoying. I stopped looking for the right tool and built it.

arkiv

I'm excited to release my app arkiv publicly for free. The goal of arkiv is to go beyond tracking and encourage exploring, capturing insight and recalling memories. It's built to facilitate deeper engagement with the media that demands a longer commitment to finish. I've been personally using arkiv for several months and it's in a feature-complete state. It's been a wild journey: starting from basic interaction patterns to building a sophisticated design system in Storybook, deploying automated database migrations, automated edge function deployments, and a myriad of other computer-science terms I hadn't planned on learning.

Search

I wanted the search experience to be fast and responsive. With arkiv, you can find books via Hardcover's API and games via IGDB — results appear as you type, no confirmation required. My favorite book recommendations come from knowledgeable bookstore owners, friends, and podcasts — and any friction between hearing a title and capturing it means the recommendation dies in the conversation.

search

The search flow is: keystroke → 500ms debounce → Supabase Edge Function → third-party API → paginated results back to UI.

Two separate Edge Function proxies keep API credentials server-side:

  • IGDB (games): Uses IGDB Query Language (IQL), fetches limit+1 results to detect hasMore, with up to 4 retries. Also pulls HowLongToBeat data as a secondary enrichment call.
  • Hardcover (books): Two-phase GraphQL — Phase 1 hits Typesense for a fast hit list, Phase 2 hydrates those IDs with full metadata (authors, pages, cover, year).

Pagination uses an Intersection Observer on a sentinel element 600px from the bottom — no "load more" button. Library deduplication normalizes titles via NFKD decomposition + accent stripping before comparing against what you own.

Memories

I'm not afraid to admit I use artificial intelligence while playing video games or reading books (you try recalling what over 500 Pokémon are capable of and how status types evolved over generations of releases!). For games, I need help recalling build choices or lore details I've forgotten. For books, sometimes I need help recalling what a character's motivations are or why a relationship might be strained. I will even pretend to have a private book club discussion around central themes in a story. The issue with using tools like Claude or ChatGPT is the admin work required to make sure the AI doesn't spoil major plot points and can recall previous discussions.

memories

A core area I wanted to explore was the experience of returning to something you previously completed. How might you approach a second playthrough in a different way years after the fact, or how can the shape of a narrative change with the knowledge of how things resolved? Now you don't have to remember what happened the first time around in order to facilitate alternative perspectives. Your arkiv contexts can capture these memories for the time you decide to return.

This problem is solved by treating each item (book or game) as a dedicated context. We don't think in terms of email or chat threads, we think in terms of object-relationships. For all the 'automated agentic workflow' language being tossed around, maintaining projects within Claude or managing various "prompts" to establish accurate context is a heavy administrative burden. With arkiv, all you need to do is open a book or game and it not only knows what you've discussed, but it can pull from bookmarks and personal notes, all without spoiling anything by keeping tabs on progression.

memories

Under the hood, that context is assembled automatically every time you open an item:

  • Each item gets a dedicated AI context assembled from 5 parallel database queries: item summary, current progress, all notes, all bookmarks, and a per-item AI memory record.
  • Spoiler prevention is rule-based: if status is "revisiting" or you've explicitly set spoiler_preference: full, the AI gets full context. Otherwise the system prompt injects a hard boundary: "Do not reveal or hint at story events beyond this progress point."
  • Thread continuity is maintained through rolling summaries — older messages get summarized every 4 new messages (280-token budget). When your message references prior discussion ("remind me", "we talked about"), a keyword extractor retrieves the top 3 matching older snippets and injects them into the prompt. Max 8 keywords, 40+ stopwords filtered.
  • Response mode is auto-detected from message phrasing — "boss", "build", "loadout" triggers strategy mode (game-specific); "lore", "recap", "why does" triggers lore mode; "vs.", "compare" triggers comparison mode. Each mode has its own token budget and temperature.
  • Durable preferences (how you want the AI to address characters, preferred tone) are stored in an ai_item_memories table and persist across all threads for that item.

Ambient Display

ambient display

One of the best ways to keep me engaged and accountable for content I've started is the ability to see it even when I'm not actively interacting with it. This "out of sight out of mind" problem impacted my interest in returning to something. This isn't an issue with physical media—placing a book or a game face-out on a shelf makes its presence known. You can't do that with digital content, short of changing your phone wallpaper to match what you're reading or playing. To combat this problem, I purchased the cheapest android-based digital photo frames I could find on Amazon and experimented with different ways of displaying content in-progress.

  • Each arkiv account that enables Ambient Display gets a short, random token—like a3f8bc12. That token lives in the database tied to your account, and it never changes.
  • Your display URL is arkiv.dev/u/a3f8bc12. When a browser loads that page, it looks up the token, finds your account, and checks that you've enabled public display. If you have, it fetches your in-progress and recently active items and starts the slideshow. No login, no API key, no configuration—a URL you can bookmark or drop into a kiosk browser.
  • The token isn't your user ID and it doesn't expose anything about your account. If you ever wanted to invalidate it, regenerating the token would silently break any existing bookmarks without affecting your data.

Why books and games?

The first thing I get asked when I demo arkiv is "why not movies and TV?". That's the logical next step, however it's not what I'm personally interested in solving for myself (Letterboxd is the MVP of film tracking and I love that community). Television and film are passive and fleeting experiences. You aren't required to physically engage with them and opportunities to reflect on the stories happen after they finish—not during. I personally stick to physical media and tracking progress hasn't been an issue.

Closing Thoughts

I still carry more books than I can read. The difference now is that I see them to the end—and I remember why they mattered. My backlog of games remains larger than I would like, but that's more to do with compulsive Steam sale shopping than lost commitment.

The backlog isn't the problem. The backlog is evidence that you're paying attention. arkiv is there to support the journeys a good book and video game will take you on. If you're the kind of person who keeps a running list of what to play next and still can't remember why you started the last thing, arkiv was built for you.

Try it free, no account required

https://arkiv.dev