Analysis updated 2026-05-18
Run a personal photo gallery site with a waterfall style layout and likes.
Deploy a photo album backend on Cloudflare Workers with a D1 database.
Browse a large photo collection efficiently thanks to windowed rendering.
Test both a Node.js API and a Cloudflare Worker API version of the same gallery.
| hg3386628/xrw-album | forgetmeai/freedeepseekapi | gaearon/website | |
|---|---|---|---|
| Stars | 31 | 31 | 31 |
| Language | JavaScript | JavaScript | JavaScript |
| Last pushed | — | — | 2024-05-24 |
| Maintenance | — | — | Dormant |
| Setup difficulty | moderate | moderate | moderate |
| Complexity | 3/5 | 3/5 | 2/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
The Cloudflare Workers deployment requires creating a D1 database and running several wrangler commands before it works.
This project is a photo gallery website with a black background, built from a single source text file that lists images. It shows a waterfall style layout, the kind where photo tiles stack in flowing columns of different heights, along with album detail pages, likes, search, and both random and sequential browsing. The home page has three tabs: all photos, recently updated, and a random roam mode. The all photos view is shuffled by default but can be switched to sequential order. Both the home page and the album detail pages support infinite scrolling with preloading, so more photos load automatically as you scroll. On a detail page you can resize an image from 100 percent up to 300 percent, and that size choice is remembered locally on your device. To keep things fast even with a large number of photos, the app only renders the images currently visible in the window, which keeps memory, CPU, and the number of on screen elements low. There are two ways to run this project. One is a plain Node.js server that reads the built data files and serves the site directly, started with a build data step followed by a start command. The other is a Cloudflare Workers deployment, where the static frontend files are served as Static Assets and a Worker script handles the API routes, backed by a Cloudflare D1 database for storing albums, photo details, and likes. Setting up the Workers version involves creating a D1 database through the Cloudflare command line tool, writing its ID into the project's configuration file, exporting the photo data into a D1-compatible SQL file, importing the database schema and data, and then deploying the Worker. There is also a way to run a local copy of the Worker for testing before deploying it for real. The project includes its own test scripts for checking both the Node API and the Worker API, plus a script for exporting the full or a limited sample dataset to D1.
A fast waterfall style photo gallery website, deployable as a Node server or on Cloudflare Workers with a D1 database backing it.
Mainly JavaScript. The stack also includes JavaScript, Node.js, Cloudflare Workers.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.