About Tenrankai

Tenrankai (展覧会) is Japanese for "exhibition" or "gallery show," perfectly capturing the essence of this project as a platform for displaying photographic collections.

Tenrankai was created out of frustration with existing photo gallery software. Database-driven systems like Piwigo and Lychee require setup and maintenance. Static generators like Sigal produce fast sites but can't handle dynamic features like comments or authentication. Cloud services like Google Photos or SmugMug mean giving up control of your images.

Tenrankai takes a different approach: a single binary that serves your photos directly from the filesystem. Drop files in folders, sync with SyncThing, and your gallery stays up to date. No database, no complex deployment, but with the dynamic features you'd expect from a modern web application -- user authentication, comments, permissions, and AI-powered analysis.

Built with Rust for consistent performance across thousands of images, Tenrankai handles HDR photos, RAW files, AVIF with gain maps, and full ICC color profile preservation.

Philosophy

Tenrankai is built on several core principles:

  • Simplicity First: No database, no complex setup. Just files and folders. If you can organize files, you can run Tenrankai.
  • Performance Always: Every feature is implemented with speed in mind, from concurrent image processing to intelligent caching strategies.
  • Photographer Friendly: Preserves metadata, color profiles, and image quality while providing tools photographers actually need.
  • Developer Experience: Clear configuration, extensive documentation, and a modular architecture that's easy to understand and extend.
  • Production Ready: Built for real-world use with proper error handling, logging, and security features.

Technical Excellence

Tenrankai is built on proven, modern technologies:

  • Rust & Axum: An async web framework that delivers consistent performance and memory safety without a garbage collector.
  • Smart Caching: Multi-level caching with automatic refresh and persistence across restarts.
  • Image Processing: Concurrent processing with support for JPEG, PNG, WebP, AVIF, and automatic format negotiation.
  • Color Management: Full ICC profile support preserving Display P3, Adobe RGB, and HDR with AVIF gain maps.
  • Modern Frontend: React-based SPA with TypeScript, mobile gestures, and click-to-zoom functionality.
  • Responsive Design: Mobile-first approach with automatic image sizing and retina display support.

Key Features

Multiple Galleries

Run multiple independent galleries with unique configurations, URLs, and content.

Automatic Processing

Images are automatically resized, optimized, and cached for fast delivery.

Markdown Support

Add descriptions to folders and captions to images using simple markdown files.

Blog System

Built-in markdown-based blog with TOML frontmatter and automatic refresh.

Collaborative Features

User comments, picks, highlights, and tags with fine-grained permission control.

Privacy First

Flexible URL indexing, permission-based metadata visibility, and folder-level access control.

Open Source

Tenrankai is proudly open source under the Apache 2.0 license. We welcome contributions, bug reports, and feature requests from the community.

Visit our GitHub repository to get involved!