Skip to content

victorlucss/appshots

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

27 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“± App Store Screenshot Generator

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

App Store Screenshot Generator

License React TypeScript Tailwind CSS

✨ Features

πŸ“± Device Frames

  • 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

🎨 Backgrounds & Appearance

  • Solid color backgrounds with a full color picker
  • Gradient presets β€” Sunset, Ocean, Mint, Berry, Royal, Rose
  • Global text color picker

πŸ“ Rich Text & Fonts

  • 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

πŸ–ΌοΈ Overlay Images

  • 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

πŸ“Έ Screenshot Image

  • Upload your app screenshot β€” drop in your actual app screenshot to display inside the device frame

πŸ“ Layout & Positioning

  • 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

πŸ“‹ Project Management

  • 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

πŸ“¦ Export

  • 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

πŸ–₯️ Editor Experience

  • 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

πŸš€ Quick Start

Prerequisites

  • Bun (recommended) or Node.js 18+

Installation

# 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 dev

The app will be available at http://localhost:5173

Building for Production

bun run build

The built files will be in the dist/ directory.

πŸ› οΈ Tech Stack

πŸ“ Project Structure

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

🎯 Usage

  1. Select a device β€” pick from iPhones, iPads, or Samsung devices in the left sidebar
  2. Choose a color β€” select a device frame color
  3. Upload a screenshot β€” add your app's screenshot to the device screen
  4. Edit text β€” click headlines/subheadlines to type, use the rich text toolbar to format
  5. Pick a font β€” browse Google Fonts to find the perfect typeface
  6. Set a background β€” choose a solid color or gradient preset
  7. Position the device β€” use presets or manually adjust size, position, rotation
  8. Switch to 3D β€” toggle to 3D mode and adjust perspective angles
  9. Add overlays β€” upload badges, logos, or decorations and layer them around the device
  10. Manage screenshots β€” add more screenshots to create a complete set
  11. Export β€” download all screenshots at App Store resolution

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Guidelines

  • Follow the existing code style
  • Write tests for new features
  • Update documentation as needed
  • Keep commits atomic and well-described

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“¬ Contact

  • Create an issue for bug reports or feature requests
  • Star ⭐ this repo if you find it useful!

Made with ❀️ for iOS and Android developers

About

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 98.7%
  • HTML 1.1%
  • CSS 0.2%