Executando verificação de segurança...
1

Pitch: Eu criei minha primeira extensão Chrome porque editar localStorage era irritante

Finalmente publiquei minha primeira extensão Chrome.

Ela se chama DataSidekick, e eu criei porque cansei de brigar com o DevTools toda vez que precisava inspecionar ou editar localStorage e sessionStorage.

DataSideKick opend view

E sim, eu paguei a lendária taxa de US$ 5 da Chrome Web Store, então emocionalmente eu precisava publicar alguma coisa. Caso contrário, teria sido o pior investimento da minha vida.

O que é o DataSidekick?

DataSidekick é uma extensão Chrome que abre como um painel lateral e ajuda desenvolvedores a trabalhar com storage do navegador de uma forma mais limpa.

Em vez de ficar cavando no DevTools e editando strings cruas, você ganha uma interface focada para:

  • visualizar localStorage
  • visualizar sessionStorage
  • buscar por chave ou valor
  • editar valores simples inline
  • editar JSON visualmente
  • importar dados de um JSON
  • exportar dados para JSON
  • esconder keys ruidosas
  • solicitar acesso por site/origem

Você pode conferir aqui:

https://datasidekick.site

Por que eu criei isso

Storage do navegador é simples até deixar de ser.

Muitas aplicações salvam estados úteis no localStorage, mas a experiência padrão de desenvolvimento ainda é bem ruim:

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

Tecnicamente legível? Sim.

Agradável de editar? De jeito nenhum.

Eu queria algo mais próximo de um pequeno cockpit de desenvolvimento: abrir o painel, encontrar a key, inspecionar o valor, editar com segurança e seguir em frente.

A feature com que eu mais me importei: edição visual de JSON

A ideia principal era simples:

Se um valor é um JSON válido, não trate ele como uma string qualquer.

Então, em vez disso:

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

O DataSidekick exibe o JSON estruturado de um jeito mais legível, facilitando a inspeção e edição de valores aninhados.

Esse foi o primeiro momento de “ok, isso aqui é realmente útil”.

Permissões do Chrome foram o chefão final

A extensão precisa ler e editar o storage da página atual. Isso significa que permissões importam.

No começo, eu deixei uma permissão desnecessária no manifest e a Chrome Web Store rejeitou a extensão.

Justo. Vacilo meu.

A abordagem final ficou mais intencional:

  • sem permissão downloads desnecessária
  • acesso ao site é solicitado apenas quando necessário
  • o usuário vê quando o acesso é exigido
  • os dados permanecem locais no navegador

Para uma ferramenta que mexe com storage do navegador, acho que essa transparência é importante.

Exportando sem a permissão de downloads

Uma pequena lição: exportar um arquivo JSON não exige necessariamente a permissão downloads do Chrome.

Para o meu caso, isso aqui já é suficiente:

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);

Como eu não estava usando chrome.downloads.download(), a permissão era desnecessária.

A Chrome Web Store percebeu. A Chrome Web Store estava certa.

Dolorido, mas útil.

Features atuais

A primeira versão pública inclui:

  • interface em Chrome Side Panel
  • suporte a localStorage e sessionStorage
  • editor visual de JSON
  • busca por chave/valor
  • import/export JSON
  • fluxo de acesso por site
  • keys ocultas
  • filtro de keys ruidosas
  • favoritos
  • dark/light mode
  • controle de tamanho da fonte
  • playground no site

O playground

Também adicionei um playground no site para as pessoas entenderem a ideia antes de instalar qualquer coisa.

Isso foi importante porque ferramentas que mexem com storage do navegador podem parecer um pouco sensíveis. Eu queria que as pessoas vissem o que a extensão faz antes de conceder acesso a uma página.

Teste aqui:

https://datasidekick.site

O que eu aprendi

Algumas coisas que levei dessa primeira versão:

  1. Pequenas dev tools ainda valem muito a pena.
  2. Permissões em extensões Chrome merecem atenção de verdade.
  3. Uma decisão simples de UX pode importar mais do que uma feature complexa.
  4. Publicar em uma store é bem diferente de “funciona localmente”.
  5. Pagar US$ 5 te deixa emocionalmente comprometido.

O que vem depois?

Essa é minha primeira extensão Chrome, mas definitivamente não será a última.

Algumas ideias para versões futuras:

  • suporte a IndexedDB
  • visualização melhor de diff
  • undo/redo
  • validação por schema
  • histórico de storage
  • interações melhores no editor JSON

Por enquanto, estou feliz que ela está no ar.

Se você trabalha com localStorage ou sessionStorage com frequência, eu adoraria receber feedback:

https://datasidekick.site

Ou o link do plugin: DataSideKick

Criado por um desenvolvedor que só queria parar de editar JSON como um homem das cavernas.

Carregando publicação patrocinada...