Lolly
Öppna appen

Verifiera det själv

signed by Lollyverify-yourself.htmlHTMLpixels, not shapes10 KBAI generatedgenerated by GeminiKontrollera självHämta den signerade filen

Lollys sidor om integritet och säkerhet gör påståenden: ingen analys, ingen spårning, filer lämnar aldrig enheten, en enda cookie i hela systemet. Den här sidan är annorlunda: den ber dig inte tro på något av det. Det är en lista med procedurer, var och en med det exakta kommandot eller klickvägen och resultatet du kommer att se. Varje påstående här går att motbevisa på några minuter, de flesta utan att installera något.

Om någon kontroll på den här sidan inte ger det visade resultatet är det antingen en bugg eller ett brutet löfte. Rapportera det oavsett, så behandlar vi det med den allvarlighetsgrad ett brutet löfte förtjänar.

Se det fungera, på tio sekunder

Före procedurerna, belöningen. Öppna /verify och släpp en fil på den - ingen uppladdning, inget konto, ingen väntan på en server. Här är den och kontrollerar den genererade Queensland-stormen från vår AI-ståndpunktssida: en Gemini-bild som Lolly öppnade, vattenmärkte och exporterade. Varje badge nedan beräknades på enheten, från filens egna byte.

Verify på en skärm i telefonbredd - stormbilden, ett grönt Made with Lolly-utlåtande och badgarna för intakt uppgift och oförändrade byte staplade under den signed by Lollyvector SVG79 paths~6.4k nodes48 groups1 image157 KBKontrollera självHämta den signerade filenVerify på en skärm i telefonbredd - stormbilden, ett grönt Made with Lolly-utlåtande och badgarna för intakt uppgift och oförändrade byte staplade under den signed by Lollyvector SVG79 paths~6.4k nodes48 groups1 image157 KBKontrollera självHämta den signerade filen

Utlåtandet är inte en enda badge utan en liten hög av dem, var och en ett oberoende faktum:

Och hela historiken följer med filen. Nio steg överlever här - fem som Google registrerade när den genererade och vattenmärkte bilden, sedan fyra som Lolly registrerade när den öppnade, märkte och konverterade kopian på den här sidan - lästa rakt ur byten, på din enhet, och återgivna som en tidslinje. Det här är samma bild, verifierad på samma sätt, som C2PA-tidslinjen på AI-ståndpunktssidan.

Ändringshistoriken Verify läser tillbaka ur stormbilden - fem steg registrerade av Google, sedan fyra av Lolly, som slutar i webp-filen på den här sidan signed by Lollyvector SVG255 paths~14k nodes162 groups287 KBKontrollera självHämta den signerade filenÄndringshistoriken Verify läser tillbaka ur stormbilden - fem steg registrerade av Google, sedan fyra av Lolly, som slutar i webp-filen på den här sidan signed by Lollyvector SVG255 paths~14k nodes162 groups287 KBKontrollera självHämta den signerade filen

Inget av det är dock själva förtroendeutfästelsen - det är demot. Resten av den här sidan är förtroendeutfästelsen: varje märke ovan är reproducerbart, och här är hur du reproducerar garantierna bakom dem.

I din webbläsare, inga verktyg krävs

1. Titta på nätverket. Öppna lolly.tools, öppna webbläsarens DevTools (F12), växla till fliken Network och använd ett verktyg - skriv in en URL i QR Code, byt färger, exportera en PNG. Alla förfrågningar stannar på lolly.tools: appskalet, verktygets egna filer, katalogtillgångar. Ingen analyshost, ingen CDN-beacon, ingen typsnittstjänst, ingen "felrapporterings"-endpoint. Det du skriver in i ett verktyg dyker upp i ingen förfrågan alls - renderingen är lokal.

De ärliga undantagen - vart och ett opt-in, användarinitierat och synligt i samma Network-flik när det sker: att lägga till ett Google Font i varumärkesredigeraren hämtar den enda familjen från Google, efter en samtyckesdialog som talar om exakt det, en gång, innan den första hämtningen; att klicka på en ICC-tryckprofil-förinställning hämtar den profilen från ICC:s offentliga register på color.org; att spela den valfria inbyggda radion strömmar från stationen; att ange en plats i Meeting Planner slår upp den platsen hos open-meteos geokodningstjänst för dess koordinater och tidszon, en gång per stad (svaren sparas på din enhet), och fältet bär den upplysningen precis där du skriver; och URL Screenshot laddar med nödvändighet den URL du skrev in - det är dess uppgift, och du ser det hända. Ett verktyg som deklarerar en nätverksfunktion får bara hämta från de hostar dess manifest tillåtlistar, och den mekanismen är fail-closed; inget verktyg som levereras för närvarande deklarerar en sådan, så den webbläsarframtvingade Content-Security-Policy:n är gränsen som faktiskt håller listan ovan till sina hostar. Integritetspolicyn håller den kanoniska tabellen över alla dessa; dess stående regel är att en nätverkskontakt som inte finns med i den tabellen inte sker.

2. Dra ur kontakten. Ladda appen och öppna ett verktyg eller två, gå sedan offline - flygplansläge, eller DevTools → Network → Offline. Ladda om. Galleriet och varje verktyg du har öppnat fortsätter fungera, inklusive rendering och export i de format du har använt - ett verktygs filer och ett formats kodare cachas första gången du använder dem, så kör ett verktyg en gång online innan du testar det offline. Detta är den starkaste enskilda kontrollen på den här sidan: mjukvara som ringer hem överlever inte att sladden dras ur.

