Skip to content

amirisback/photobooth

πŸ“Έ PhotoBooth Pro

Premium photo editor PWA with AI background removal, real-time camera filters, Dudu & Bubu stickers, text overlays, and stunning effects β€” all running entirely in your browser.

License Next.js React TypeScript Tailwind CSS


✨ Features

Feature Description
πŸ“· Live Camera Full-screen camera viewfinder with front/rear camera switching
🎨 14 Real-time Filters Normal, B&W, Sepia, Vintage, Warm, Cool, Dramatic, Bright, Fade, Noir, Vivid, Soft, Retro, Cinema
πŸ–ΌοΈ Decorative Borders SVG-based border overlays rendered on the live viewfinder
🐻 264 Dudu & Bubu Stickers Animated GIF stickers organized into 4 categories: Bear (Dudu), Panda (Bubu), Couple, and Dudu & Bubu originals
βœ‚οΈ AI Background Removal Client-side background removal powered by @imgly/background-removal β€” no server uploads needed
πŸ”€ Text Overlays Drag-to-position text with customizable fonts, colors, and sizes
🌈 Photo Effects Post-capture effects for additional photo editing
πŸ“€ Export & Download Save your edited photos in multiple formats
πŸ“± PWA (Installable) Install as a native app on Android & iOS via Serwist service worker
πŸŒ™ Dark Mode Design Premium glassmorphism UI with animated gradient backgrounds

πŸš€ Tech Stack


πŸ—οΈ Project Structure

photobooth/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ camera/
β”‚   β”‚   └── page.tsx          # Full-screen camera with filters, borders & stickers
β”‚   β”œβ”€β”€ editor/
β”‚   β”‚   β”œβ”€β”€ page.tsx          # Photo editor (background removal, text, effects)
β”‚   β”‚   └── components/
β”‚   β”‚       β”œβ”€β”€ BackgroundPanel.tsx
β”‚   β”‚       β”œβ”€β”€ CanvasPreview.tsx
β”‚   β”‚       β”œβ”€β”€ EffectsPanel.tsx
β”‚   β”‚       β”œβ”€β”€ ExportDialog.tsx
β”‚   β”‚       β”œβ”€β”€ TextPanel.tsx
β”‚   β”‚       └── ToolBar.tsx
β”‚   β”œβ”€β”€ hooks/
β”‚   β”‚   β”œβ”€β”€ use-camera.ts     # Camera access & capture hook
β”‚   β”‚   └── use-photo-editor.ts # Editor state management hook
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ border-overlays.ts # SVG border definitions
β”‚   β”‚   β”œβ”€β”€ canvas-utils.ts    # Canvas export utilities
β”‚   β”‚   β”œβ”€β”€ sticker-defs.ts    # 264 Dudu & Bubu sticker definitions
β”‚   β”‚   └── types.ts           # Shared TypeScript types
β”‚   β”œβ”€β”€ globals.css            # Design system (glassmorphism, animations, buttons)
β”‚   β”œβ”€β”€ layout.tsx             # Root layout with Inter font & PWA metadata
β”‚   β”œβ”€β”€ manifest.ts            # PWA Web App Manifest
β”‚   β”œβ”€β”€ page.tsx               # Landing page with hero & feature cards
β”‚   └── sw.ts                  # Service worker source
β”œβ”€β”€ public/
β”‚   └── stickers/              # 264 animated GIF stickers
β”‚       β”œβ”€β”€ bear-*.gif         # Bear (Dudu) stickers
β”‚       β”œβ”€β”€ panda-*.gif        # Panda (Bubu) stickers
β”‚       β”œβ”€β”€ bubu-*.gif         # Bubu originals
β”‚       β”œβ”€β”€ dudu-*.gif         # Dudu originals
β”‚       └── couple/            # Couple stickers
β”œβ”€β”€ docs/
β”‚   └── screenshots/           # App screenshots for README
β”œβ”€β”€ package.json
β”œβ”€β”€ next.config.ts             # Next.js + Serwist config
└── tsconfig.json

πŸ› οΈ Getting Started

Prerequisites

  • Node.js >= 18
  • npm >= 9

Installation

# Clone the repository
git clone https://github.com/amirisback/photobooth.git
cd photobooth

# Install dependencies
npm install

# Start development server
npm run dev

Open http://localhost:3000 in your browser.

Build for Production

npm run build
npm start

πŸ“± How to Use

  1. Take a Photo β€” Tap "Take a Photo" to open the full-screen camera
  2. Apply Filters β€” Swipe through 14 real-time camera filters
  3. Add Borders β€” Switch to the Borders tab for decorative frame overlays
  4. Place Stickers β€” Browse 264 Dudu & Bubu GIF stickers, tap to place, drag to reposition
  5. Capture β€” Press the shutter button to capture with all overlays applied
  6. Edit β€” Use the editor for background removal, text overlays, and effects
  7. Export β€” Download your finished photo

🎨 Design System

The app features a premium dark mode design with:

  • Glassmorphism cards with backdrop-filter: blur(20px)
  • Gradient accents β€” Purple (#a855f7) β†’ Pink (#ec4899) β†’ Orange (#f97316)
  • Smooth animations β€” fadeIn, slideUp, pulseGlow, float, shimmer
  • Safe area support β€” Proper padding for notched devices (iPhone, etc.)
  • Touch-optimized β€” 48px minimum touch targets, -webkit-tap-highlight-color: transparent

🐻 Sticker Collection

264 animated GIF stickers from the Dudu & Bubu collection:

Category Count Description
🐻 Bear (Dudu) 120+ Solo bear character stickers
🐼 Panda (Bubu) 33+ Solo panda character stickers
πŸ’• Couple 100+ Bear & Panda together stickers
🎭 Dudu & Bubu 5 Original character stickers

πŸ“„ License

Copyright 2026 Muhammad Faisal Amir

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

🀝 Contributing

Contributions are welcome! Please read the Code of Conduct and Security Policy before contributing.

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

Made with ❀️ by Muhammad Faisal Amir

About

Photobooth with border filter and sticker

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors