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.
| 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 |
- Framework: Next.js 16 (App Router, Webpack)
- UI: React 19 + TypeScript 5
- Styling: Tailwind CSS 4 + Custom CSS Design System
- Icons: Lucide React
- AI: @imgly/background-removal β runs in-browser via WebAssembly
- PWA: Serwist (Service Worker for offline support)
- Font: Inter via
next/font - Stickers: Dudu & Bubu Collection
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
- Node.js >= 18
- npm >= 9
# Clone the repository
git clone https://github.com/amirisback/photobooth.git
cd photobooth
# Install dependencies
npm install
# Start development server
npm run devOpen http://localhost:3000 in your browser.
npm run build
npm start- Take a Photo β Tap "Take a Photo" to open the full-screen camera
- Apply Filters β Swipe through 14 real-time camera filters
- Add Borders β Switch to the Borders tab for decorative frame overlays
- Place Stickers β Browse 264 Dudu & Bubu GIF stickers, tap to place, drag to reposition
- Capture β Press the shutter button to capture with all overlays applied
- Edit β Use the editor for background removal, text overlays, and effects
- Export β Download your finished photo
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
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 |
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.
Contributions are welcome! Please read the Code of Conduct and Security Policy before contributing.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Made with β€οΈ by Muhammad Faisal Amir