We will be undergoing planned maintenance on Oct 7th 6:00AM UTC / Oct 7th 2:00AM ET

About the project 💡 Inspiration In an era of "data as the new oil," our digital privacy is often leaked through the "exhaust" of our files—metadata. While building a platform for a dental clinic, I realized how much sensitive GPS and device data is inadvertently shared in professional settings. I wanted to build a tool that makes privacy a "gain" (saving storage) rather than a "chore," ensuring that data hygiene is automated and mathematically verifiable.

📝 The Spec-Driven Journey For this hackathon, I moved away from traditional "freestyle" coding and adopted a strict Spec-Driven Development (SDD) workflow. I began by drafting a Project Constitution (CONSTITUTION.md) that defined the immutable laws of the app:

Privacy First: No data ever leaves the local device.

Lossless-First Optimization: Metadata stripping must not degrade visual pixels.

Auditability: Every action must be traceable to a specific requirement in the spec.

By treating the Markdown specification as the Single Source of Truth, I used AI agents to generate implementation plans and code that were constrained by my architectural decisions, preventing the "context drift" typical in rapid hackathon builds.

🛠️ How I Built It I utilized a Coordinator-Implementor-Verifier pattern:

The Spec: Defined the recursive logic for stripping EXIF, XMP, and IPTC tags.

The Engine: Built in Rust for memory safety and speed, ensuring that the processing of binary file headers is robust against buffer overflows.

The Logic: Implemented a dual-pass system:

Scrubbing Pass: Identifies and nullifies sensitive metadata blocks.

Optimization Pass: Re-compresses the file using modern codecs (like WebP/AVIF) to reduce size without quality loss.

🚀 Challenges & Learning The biggest challenge was handling nested metadata in video containers (like MP4/MOV), where privacy leaks can hide in multiple tracks. Using SDD, I wrote a specific "Edge Case Spec" that defined how the AI should handle non-standard headers.

What I learned: I discovered that writing a rigorous spec actually saves time. Instead of debugging hallucinations, I spent my time refining the "rules" of the system. In SDD, better thinking leads to better code.

Built with Languages: Rust (Core Engine), TypeScript (Logic), Markdown (Specifications)

Frameworks: React Native (Cross-platform UI)

AI Tools: Cursor (Agentic Orchestration), Claude 3.5 Sonnet (Spec Processing)

Libraries: exif-terminator, ffmpeg-wasm (for browser-based scrubbing)

Built With

  • exif-terminator
  • ffmpeg-wasm
Share this project:

Updates

Submission history