3. Räkna cookies. DevTools → Application (Firefox: Storage) → Cookies → https://lolly.tools. Listan är tom - appen sätter inga cookies. Eller klistra in document.cookie i konsolen: du får "". (Den enda cookien i hela systemet, lolly_ca_state, lever i högst tio minuter under en valfri identitetsinloggning - raderas i samma stund som inloggningen slutförs - är avgränsad till /api/ca och är HttpOnly: integritetspolicyn beskriver den exakt.)

4. Läs din egen lagring. Samma Application-panel: allt Lolly sparar går att inspektera framför dig - ett par dussin enkla localStorage-nycklar (tema, språk, sidopanelens bredd, ljud- och visningsinställningar, plus en cachad kopia av det offentliga verktygskatalogindexet), och dina egna dokument i IndexedDB. Varje värde är en läsbar sträng eller JSON - inget är förvanskat, inget är kodat för att avskräcka från att läsa det. Att rensa webbplatsdata i webbläsaren tar bort allt detta, och Lolly har ingen serverkopia; Inställningar → Lagring → Rensa all min data gör samma sak inifrån appen, och du kan se lagren och cacharna tömmas i den här panelen.

5. Kontrollera att upplysningskontakten finns. /.well-known/security.txt svarar med ett kontaktblock enligt RFC 9116, inte en HTML-sida.

Från en terminal

6. Renderingsslutpunkten svarar bara med offentliga data. Den enda serverfunktion som lägger användarinmatade värden i en URL - hot-link-renderingar - är aktiv här, och integritetspolicyn beskriver vad det innebär för de värden du lägger i en länk:

curl -s -o /dev/null -w '%{http_code}\n' 'https://lolly.tools/tool/qr-code.svg?url=test'
# 200

Omkopplaren är per driftsättning (LOLLY_DISABLE_RENDER_GET=1): på en instans som sätter den returnerar samma sondering 404 - den skillnaden är flaggan som fungerar, inte en inkonsekvens.

7. Serverytan går att räkna upp. Server Surface listar varje serversidig rutt som finns, med den stående regeln att en endpoint som inte står på den sidan inte är en del av Lolly. curl:a dem; det finns inget annat att hitta.

I källkoden

Allt ovan skulle fortfarande kunna vara teater om den driftsatta koden skilde sig från den publika koden. Så kontrollera koden - driftsättningen byggs från det publika repositoriet:

git clone https://github.com/lolly-tools/lolly.git
cd lolly

8. Ingen spårare, ingen analys-SDK, någonstans. Sök i koden som levereras - motorn, varje shell (inklusive webbläsartillägget, Tauri-bridgeöverstyrningarna och service workern), serverfunktionerna och verktygspaketen - efter de vanliga misstänkta:

grep -rn --include='*.ts' --include='*.js' --include='*.mjs' --include='*.html' \
  -e googletagmanager -e google-analytics -e posthog -e mixpanel -e hotjar \
  -e sentry.io -e segment.com -e '@vercel/analytics' \
  engine/src shells/*/src shells/chrome-extension shells/*/bridge-overrides \
  shells/web/public/sw.js services packages api community brands/*/tools
# (no output)

9. Ingen DNS-resolver från tredje part. Verifys SEAL-kontroll dirigerar aldrig uppslag genom en DNS-over-HTTPS-leverantör - webbappen har helt enkelt ingen resolver:

grep -rn --include='*.ts' --include='*.js' --include='*.mjs' \
  -e cloudflare-dns.com -e dns.google -e /dns-query \
  engine/src shells/*/src shells/chrome-extension shells/*/bridge-overrides \
  shells/web/public/sw.js services packages api community brands/*/tools
# (no output: outside this page and its built copies, the only place those
#  hostnames appear in the repo is tests/no-trackers.test.ts, the test that
#  bans them)

10. Certifikattjänsten sparar ingenting. Identitets-CA:n har ingen utfärdandelogg - inte din e-post, inte en tidsstämpel, ingen webhook. Frånvaron går att greppa:

grep -rn logIssuance services/ca api/ca
# (no output)

Framtvingat av tester, inte löften

De tre källkontrollerna ovan är inte en engångsgranskning - de är fastnaglade i testsviten, så de inte kan förfalla i det tysta. tests/no-trackers.test.ts får bygget att misslyckas om:

Kör dem själv i klonen (Node 22.18+; ingen pnpm install behövs för den här filen):

node --test tests/no-trackers.test.ts
# ✔ no analytics or tracking SDK appears anywhere in shipped source
# ✔ no third-party DNS-over-HTTPS resolver is contacted
# ✔ the certificate service logs no personal data
# ✔ privacy policy states a controller, a legal basis and a right to complain

Den fullständiga svitan (pnpm install && pnpm test) kör flera tusen till, inklusive de kontradiktoriska kryptografitesterna som beskrivs i Säkerhet och verifiering.

Vad du inte kan verifiera utifrån - sagt rent ut

En sida som den här förtjänar förtroende genom att namnge sina egna begränsningar:

Om en kontroll misslyckas

En diskrepans mellan den här sidan och observerat beteende är en säkerhetsrapport, och vi vill uppriktigt hellre höra om den än inte: fitzy+security@suse.com, knappen Report a vulnerability på vilket lolly-tools-repositorium som helst, eller kontakten i /.well-known/security.txt. Samordnat offentliggörande och kredit till rapportören är den stående policyn - SECURITY.md har detaljerna.