DEV Community

Mary
Mary

Posted on • Originally published at thehappycactus.dev on

"Bookmark Decay": A Project for Learning

I’ve been working on a small personal project for awhile now, and I thought I’d start sharing my progress, just to talk about how I work through things. A bit of rubber duck programming for me, a little bit of content for you (uh, and for me).

“Bookmark Decay”

The working title of a little project I’ve thought about on and off for a couple years. The basic idea is a list of bookmarks that “decay” (IE, disappear) after a certain amount of time. It’s supposed to (a) encourage you to actually read the numerous bookmarks (or in my case, tabs) you create before they disappear, and (b) just be fun.

Feature List

  • Ability to add URLs to a list, ordered by last addition date
  • “Bookmarked” URLs should be removed from the list after a set time
  • Settable “decay” time (default 7 days, no more than 30)
  • There should be a visible decay for each listed “bookmark”
  • A “Recently Deceased” section for the last X many days of removed bookmarks; displayed in a different area from the main list
  • Absolutely no permanent history - the point here is that when it’s gone, it’s gone (Recently Deceased section aside)

Technical Decisions

I hemmed and hawed some on this, but ultimately settled on a few initial decisions:

Local Storage Only

To keep this easy (ha-ha), I decided to make this frontend-only. I don’t want to have to keep up a DB of users and their various bookmark-related data, so we’ll keep all of this in some sort of local storage. More on this development in future posts. 😅

Downsides? Regretting this decision if I eventually decide that it makes more sense/would be more popular if it did have a login for use across browsers and devices. Since this is supposed to be a “fun’n’easy” project, I’ll sacrifice future-proofing for convenience.

Chrome Extension

I wanted the adding of bookmarks to be as easy as possible, so requiring people to go to the Bookmark Decay website every time they wanted to add a bookmark didn’t seem like a great option. After a brief perusal of the Chrome Extension docs, I thought having an extension to handle the adding of a bookmark would be a simple solution.

Client-Side Rendering

Learning NextJS has taught me some about SSR and streaming, but did it really make sense to use server-based components if I’d decided to use exclusively local storage? Not really. In lieu of not using my latest learnings from NextJS, I thought I’d try out Vite with plain ‘ole React.

Next Steps

I decided to start by diving into the Chrome Extension. The docs made it seem relatively straight-forward, so why not?

Top comments (0)