Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Afilmory/afilmory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Afilmory

Afilmory

Afilmory (/Ι™ΛˆfΙͺlmΙ™ri/, "uh-FIL-muh-ree") is a term created for personal photography websites, blending Auto Focus (AF), aperture (light control), film (vintage medium), and memory (captured moments).

A modern photo gallery website built with React + TypeScript, supporting automatic photo synchronization from multiple storage sources (S3, GitHub), featuring high-performance WebGL rendering, masonry layout, EXIF information display, thumbnail generation, and more.

πŸš€ Get Started in Seconds

πŸ‘‰ Use the Official SaaS - No setup required!

The easiest way to create your photo gallery is through our hosted service at afilmory.art. Sign up, connect your storage, and your gallery is live in minutesβ€”no deployment, no servers, no maintenance.

Why Use the Official SaaS?

  • βœ… Zero setup - No configuration, no deployment, no infrastructure management
  • βœ… Live CMS - Edit photos, titles, and metadata in real-time without rebuilding
  • βœ… Custom domains - Bind your own domain with DNS verification
  • βœ… Automatic updates - Always running the latest version with new features
  • βœ… Managed infrastructure - We handle scaling, backups, and maintenance

Get Started Now β†’


Live Photo Galleries

🌟 Features

Core Functionality

  • πŸ–ΌοΈ High-Performance WebGL Image Renderer - Custom WebGL component with smooth zoom and pan operations
  • πŸ“± Responsive Masonry Layout - Powered by Masonic, adapts to different screen sizes
  • 🎨 Modern UI Design - Built with Tailwind CSS and Radix UI component library
  • ⚑ Incremental Sync - Smart change detection, processes only new or modified photos
  • 🌐 i18n - Multi-language support
  • πŸ”— OpenGraph - OpenGraph metadata for social media sharing

Image Processing

  • πŸ”„ HEIC/HEIF Format Support - Automatic conversion of Apple device HEIC format
  • πŸ“· TIFF Format Support - Automatic conversion of TIFF format
  • πŸ–ΌοΈ Smart Thumbnail Generation - Multi-size thumbnails for optimized loading performance
  • πŸ“Š EXIF Information Display - Complete shooting parameters including camera model, focal length, aperture, etc.
  • 🌈 Blurhash Placeholders - Elegant image loading experience
  • πŸ“± Live Photo Support - Detection and display of iPhone Live Photos
  • β˜€οΈ HDR Image Support - Display HDR images

Advanced Features

  • πŸŽ›οΈ Fujifilm Recipe - Read and display Fujifilm camera film simulation settings
  • πŸ” Fullscreen Viewer - Image viewer with gesture support
  • 🏷️ File System Tags - Auto-generated tags based on file system
  • ⚑ Concurrent Processing - Multi-process/multi-thread concurrent processing support
  • πŸ—‚οΈ Multi-Storage Support - S3, GitHub, and other storage backends
  • πŸ“· Share Image - Share image to social media or embed iframe to your website
  • πŸ—ΊοΈ Interactive Map Explorer - Geographic visualization of photos with GPS coordinates from EXIF data using MapLibre

πŸ—οΈ Technical Architecture

Frontend Tech Stack

  • React 19 - Latest React version with Compiler
  • TypeScript - Complete type safety
  • Vite - Modern build tool
  • Tailwind CSS - Atomic CSS framework
  • Radix UI - Accessible component library
  • Jotai - State management
  • TanStack Query - Data fetching and caching
  • React Router 7 - Routing management
  • i18next - Internationalization

Build System

  • Node.js - Server-side runtime
  • Sharp - High-performance image processing
  • AWS SDK - S3 storage operations
  • Worker Threads/Cluster - Concurrent processing
  • EXIF-Reader - EXIF data extraction

Storage Architecture

Designed with adapter pattern, supporting multiple storage backends:

  • S3-Compatible Storage - AWS S3, MinIO, Alibaba Cloud OSS, etc.
  • GitHub Storage - Using GitHub repository as image storage
  • Eagle Storage - Using Eagle app library as image storage
  • Local File System - Local storage for development and testing

πŸ› οΈ Self-Host (Advanced)

If you prefer to host Afilmory yourself, you can deploy it on your own infrastructure. This requires more technical knowledge and ongoing maintenance.

πŸ’‘ Tip: For most users, we recommend using the official SaaS instead. Self-hosting is best suited for developers who need full control over their deployment or have specific infrastructure requirements.

Option A: Docker (recommended)

Docker deployment guide ships prebuilt images with minimal setup.

Option B: Manual install

  1. Copy config.example.json to config.json and fill in your site name, description, and social links.
  2. Prepare access to your photo storage (S3/B2/GitHub/local). The builder will read photos and generate thumbnails plus photos-manifest.json.
  3. Run the builder to generate assets, then start the site.

Looking for developer commands, environment variables, and builder config details? See DEVELOPMENT.md.

For detailed self-hosting instructions, see the Documentation.

πŸ”§ Advanced Usage

Custom Storage Provider

Implement the StorageProvider interface to support new storage backends:

import { StorageProvider } from './src/core/storage/interfaces'

class MyStorageProvider implements StorageProvider {
  async getFile(key: string): Promise<Buffer | null> {
    // Implement file retrieval logic
  }

  async listImages(): Promise<StorageObject[]> {
    // Implement image list retrieval logic
  }

  // ... other methods
}

Custom Image Processing

Add custom processors in the src/core/image/ directory:

export async function customImageProcessor(buffer: Buffer) {
  // Custom image processing logic
  return processedBuffer
}

πŸ“„ License

Attribution Network License (ANL) v1.0 Β© 2025 Afilmory Team. See LICENSE for more details.

πŸ“š Documentation

πŸ”— Related Links


If this project helps you, please give it a ⭐️ Star for support!

About

Modern photo gallery for photographers, with S3/GitHub sync, EXIF details, maps, and a WebGL viewer.

Resources

License

Stars

Watchers

Forks

Packages

No packages published