Slopographic

Auditoria

Como a Slopographic funciona

Os apps rodam no seu navegador. Esta página lista os recursos do navegador que eles usam, cada requisição de rede que podem fazer e o que fica guardado no seu dispositivo, para que você possa verificar cada afirmação por conta própria. Cada afirmação aqui foi conferida com o código-fonte do repositório público.

A versão curta

Em palavras simples

Para onde vão os meus arquivos?

Para lugar nenhum. Quando você abre uma foto, um PDF ou uma planilha, o app a lê dentro desta aba do navegador. Não há etapa de envio e nenhum servidor da Slopographic que possa recebê-lo. O que você salva vai para o seu próprio disco, ou para o armazenamento deste navegador, neste dispositivo. Só se você conectar um serviço de IA com a sua própria chave e permitir é que uma cópia vai para esse serviço (veja o botão de IA).

Por que um app às vezes baixa alguma coisa?

Alguns recursos precisam de um arquivo grande que a maioria das pessoas nunca usa: um modelo de IA (para remover um fundo, ler texto ou transcrever fala), o motor de vídeo (para converter um vídeo) ou uma fonte para outro sistema de escrita. Esses arquivos só são baixados quando você usa o recurso, depois que o app informa o que é e qual é o tamanho, e ficam guardados no navegador, para que isso aconteça uma única vez. Os seus arquivos nunca fazem parte desse pedido.

Funciona offline?

Sim, depois da primeira visita. Os arquivos do próprio site ficam guardados pelo navegador, então os apps abrem e funcionam sem conexão. Só um download que você ainda não fez (um modelo ou uma fonte) precisa da rede.

Preciso instalar alguma coisa?

Não. Basta abrir um app no navegador do seu celular, tablet ou computador e começar. Ele continua funcionando sem internet depois da primeira visita. Quer um ícone na tela inicial? No iPhone ou iPad, toque em Compartilhar e depois em Adicionar à Tela de Início. No Android, abra o menu do navegador e toque em Adicionar à tela inicial. Em um computador, clique no ícone de instalação na barra de endereços. Você não precisa da App Store nem do Google Play, e seus arquivos ficam no seu dispositivo.

O que o botão de IA envia, e para onde?

Depende do modelo que você escolher. Um modelo no seu dispositivo (ele precisa de WebGPU e é baixado uma vez) responde dentro desta aba, e nada do que você pede sai do dispositivo. Ollama, LM Studio e servidores semelhantes rodam no seu próprio computador, ou em um da sua rede que você configurou. Com a sua chave de um serviço como Claude, ChatGPT, Gemini, OpenRouter ou Groq, suas mensagens vão do seu navegador direto para esse provedor, sem nenhum servidor da Slopographic no meio, e valem os termos e preços dele. Uma cópia de um arquivo ou uma imagem do seu trabalho só é enviada depois que o painel perguntar e você permitir (você pode permitir para um pedido, para uma visita ou sempre, e revogar em Permissões de IA). Imagens criadas ou alteradas por IA (Gerar imagem, Editar com IA) precisam de um serviço de imagens que você conecte, como OpenAI, Gemini ou OpenRouter com a sua própria chave: nada no navegador desenha essas imagens. Modelos no seu dispositivo e no seu próprio computador não custam nada; Gemini, Groq e Mistral têm planos gratuitos, e o OpenRouter tem modelos gratuitos (o painel os marca como Grátis). Uma chave fica nesta aba até você fechá-la, ou neste navegador somente quando você marca Lembrar neste dispositivo. No OpenRouter você também pode pressionar Entrar com OpenRouter em vez de colar uma chave: seu navegador vai para openrouter.ai, você permite o acesso por lá e, ao voltar, esta página pede uma chave ao próprio OpenRouter para este navegador. A entrada vai diretamente entre o seu navegador e o OpenRouter, e nada passa pelos servidores da Slopographic. A chave é paga com os seus créditos do OpenRouter e é guardada exatamente como uma chave colada; você pode limitá-la ou revogá-la em openrouter.ai/settings/keys, e Esquecer chave a remove deste navegador.

