Skip to content

hmmhmmhm/meme-lens

Repository files navigation

MemeLens

MemeLens

A web-based camera lens effect tool that allows users to overlay character images with realistic camera lens frames and effects.

Features

  • Camera Lens Effects: Apply realistic camera lens overlays to character images and videos
  • Interactive Controls: Adjust lens opacity, image scale, and positioning with intuitive controls
  • Multi-format Support: Works with both static images (JPG, PNG, WebP) and videos (MP4, WebM, MOV)
  • Example Gallery: Pre-loaded example images to get started quickly
  • Theme Support: Light and dark theme options
  • Responsive Design: Optimized for both desktop and mobile devices
  • Internationalization: Support for Korean, English, and Japanese languages
  • Free Download: Save your creations without watermarks

Live Demo

Visit https://meme.aka.page to try the application.

Technology Stack

  • Framework: Next.js 15 with App Router
  • Language: TypeScript
  • Styling: Tailwind CSS 4
  • Internationalization: next-intl
  • UI Components: Radix UI
  • Deployment: Cloudflare Workers via OpenNext
  • Icons: Lucide React

Getting Started

Prerequisites

  • Node.js 18+ or later
  • pnpm (recommended) or npm

Installation

  1. Clone the repository:
git clone https://github.com/your-username/meme-lens.git
cd meme-lens
  1. Install dependencies:
pnpm install
  1. Run the development server:
pnpm dev
  1. Open http://localhost:3000 in your browser.

Usage

  1. Upload or Select an Image: Click the upload button or choose from example images
  2. Position Your Image: Drag and move your image within the camera lens frame
  3. Adjust Settings: Use the control panel to modify lens opacity and image scale
  4. Download: Save your creation as a high-quality image

Development

Available Scripts

  • pnpm dev - Start development server with Turbopack
  • pnpm build - Build for production
  • pnpm start - Start production server
  • pnpm lint - Run ESLint
  • pnpm build:cf - Build for Cloudflare Workers
  • pnpm deploy - Deploy to Cloudflare Workers
  • pnpm preview - Preview Cloudflare Workers build locally

Project Structure

app/
├── [locale]/                 # Internationalized routes
│   ├── components/          # React components
│   ├── layout.tsx          # Locale-specific layout
│   └── page.tsx            # Main application page
├── layout.tsx              # Root layout
└── globals.css             # Global styles

lib/
├── hooks/                  # Custom React hooks
└── utils/                  # Utility functions

messages/                   # Translation files
├── en.json
├── ja.json
└── ko.json

public/                     # Static assets
├── example-*.webp          # Example images
├── logo.png               # Application logo
└── ios-26-camera-*.webp   # Camera lens assets

Deployment

The application is optimized for deployment on Cloudflare Workers using OpenNext.

Cloudflare Workers Deployment

  1. Configure your wrangler.toml file
  2. Set up environment variables in Cloudflare
  3. Run the deployment command:
pnpm deploy

Contributing

  1. Fork the repository
  2. Create a 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

Browser Support

  • Chrome/Edge 88+
  • Firefox 85+
  • Safari 14+
  • Mobile browsers (iOS Safari, Chrome Mobile)

License

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

Acknowledgments

  • Camera lens assets inspired by iOS camera interface
  • Built with modern web technologies for optimal performance
  • Internationalization support for global accessibility

About

Try displaying memes on your camera app's lens!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published