cd /news/developer-tools/i-built-my-first-chrome-extension-be… · home topics developer-tools article
[ARTICLE · art-10218] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=↑ positive

I built my first Chrome extension because editing localStorage was annoying

The article describes the creation of DataSidekick, a Chrome extension developed by Rodrigo to simplify editing localStorage and sessionStorage by providing a cleaner, structured JSON interface instead of the default DevTools experience. The developer paid the $5 Chrome Web Store fee and learned a lesson when the store rejected the initial version due to an unnecessary "downloads" permission, which was removed. The extension is now live, supports localStorage and sessionStorage, and includes a playground for users to test its functionality before installation.

read3 min views12 publishedMay 22, 2026

I finally published my first Chrome extension.

It is called DataSidekick, and I built it because I got tired of fighting DevTools every time I needed to inspect or edit localStorage

and sessionStorage

.

Also, yes, I paid the legendary $5 Chrome Web Store developer fee, so emotionally I had to ship something. Otherwise, it would have been the worst investment portfolio of my life.

What is DataSidekick? #

DataSidekick is a Chrome extension that opens as a side panel and helps developers work with browser storage in a cleaner way.

Instead of digging through DevTools and editing raw strings, you get a focused interface for:

  • viewing localStorage

  • viewing sessionStorage

  • searching by key or value

  • editing simple values inline

  • editing JSON visually

  • importing data from JSON

  • exporting data to JSON

  • hiding noisy keys

  • requesting access per site/origin

You can check it out here:

Why I built it #

Browser storage is simple until it is not.

A lot of apps store useful state in localStorage

, but the default developer experience is still pretty rough:

{"user":{"name":"Rodrigo","settings":{"theme":"dark"}}}

Technically readable? Sure.

Pleasant to edit? Absolutely not.

I wanted something closer to a small developer cockpit: open the panel, find the key, inspect the value, edit it safely, and move on.

The feature I cared about most: visual JSON editing #

The main idea was simple:

If a value is valid JSON, don't treat it like a random string.

So instead of this:

{"a":"b","settings":{"theme":"dark"}}

DataSidekick displays structured JSON in a more readable way, so it becomes easier to inspect and edit nested values.

That was the first “okay, this is actually useful” moment.

Chrome permissions were the real boss fight #

The extension needs to read and edit storage from the current page. That means permissions matter.

At first, I had an unnecessary permission in the manifest and the Chrome Web Store rejected the extension.

Fair enough. My bad.

The final approach is more intentional:

  • no unnecessary downloads

permission - site access is requested when needed

  • the user sees when access is required
  • data stays local in the browser

For a tool that touches browser storage, I think this transparency is important.

Exporting without the downloads permission #

One small lesson: exporting a JSON file does not necessarily require the Chrome downloads

permission.

This is enough for my use case:

const blob = new Blob([JSON.stringify(payload, null, 2)], {
  type: "application/json"
});

const url = URL.createObjectURL(blob);

const a = document.createElement("a");
a.href = url;
a.download = "datasidekick-export.json";
a.click();

URL.revokeObjectURL(url);

Since I was not using chrome.downloads.download()

, the permission was unnecessary.

Chrome Web Store noticed. Chrome Web Store was right.

Painful, but useful.

Current features #

The first public version includes:

  • Chrome Side Panel UI

localStorage

andsessionStorage

support - visual JSON editor

  • key/value search
  • import/export JSON
  • per-site access flow
  • hidden keys
  • noisy key filtering
  • favorites
  • dark/light mode
  • font size controls
  • playground on the website

The playground #

I also added a playground to the site so people can understand the idea before installing anything.

That was important because browser storage tools can feel a bit sensitive. I wanted people to see what the extension does before giving it access to a page.

Try it here:

What I learned #

A few things I took away from this first release:

  • Small dev tools are still worth building.
  • Chrome extension permissions deserve real attention.
  • A simple UX decision can matter more than a complex feature.
  • Shipping to a store is very different from “it works locally”.
  • Paying $5 makes you emotionally committed.

What's next? #

This is my first Chrome extension, but definitely not the last.

Some ideas for future versions:

  • IndexedDB support
  • better diff view
  • undo/redo
  • schema validation
  • storage history
  • better JSON editing interactions

For now, I am happy it is live.

If you work with localStorage

or sessionStorage

often, I would love your feedback:

Or plugin link: DataSideKick

Built by a developer who just wanted to stop editing JSON like a caveman.

── more in #developer-tools 4 stories · sorted by recency
── more on @datasidekick 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-built-my-first-chr…] indexed:0 read:3min 2026-05-22 ·