New 1200x630 preview card with the new logo, two high-intent guides,
cross-linked related lists, updated sitemap, footer and guides index.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Up to 50 images at once; single-image flow unchanged. Includes a
dependency-free stored-ZIP writer.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Reposition around EXIF/GPS/C2PA privacy, replace dead HowTo/FAQ schema,
add three guide pages with sitemap and internal links.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Artimic is a separate product, not part of this repository, so it does not
belong in the "Project" column next to the source link. Gives it its own
"More from RealBrain" group alongside realbrain.cc, with a one-line
descriptor since the name alone does not say what it is.
Footer goes to four columns at 900px and two at 560px so the extra group
does not crowd the others.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018pRSdR57Ze9M2meDfYZgYE
Search Console (Jun 4 – Sep 3) shows the page ranking on the first results
page for "content credentials" queries while converting badly: "ai
credentials remover" at 113 impressions and 0.88% CTR from position 6.7,
"remove content credentials from image online" at 2.15% from position 5.0,
"remove ai content credentials from image" at 0% from position 7.8. The
title led with "EXIF metadata", a phrase that appears in none of the top
queries, so the snippet never matched the intent behind the impressions.
SEO
- Title, description and H1 rebuilt around "remove content credentials from
an image"; EXIF kept as a secondary term.
- Added a how-to section and a nine-question FAQ answering the question
queries that had no content behind them, including the LinkedIn AI label
and the Instagram AI tag.
- Structured data as an @graph: WebSite (alternateName "Untrace AI" for the
unserved brand query), Organization, WebApplication, HowTo, FAQPage.
- Fixed sitemap.xml, which pointed at /untrace/ — a URL that does not exist.
- Regenerated the Open Graph image to match the new design.
Design
- Vendored the design system at src/tokens.css and composed the app from it.
The old styling broke most of its rules: gradients, font weights 800 and
900, raw #2563eb, Inter, and emoji as the only status signal.
- Reworked the tool into a Scan / Review / Download flow that lists what it
found before changing anything, with the primary action pinned within
thumb reach on small screens.
- Dark by default with a light theme, applied before first paint so the page
never flashes the wrong surface.
- Replaced the floating donation widget, which painted an off-token circle
over the page and covered the mobile action bar, with a footer link.
Structure
- Moved detection into src/lib/metadata.js and removal into src/lib/clean.js;
the canvas callbacks are now a promise chain.
- Dropped Tailwind and PostCSS. Both were configured twice, and no Tailwind
utility was used. Stylesheet is 6.2 kB gzipped with the whole system in it.
Fixes
- The stepper never advanced: stepState(index) read `current` from the
closure, which Svelte 4 cannot track as a template dependency.
- The cleaner's fallback returned the original, uncleaned file while the UI
reported "All EXIF metadata removed". It now reports the failure instead.
Verified against a JPEG carrying EXIF, GPS, XMP and an APP11 JUMBF C2PA
manifest: the output retains only APP0 and the sRGB ICC profile, with every
provenance marker gone.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018pRSdR57Ze9M2meDfYZgYE
- Implemented ImageUploader.svelte for drag-and-drop image uploads with metadata extraction.
- Created MetadataViewer.svelte to display extracted metadata in a user-friendly format.
- Added PrivacyInfo.svelte to inform users about client-side processing and privacy risks.
- Introduced ThemeToggle.svelte for dark mode functionality.
- Set up main.js for application entry point and configured Svelte with vite.
- Added Tailwind CSS for styling and configured Vite for asset management.
- Established svelte.config.js and tailwind.config.js for project settings.