about appshots.

A free, open-source tool for generating App Store and Google Play screenshots. No account. No backend. Everything runs in your browser.

principles

browser-only

All rendering and export happens on your device. Your screenshots never touch a server.

zero cost

Free forever. No freemium tiers, no watermarks, no usage limits.

minimal surface

One page, one purpose. Features that reduce friction are welcome; features that add it are not.

open source

MIT licensed. Fork it, extend it, or submit a PR. The code is the product.

tech stack

Next.js 16App Router, static export — deploys to GitHub Pages with no server
Canvas APIAll device frames and compositing are drawn on <canvas> at export time
Tailwind CSS 4Utility-first styles, no CSS files
TypeScriptStrict mode throughout
VitestUnit tests for export dimensions and compliance rules
JSZip + file-saverIn-browser ZIP packaging for batch exports

how to contribute

1

fork & clone

git clone https://github.com/TheProductArchitect/appshots.git
cd appshots && npm install
npm run dev   # http://localhost:3000
2

make your change

The rendering engine is in src/lib/canvasRenderer.ts. The UI is mostly src/app/page.tsx and src/components/. Run npm run build before opening a PR — TypeScript errors block CI.

3

open a pull request

One concern per PR. Fill in the PR template. CI runs automatically: type-check → tests → build → dependency security scan. All checks must pass.

good ideas to work on

  • New device frame styles (Vision Pro, Android foldable, Wear OS)
  • New export dimensions as stores update their requirements
  • Better drag-to-reorder on creative cards
  • Accessibility improvements
  • Performance improvements to canvas rendering
view on github ↗open an issue← back to appshots