{"slug": "i-built-a-chatbot-that-remembers-you-across-devices-6-things-i-learned", "title": "I Built a Chatbot That Remembers You Across Devices — 6 Things I Learned", "summary": "A developer built Pickup, a chatbot that persists user memory across browsers and devices on Walrus mainnet, and documented six engineering lessons from the effort. The write-up reports an 8-second recall timeout, a 36-second Walrus mainnet write that forced a reply-first/save-later flow, client-side caching to cover index lag, and serialized writes to avoid rate limits. The developer notes the SDK lacks a delete method, so the UI warns users against storing secrets in persistent memory.", "body_md": "I built Pickup, a chatbot that remembers users across browsers and devices using Walrus mainnet.\n\nI thought the hard part would be storing and retrieving memories.\n\nIt wasn't.\n\nThe real challenge was making decentralized storage work smoothly behind a chatbot. These were the six things I learned.\n\nIf memory retrieval is slow, the whole chat shouldn't have to wait.\n\nI added an 8-second timeout. If memory doesn't come back in time, the chatbot answers normally and tells the user that it answered without the latest memory.\n\nThe chatbot should still work when memory doesn't.\n\nOne Walrus mainnet write took 36 seconds in my testing.\n\nWaiting 36 seconds after every message obviously isn't acceptable.\n\nSo I changed the flow:\n\nReply first → save memory afterward.\n\nThe user gets the response immediately while the memory is saved in the background.\n\nSaving every message creates a lot of useless memory.\n\nI added a simple filter that skips short conversations and messages that don't contain useful information about the user.\n\nFor example:\n\n\"Why does it 429?\" → skip\n\n\"I'm running v0.1.8 and getting 429 errors.\" → save\n\nThe goal isn't to remember everything.\n\nIt's to remember the right things.\n\nI ran into an interesting consistency issue.\n\nA memory could be successfully saved, but the next recall wouldn't find it because the index hadn't caught up yet.\n\nSo I temporarily keep recently saved memories on the client and include them in recall results until the server catches up.\n\nIn other words:\n\nWritten ≠ immediately readable.\n\nThat's something I had to design around.\n\nSending several writes at once caused rate-limit failures.\n\nThe fix was simple:\n\nOne namespace, one write at a time.\n\nInstead of firing every write immediately, I queue them.\n\nPickup shows the memories used for each response and how old they are.\n\nThis turned memory from a black box into something I could actually inspect.\n\nWhen the chatbot gives an unexpected answer, I can see whether it used the wrong memory, an old memory, or no memory at all.\n\nOne limitation\n\nThe SDK I'm using currently doesn't provide a delete method.\n\nSo I didn't add a fake delete button.\n\nInstead, the UI warns users not to store secrets or sensitive information in persistent memory.\n\nI'd rather be honest about the limitation than pretend deletion is guaranteed.\n\nThe main lesson\n\nBuilding persistent AI memory taught me that storage is only part of the problem.\n\nOnce storage sits behind a real-time chatbot, you also have to think about:\n\nLatency. Consistency. Rate limits. Memory quality. Observability.\n\nThat's where most of the interesting engineering happened.\n\nPickup was built for Walrus Sessions 8.", "url": "https://wpnews.pro/news/i-built-a-chatbot-that-remembers-you-across-devices-6-things-i-learned", "canonical_source": "https://dev.to/blvckninja/i-built-a-chatbot-that-remembers-you-across-devices-6-things-i-learned-3ehp", "published_at": "2026-10-03 13:29:21+00:00", "updated_at": "2026-10-03 13:38:26.246386+00:00", "lang": "en", "topics": ["ai-products", "ai-tools", "ai-infrastructure", "ai-agents"], "entities": ["Pickup", "Walrus", "Walrus Sessions 8"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-a-chatbot-that-remembers-you-across-devices-6-things-i-learned", "markdown": "https://wpnews.pro/news/i-built-a-chatbot-that-remembers-you-across-devices-6-things-i-learned.md", "text": "https://wpnews.pro/news/i-built-a-chatbot-that-remembers-you-across-devices-6-things-i-learned.txt", "jsonld": "https://wpnews.pro/news/i-built-a-chatbot-that-remembers-you-across-devices-6-things-i-learned.jsonld"}}