Case study

ReadingRewind

Save web pages and find them again across browser sessions.

Public beta Laravel Livewire Browser Extension Readability MySQL Queues
ReadingRewind case study architectural model

ReadingRewind is a personal reading library that works with the browser. It keeps bookmarks, open tabs, folder structure, and clean article views available for later recall.

I

Overview

ReadingRewind treats saved pages as a personal reading memory, not just a list of URLs. Its browser extension brings bookmarks and open tabs into one library. The web app then supports search, cleanup, and a focused reader view for returning to useful material.

II

What It Does

People can pair Chrome, Edge, or Firefox through a signed connection flow. The extension sends bookmark changes, folder changes, open tabs, and full snapshots to the account. The library includes bookmark details, import tools, readable article views, sync progress, and cleanup for duplicates, deleted source items, untagged pages, and stale tabs.

III

Technology

Laravel provides the web application, pairing API, authorization, and data model. Livewire delivers the interactive library and cleanup screens. MySQL stores bookmarks, folders, browser connections, tabs, and sync sessions. The browser extension has separate Chromium and Firefox manifests. FiveFilters Readability extracts article content, while HTML purification keeps the reader output safe. Queues handle extraction work.

IV

How It Was Built

A full browser snapshot is divided into smaller chunks before import. A cache claim makes each chunk retry-safe, and pending nodes wait until their parent folders arrive. When the snapshot completes, the server marks missing source items as deleted. Event endpoints handle smaller bookmark changes between snapshots, while progress records keep the user informed.

V

Main Challenge

Browser sync must survive intermittent connections, repeated events, and data that arrives out of order. Folder hierarchy makes this harder because a child bookmark can arrive before its parent. The system must also avoid duplicate imports during retries. Reader extraction is limited to URLs already owned by the user, and the returned HTML is sanitized.

VI

Connection to Imperiorum

ReadingRewind provides private aggregate totals for bookmarks, tabs, and recent sync activity to Imperiorum. The connection reports product-level signals rather than reading content or saved URLs. This keeps the portfolio view useful without exposing the personal library.

VII

Result

The result is a browser-aware library that can recover from common sync failures without losing its folder structure. Users get one place to review saved pages, active tabs, and readable copies. The architecture supports gradual updates and complete snapshots through the same account connection.