isitai is a web application for extracting and presenting image metadata (EXIF, C2PA, XMP, IPTC-IIM) from raster images (JPEG, PNG, HEIC, WebP). It helps verify the authenticity and provenance of digital assets by revealing embedded metadata.
isitai specializes in extracting and presenting encoded metadata from raster images. The tool enables users to inspect embedded information such as device model, creation and modification dates, GPS coordinates, color profiles, and rendering intent. In an era of AI-generated and synthetic media, understanding an image’s provenance is crucial for trust and transparency.
Frontend: Next.js with Chakra UI for a responsive, accessible interface.
Backend: Node.js (or serverless functions) for image processing and metadata extraction.
| layer | technology | description |
|---|---|---|
| Frontend | Next.js | React framework for SSR and static site generation |
| Frontend | Chakra UI | Accessible component library with theming |
| Backend | Node.js | JavaScript runtime for server-side processing |
| Backend | Serverless functions | Scalable image/metadata processing endpoints |
- Extract EXIF metadata (camera information, timestamps, geolocation)
- Parse C2PA content credentials for cryptographically verifiable provenance
- Support for JPEG, PNG, HEIC, WebP and other common image formats
- Client-side processing; no files are uploaded or stored
- Simple and accessible UI powered by Next.js and Chakra UI
Run the exiftool CLI on an example image:
exiftool img_0001.pngexiftool version number : 13.25
file name : img_0001.png
directory : .
file size : 11 mb
file modification date/time : 2025:05:10 21:14:04-05:00
file access date/time : 2025:05:14 16:22:21-05:00
file type : png
mime type : image/png
image width : 4032
image height : 3024
bit depth : 8
color type : rgb
make : apple
camera model name : iphone x
orientation : horizontal (normal)
...
(output truncated — see docs/README.md#exiftool-img_0001png for full details)
- All files are processed locally in your browser; nothing is uploaded to any server.
- No data is collected, stored, sold, or used to train AI models.
- No advertisements.
For installation, development, deployment instructions, and detailed documentation, see the docs/README.md file.
- Stripe keys: set secrets via environment variables; do not commit them to git.
- Local development: create
.env.localin the project root with:
STRIPE_SECRET_KEY=sk_live_your_new_key
STRIPE_WEBHOOK_SECRET=whsec_your_new_secret
-
Vercel: Project → Settings → Environment Variables
- Add
STRIPE_SECRET_KEYandSTRIPE_WEBHOOK_SECRETfor Production/Preview/Development, then redeploy.
- Add
-
GitHub Actions: Settings → Secrets and variables → Actions
- Add
STRIPE_SECRET_KEYandSTRIPE_WEBHOOK_SECRETas repository secrets if CI needs them.
- Add
-
Key rotation: If a key is ever committed or exposed, rotate it in the Stripe Dashboard (Developers → API keys), then update the environment variables accordingly.
Contributions, issues, and feature requests are welcome! Please open an issue or submit a pull request on GitHub.
REFERENCE THE OLD COMMIT #XXXXX FOR ORIGINAL README DRAFT