Um agente de IA pode usar os apps?

Em um navegador que suporte WebMCP, sim: um assistente no navegador, ou um agente no seu computador conectado por uma extensão do navegador, pode executar os comandos de um app, as conversões e fluxos do File convert, e abrir, salvar ou baixar arquivos. Ele se refere aos seus arquivos por IDs; o trabalho roda nesta aba e os apps não enviam nada, embora o agente veja o que as ferramentas devolvem. Tudo o que exclui ou substitui o seu trabalho pede a sua confirmação antes. O WebMCP é um rascunho inicial: o Chrome o tem em teste (versões 149 a 156) e atrás de uma flag, o Edge atrás de uma flag, e o Firefox e o Safari ainda não. Desligue em Configurações, ou em Ajuda, Agentes de IA.

Posso verificar isso eu mesmo?

Sim. O código-fonte é público, e as seções abaixo listam cada recurso do navegador que os apps usam e cada requisição que podem fazer, com o arquivo que a faz. Você também pode abrir as ferramentas de desenvolvedor do navegador, ir à aba Rede e observar: abrir e salvar seus arquivos não envia nada.

Use a Slopographic a partir do Claude Code e de outros apps de IA

Em breve: um app de IA no seu computador, como Claude Code, Codex, Cursor, VS Code ou Claude Desktop, pode usar o app da Slopographic aberto no seu navegador: seus comandos, conversões e fluxos reais, com seus arquivos entrando e os resultados saindo como arquivos no seu computador. Ele funciona pelo servidor MCP da Slopographic, um pequeno programa que o app de IA inicia no seu computador. Não exige conta nem instalação além do próprio app de IA.

  1. Claude Code: digite /plugin marketplace add slopographic/claude-plugin, depois /plugin install slopographic@slopographic. Faça isso uma vez.
  2. Digite /slopographic:slop-connect (acrescente um nome de app, como photoslop, se quiser). O Claude Code abre a Slopographic no seu navegador e mostra um código curto.
  3. O Chrome pergunta uma vez se este site pode usar apps e serviços deste dispositivo. Escolha Permitir: é assim que a página alcança o Claude Code no seu computador. A página conversa somente com o seu próprio computador (127.0.0.1), não com a sua rede.
  4. Digite o código na página. Então a página mostra “Claude Code está conectado · Desconectar” no canto. Pressione Desconectar, ou feche a aba, para encerrar.

Cada aba é pareada separadamente, e o código funciona uma única vez. Nada mais no seu computador pode usar a página sem ele. Ações que excluem ou substituem o seu trabalho ainda pedem sua confirmação na página, como no painel de IA. Qualquer página da Slopographic pode se conectar pela paleta de comandos: Ctrl+K (⌘K no Mac), depois “Conectar um app de IA…”.

A configuração de outros apps de IA (Codex, Gemini CLI, Cursor, VS Code, Windsurf, Claude Desktop) aparece aqui quando os scripts estiverem prontos.

As conversas do ChatGPT só alcançam servidores na internet, então ainda não podem usar este servidor local. O Codex no app de desktop do ChatGPT pode.

APIs do navegador, e a especificação de cada uma

Os caminhos de arquivo são os principais lugares onde cada API é usada. Pesquise o nome da API no repositório para encontrar o resto.

