A free, open-source tool to create stunning, high-converting screenshots for the Apple App Store and Google Play Store in minutes. Design professional app previews with an intuitive drag-and-drop editor.
π Live Demo: appshots.appstate.xyz
- 6 realistic device mockups β iPhone 15 Pro Max, iPhone 15 Pro, iPhone 14, iPad Pro 12.9", Samsung Galaxy S24 Ultra, Samsung Galaxy Tab S9
- Multiple color options per device β Black Titanium, Natural, Blue, White, and more
- Flat & 3D rendering modes β toggle between a classic 2D frame and a perspective 3D view with visible device edges
- 3D rotation controls β adjust Rotate Y and Rotate X angles for the perfect perspective
- Accurate camera elements β Dynamic Island, notch, and punch-hole camera matching each device
- Solid color backgrounds with a full color picker
- Gradient presets β Sunset, Ocean, Mint, Berry, Royal, Rose
- Global text color picker
- Rich text editor for headlines and subheadlines β bold, italic, underline, text color, alignment (left/center/right)
- Google Fonts integration β search and preview hundreds of fonts
- Independent sizing β separate font size sliders for headline and subheadline
- Width control β set how wide each text block spans
- Drag-to-reposition β click and drag headlines or subheadlines anywhere on the canvas
- Unlimited overlay images β upload badges, logos, arrows, or decorations
- Drag-to-reposition and resize with width percentage control
- Rotation control per image
- Layer management β place behind or in front of the device, reorder with bring forward/backward/to-front/to-back
- Per-image shadow β enable/disable with color, blur, and offset controls
- Upload your app screenshot β drop in your actual app screenshot to display inside the device frame
- 8 position presets β Centered, Bleed Bottom, Bleed Top, Float Center, Float Bottom, Tilt Left, Tilt Right, Perspective
- Device size slider (scale %)
- Device vertical position slider (offset %)
- Device rotation (flat mode) or 3D rotation (3D mode)
- Device shadow β toggle on/off with color, blur, and vertical offset controls
- Multiple projects β create, rename, switch between, and delete projects
- Auto-save β all projects and settings persist to localStorage across sessions
- Reset to defaults β clear everything and start fresh
- Batch export β export all screenshots at once (ZIP for multiple, PNG for single)
- 4 export size presets β 6.7" iPhone, 6.5" iPhone, 5.5" iPhone, 12.9" iPad Pro
- Full 3D support β 3D perspective, edges, and shadows are preserved in exports
- Pixel-perfect β exported images match the on-screen preview
- Multi-screenshot gallery β add, remove, and navigate screenshots in a horizontal carousel
- Real-time preview β all changes update instantly on the canvas
- Drag-and-drop β reposition any element by dragging directly on the canvas
- Element selection β click to select text or overlay images with visual feedback
- Dark mode UI β sleek dark interface that's easy on the eyes
- Bun (recommended) or Node.js 18+
# Clone the repository
git clone https://github.com/oyeolamilekan/appshots.git
cd app-screenshot-generator
# Install dependencies
bun install
# Start the development server
bun run devThe app will be available at http://localhost:5173
bun run buildThe built files will be in the dist/ directory.
- Framework: React 19
- Routing: TanStack Router
- Styling: Tailwind CSS 4
- Icons: Lucide React
- UI Components: shadcn/ui
- Build Tool: Vite 7
- Testing: Vitest
- Runtime: Bun
src/
βββ components/
β βββ CanvasPreview/ # Main canvas, screenshot cards, device container, overlays
β βββ DeviceFrame/ # Device mockups (flat 2D & 3D with edges)
β βββ FontPicker/ # Google Fonts search & selection
β βββ LeftSidebar/ # Device picker, color picker, export controls
β βββ ProjectSwitcher/ # Project management UI
β βββ RichTextEditor/ # Rich text formatting toolbar & editor
β βββ RightSidebar/ # Layout, appearance, content, overlay controls
β βββ EditorLayout.tsx # Main editor layout shell
β βββ ui/ # shadcn/ui components
βββ context/
β βββ EditorContext.tsx # Global editor state & actions
βββ lib/
β βββ export-utils.ts # Canvas-based screenshot export (flat & 3D)
β βββ google-fonts.ts # Google Fonts API loader
β βββ rich-text-canvas.ts # Rich text rendering for canvas export
β βββ useLocalStorage.ts # Persistence hooks
βββ routes/
β βββ __root.tsx # Root layout
β βββ index.tsx # Home page
βββ types/ # TypeScript type definitions
βββ constants.ts # Device specs, gradients, export sizes
βββ main.tsx # Application entry point
βββ styles.css # Global styles
- Select a device β pick from iPhones, iPads, or Samsung devices in the left sidebar
- Choose a color β select a device frame color
- Upload a screenshot β add your app's screenshot to the device screen
- Edit text β click headlines/subheadlines to type, use the rich text toolbar to format
- Pick a font β browse Google Fonts to find the perfect typeface
- Set a background β choose a solid color or gradient preset
- Position the device β use presets or manually adjust size, position, rotation
- Switch to 3D β toggle to 3D mode and adjust perspective angles
- Add overlays β upload badges, logos, or decorations and layer them around the device
- Manage screenshots β add more screenshots to create a complete set
- Export β download all screenshots at App Store resolution
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the existing code style
- Write tests for new features
- Update documentation as needed
- Keep commits atomic and well-described
This project is licensed under the MIT License - see the LICENSE file for details.
- TanStack for the amazing router and devtools
- Tailwind CSS for the utility-first CSS framework
- Lucide for beautiful icons
- Google Fonts for the font library
- Create an issue for bug reports or feature requests
- Star β this repo if you find it useful!
Made with β€οΈ for iOS and Android developers