APIs do navegador usadas pelos apps
API do navegadorPara que é usadaOnde está no códigoEspecificação
File System Access: window.showDirectoryPicker, FileSystemDirectoryHandle, createWritableUnidades locais no Slop Drive, a pasta de backup da sincronização na nuvem, a importação da pasta Galeria (somente leitura) e o carregamento de uma pasta de modelo de IA do disco. Somente Chrome e Edge. As gravações substituem um arquivo somente quando ele é fechado.drive/js/core/prov-dir.js, drive/js/ui/prov-drives.js, shared/sync/providers/local.js, gallery/js/io/source.js, shared/ai/webllm.jswicg.github.io/file-system-access · MDN
IndexedDBArquivos do Slop Drive, identificadores de pastas, registros de negócios, armazenamento de fontes e de modelos de IA, tokens de login criptografados. Lista completa em O que é armazenado.shared/hub.js, drive/js/core/drives-store.js, shared/data/store.js, shared/sync/tokens.js, shared/library/store.jsw3.org/TR/IndexedDB · MDN
localStoragePequenas configurações: sua escolha de consentimento, configurações de sincronização na nuvem, configurações por app, preferências de visualização do Drive.shared/consent/state.js, shared/sync/config.js, shared/profile/profile.js, drive/js/core/util.jsWHATWG HTML, Web Storage · MDN
sessionStorageEstado de login mantido somente enquanto um redirecionamento de login na nuvem está em andamento. Apagado quando a aba fecha.shared/sync/sync.jsWHATWG HTML, Web Storage
Origin Private File SystemNão usado. O código não tem nenhuma chamada a navigator.storage.getDirectory.nenhumWHATWG File System
Service WorkersUso offline. Registrado por cada página do app depois que ela carrega. Responde apenas a requisições GET da mesma origem.service-worker.js, shared/pwa.jsw3.org/TR/service-workers · MDN
Cache StorageCópias guardadas dos arquivos do próprio site, dos arquivos de modelo de recorte e dos arquivos de modelo de chat de IA depois que você os baixa.service-worker.js, shared/cutout/loader.js, shared/ai/webllm.jsW3C Service Workers, Cache objects · MDN
Web App ManifestPermite que um navegador instale o site como um app. Declara nome, ícones e página inicial.manifest.webmanifestw3.org/TR/appmanifest · MDN
Storage Manager: navigator.storage.persist(), estimate()Pede ao navegador que mantenha o armazenamento deste site depois da instalação ou no modo independente. O Slop Storage pergunta a você antes de pedir ao navegador. Mostra o quanto o armazenamento está cheio.shared/pwa.js, shared/storage/storage.jsWHATWG Storage · MDN
Web WorkersExecutam trabalho pesado fora da página: recorte de imagem, ampliação, inferência do AI Tools, geração de PDF.shared/cutout/cutout.js, upscale/js/engine/engine.js, aitools/common.js, pdf/js/io/build.jsWHATWG HTML, Workers · MDN
WebAssemblyRoda o ONNX Runtime Web incluído para o AI Tools, Upscale, Imagem para 3D, detecção de rostos e recorte, com uma thread. A biblioteca WebLLM do app de chat também é baseada em WebAssembly.aitools/workers/ort.js, upscale/js/engine/worker.js, img3d/js/model/depth.js, shared/faces/index.js, shared/ai/webllm.jsWebAssembly Core spec · MDN
WebGPUO app de chat verifica o que o seu computador consegue rodar, e o worker de recorte pede um adaptador de GPU. Roda o modelo de chat na GPU, no Slop AI e no painel de IA de cada app.shared/ai/sysinfo.js, shared/cutout/worker.js, shared/ai/webllm.jsw3.org/TR/webgpu · MDN
WebGL 2Visualização 3D e a correção de cor no SlopCut.3d/js/render/stage.js, drive/js/core/render3d.js, slopcut/js/render/grade.jsKhronos WebGL 2.0 spec · MDN
Canvas 2D e OffscreenCanvasDesenho, edição de imagens e exportação em quase todos os apps.Cerca de 130 arquivos chamam getContext('2d'), por exemplo photoslop/js/io/save.jsWHATWG HTML, Canvas · MDN
File e Blob, arrastar e soltarAbrir arquivos que você escolhe ou solta em uma página. Os arquivos nunca saem da página, a menos que você os salve ou compartilhe.shared/drop/, shared/preview/chrome.jsW3C File API · MDN
Web Crypto: crypto.subtleVerificações SHA-256 de cada arquivo baixado antes de ser guardado, e AES-GCM para os tokens de login criptografados.shared/cutout/loader.js, shared/library/store.js, shared/sync/tokens.jsw3.org/TR/WebCryptoAPI · MDN
NotificaçõesNotificações do navegador para lembretes, somente depois que você pressiona o botão para permiti-las.reminders/js/app.js, shared/reminders/engine.jsWHATWG Notifications · MDN
BroadcastChannelMensagens entre abas abertas deste site (canal slopographic). Fica dentro do navegador.shared/hub.jsWHATWG HTML, Broadcasting · MDN
Web Share: navigator.share()A folha de compartilhamento do sistema, somente quando você pressiona Compartilhar. Depois o sistema envia o arquivo ao app que você escolher.shared/preview/chrome.js, ai/js/ui/speccard.jsw3.org/TR/web-share · MDN
WebMCP: document.modelContext.registerTool()Oferece a um agente de IA no navegador as ações do app como ferramentas (seus comandos, as operações de arquivo, os arquivos por ID), somente onde o navegador tem a API e a opção "Permitir que agentes de IA usem este app" está ativada. As ferramentas rodam na página. O token do teste de origem fica no cabeçalho de cada página.shared/agent/webmcp.js, shared/agent/workspace.js, shared/agent/boot.jsW3C Web Machine Learning CG draft · Chrome
WebSocketA conexão com um app de IA no seu computador (o servidor MCP da Slopographic), somente depois que você escolhe “Conectar um app de IA…”. Conecta-se a ws://127.0.0.1, somente este computador.shared/agent/bridge.jsWHATWG WebSockets
FetchCada requisição de rede dos apps. A lista completa está em Requisições de saída.Cerca de 35 pontos de chamada de fetch( em cerca de 30 arquivos (alguns são comentários)WHATWG Fetch · MDN

O que é armazenado neste dispositivo

Tudo o que está abaixo fica guardado neste navegador, neste dispositivo. Nada aqui é enviado a um servidor. Cada site tem o seu próprio armazenamento, então o mesmo app em outro navegador tem uma cópia própria.

Armazenamento usado pelos apps (exemplos do código; uma busca por indexedDB.open e localStorage lista todos)
NomeTipoO que guardaDefinido em
slop-driveIndexedDBArquivos e pastas do Slop Drive, incluindo o conteúdo dos arquivos.shared/hub.js
slop-drive-foldersIndexedDBAs unidades locais nomeadas: o identificador e o nome de cada pasta. Remover uma unidade esquece somente o identificador.drive/js/core/drives-store.js
slop-sync, slop-sync-localIndexedDBTokens de login criptografados na nuvem (AES-GCM com uma chave não extraível). O identificador da pasta de backup escolhida.shared/sync/tokens.js, shared/sync/providers/local.js
slop-dataIndexedDBRegistros de negócios: clientes, produtos, estoque, faturas, pagamentos e lançamentos do livro-razão (shared/data/schema.js).shared/data/store.js
slop-libraryIndexedDBFontes instaladas em Obter mais e arquivos de fonte que você adiciona.shared/library/store.js
slop-aitools, slop-aiIndexedDBModelos do AI Tools que você instalou, e as conversas no app de chat de IA.aitools/models.js, ai/js/core/store.js
slop-sessionIndexedDBA visualização aberta de cada app e os rascunhos não salvos, para que uma nova visita continue de onde você parou.shared/session/session.js
slop-consentlocalStorageSuas escolhas de análise de dados, anúncios e taxas. Desligadas até você escolher.shared/consent/state.js
slop-synclocalStorageConfigurações de sincronização na nuvem: seus IDs de cliente OAuth e os horários da última sincronização. Os tokens não ficam aqui.shared/sync/config.js
slop-ai-keysIndexedDBSuas chaves de IA, somente quando você marca Lembrar neste dispositivo. Sem isso, a chave fica nesta aba (sessionStorage) e some quando você a fecha. Ficam fora dos backups.shared/ai/cloud/keys.js
slop-ai.cloud, slop-ai.imagegen, slop-ai.permissionslocalStorageQual serviço e modelo de IA você escolheu, seu limite de gastos, as configurações de imagem e as permissões de IA que você deu. Nunca uma chave.shared/ai/cloud/keys.js, shared/ai/imagegen/core.js, shared/ai/permissions.js
slop-ai.signinsessionStorageEnquanto você entra com o OpenRouter: o verificador PKCE de uso único e o state que comprovam que o login começou nesta aba. Usado uma vez, apagado quando você fecha a aba, nunca uma chave.shared/ai/cloud/signin.js
slop.agentslocalStorage"off" quando você desligou "Permitir que agentes de IA usem este app". Nada é guardado enquanto estiver ligado.shared/agent/boot.js
slop.bridgesessionStorageEnquanto esta aba está pareada com um app de IA no seu computador: a porta e o token de pareamento, para que um recarregamento continue conectado. Apagado quando você desconecta ou fecha a aba.shared/agent/bridge.js
slop-profilelocalStorageConfigurações por app que você mudou do padrão.shared/profile/profile.js
slop-drive.prefs, slop-drive.themelocalStoragePreferências de visualização e o tema do Slop Drive.drive/js/core/util.js
slopographic-v38Cache StorageCópias guardadas dos arquivos do próprio site, para que o site funcione offline.service-worker.js
slop-cutout-v1Cache StorageArquivos de modelo para o recorte, depois da verificação do SHA-256 deles.shared/cutout/loader.js

Cookies: o código do site nunca grava um cookie (o repositório não tem nenhuma chamada a document.cookie). Sua escolha de consentimento fica no localStorage, não em um cookie. Os scripts de análise e anúncios do Google podem gravar cookies próprios quando rodam. A seção Cookies e análise de dados diz quando eles rodam.

Requisições de saída: cada lugar para onde uma requisição pode ir

A lista abaixo está completa para o repositório: vem de uma busca por cada fetch(, XMLHttpRequest, endereço de script e de imagem, e por cada URL externa no código. Além dos scripts de análise e anúncios, que carregam somente como indicado abaixo, os apps não carregam scripts, fontes nem folhas de estilo de terceiros. Não há fontes nem iframes de terceiros.

Cada requisição de saída que os sites podem fazer
DestinoQual app ou partePor quêQuando acontece
www.googletagmanager.com (Google Analytics, ID G-HW6FWQVFK3)Página inicial (index.html); outras páginas por meio de shared/consent/consent-mode.jsMedição de visualizações de páginaPágina inicial: a cada visita, com a análise de dados negada até você aceitar. Outras páginas: somente depois que você aceita a análise de dados.
pagead2.googlesyndication.com (AdSense)Páginas com espaços de anúncio (shared/ads/ads.js)AnúnciosSomente depois que você aceita os anúncios. Carregado pelo único carregador em shared/consent/consent-mode.js.
huggingface.co, e seus hosts de armazenamento hf.co e xethub.hf.coChat de IA (shared/ai/webllm.js, ai/js/core/engine.js); AI Tools e os apps de OCR (aitools/model-registry.js, aitools/models.js)Arquivos de modelo: OCR (PP-OCRv4), etiquetas e os modelos de chatDepois que você pressiona Baixar, ou instala um modelo em Obter mais, e confirma o tamanho e a licença. O AI Tools verifica o SHA-256 de cada arquivo, e um arquivo precisa vir de um host do Hugging Face ou do repositório slopographic/cdn.
cdn.jsdelivr.net (jsDelivr, somente /gh/slopographic/cdn@ em uma versão fixa)Cada arquivo do repositório slopographic/cdn (shared/cdn/assets.js): pacotes de Obter mais, os modelos de fala e de OCR, os motores de HEIC, RAW de câmera, 3D e vídeoUma cópia mais rápida e em cache do repositório abaixo; arquivos maiores que 20 MB vêm de raw.githubusercontent.comOs mesmos momentos da linha abaixo. Se o jsDelivr não responder ou enviar bytes errados, o mesmo arquivo é buscado em raw.githubusercontent.com e verificado da mesma forma.
raw.githubusercontent.comChat de IA (shared/ai/webllm.js, os kernels de GPU); pacotes de Obter mais (shared/library/packs.json)Kernels para o modelo de chat; arquivos de fonte de github.com/google/fonts (OFL); fontes de idiomas (Noto, OFL) para escrever em outros sistemas, como árabe, chinês ou hindi; o modelo Real-ESRGAN 4x para o Slop Upscale, o modelo de profundidade para Imagem para 3D e os modelos de fala para o Slop Transcribe e o AI Tools (Whisper, KB-Whisper, NB-Whisper; aitools/speech-models.js), do repositório slopographic/cdnQuando você pressiona Baixar em Obter mais ou na caixa de diálogo de Idioma e modelo e confirma, ou carrega um modelo de chat. Uma fonte de idioma também é baixada quando você escreve texto em um sistema de escrita que precisa dela (no Slop PDF, por exemplo): o app pergunta antes, a menos que você tenha escolhido baixar as fontes de idioma automaticamente (shared/fonts/jit.js). Cada arquivo é verificado pelo seu SHA-256 antes de ser guardado.
accounts.google.com, oauth2.googleapis.com, www.googleapis.comSincronização na nuvem com o seu próprio Google Drive (shared/sync/providers/gdrive.js, pkce.js, config.js)Login, depois backup e restauração de um arquivo de backup, em uma pasta opcional. Usa o escopo drive.file, que alcança somente os arquivos que este app cria ou que você escolhe.Somente quando você conecta com o seu próprio ID de cliente OAuth, e quando pressiona um botão de backup ou sincronização.
www.dropbox.com, api.dropboxapi.com, content.dropboxapi.comSincronização na nuvem com o Dropbox (shared/sync/providers/dropbox.js)Igual ao Google Drive, para o DropboxSomente quando você conecta e pressiona um botão de backup ou sincronização.
data-api.ecb.europa.euTaxas de câmbio (shared/data/rates-ecb.js, aberto em Configurações, e lido pelo Ledger e pela Calculadora)Taxas de referência diárias do EUR, do Banco Central EuropeuSomente quando a categoria de taxas está ativada e você pressiona Atualizar. A atualização ao abrir roda somente se você também a marcar.
O endereço de uma imagem arrastada de outro sitePhotoSlop (photoslop/js/app/tabs.js)Abre a imagem arrastada em uma nova abaSomente quando você arrasta uma imagem de outra página para o PhotoSlop.
slopographic.com (o próprio site)Cada página, o logo da página inicial, o service workerOs arquivos do próprio siteA cada visita. Nada mais desta origem é requisitado.
O serviço de IA que você conecta com a sua própria chave: por exemplo api.anthropic.com, api.openai.com, generativelanguage.googleapis.com, openrouter.ai ou api.groq.com, ou o endereço que você digita para Ollama, LM Studio ou outro servidorO painel de IA (shared/ai/cloud/, a lista de serviços em shared/ai/cloud/catalog/); imagens de IA (shared/ai/imagegen/)Suas mensagens, as ferramentas do app e os resultados delas, e uma cópia de um arquivo ou de uma imagem somente depois que você permite; para imagens de IA, o prompt e, para uma edição, a imagem (no máximo 1536 px)Somente depois que você adiciona a sua própria chave ou o endereço de um servidor e envia um pedido. Um modelo no seu dispositivo não envia nada.
openrouter.ai/auth (uma página para a qual você vai) e openrouter.ai/api/v1/auth/keysEntrar com o OpenRouter no painel de IA (shared/ai/cloud/signin.js)Para a página de login: o endereço desta página para voltar, um desafio PKCE e um state aleatório. Para o endereço da chave: o código de uso único que o OpenRouter deu e o seu verificador PKCE; o OpenRouter responde com uma chave para este navegador. Diretamente entre o seu navegador e o OpenRouter, nada pelos servidores da Slopographic.Somente quando você pressiona Entrar com OpenRouter.
127.0.0.1 (o seu próprio computador)Conectar um app de IA (shared/agent/bridge.js)A página conversa com o servidor MCP da Slopographic que o seu app de IA iniciou: as ferramentas do app, os resultados delas e os arquivos que você pede para enviar ou salvarSomente depois que você escolhe “Conectar um app de IA…” e digita o código que o app de IA mostra. O Chrome pergunta antes.
Somente links: Patreon, YouTube e VimeoLink de doação (shared/consent/donate.js), links de vídeo do Notes (notes/js/video.js)Abre o site em uma nova aba quando você clicaSomente quando você clica. Um vídeo em uma nota aparece como link, não como player incorporado nem como miniatura de imagem.

Duas coisas que parecem uso de rede, mas não são: tools/vendor-codemirror.mjs busca pacotes em cdn.jsdelivr.net quando um desenvolvedor o roda manualmente para atualizar o código incluído. Os apps nunca carregam essa CDN. O visualizador de e-mail (eml/js/frame.js) bloqueia imagens e scripts remotos do e-mail com uma Política de Segurança de Conteúdo, então abrir uma mensagem não carrega imagens nem scripts remotos.

Cookies e análise de dados

Funcionando offline

Depois de uma visita, os arquivos do próprio site ficam guardados no Cache Storage pelo service worker (service-worker.js, com a lista de arquivos em sw-precache.js). As páginas são verificadas pela rede primeiro, depois vêm do cache e, por último, a página offline é mostrada. Seus arquivos não ficam no cache do service worker: ficam na pasta que você escolheu, ou no IndexedDB. Os apps continuam funcionando com a rede desligada. Downloads (os modelos e pacotes de fontes listados acima) precisam da rede na primeira vez.

Como verificar você mesmo

  1. Aba Rede, com a página carregada. Abra o app, pressione F12 (ou Cmd+Option+I no Mac) e abra a aba Rede. Marque "Preservar registro" e recarregue. Leia a coluna Domínio. Em uma visita comum, você deve ver apenas slopographic.com, além dos domínios de análise do Google na página inicial.
  2. Aba Rede, offline. Na aba Rede, abra o menu de limitação e escolha Offline. Recarregue, depois abra um arquivo, edite-o e salve. O app deve funcionar. Qualquer coisa que precise de um download avisa isso.
  3. Aba Aplicativo, armazenamento. No Chrome ou no Edge, abra a aba Aplicativo. Em Armazenamento, veja Local storage, Session storage, IndexedDB, Cookies, Cache Storage e Service workers. Compare o que você vê com as tabelas desta página.
  4. Aceite ou recuse, depois compare. Recuse a análise de dados e os anúncios na faixa de consentimento, recarregue e confira a aba Rede de novo. Depois aceite-os e veja quais requisições aparecem.
  5. Leia o código-fonte. O código é público no repositório da slopographic no GitHub. Pesquise por fetch(, indexedDB.open, localStorage ou showDirectoryPicker para confirmar qualquer linha desta página. O código de consentimento fica em shared/consent/, a sincronização na nuvem em shared/sync/, e as listas de download em shared/library/ e aitools/.

Pastas locais (a File System Access API) precisam de Chrome ou Edge. Firefox e Safari não as oferecem, e os apps informam isso onde se aplica.