This application provides a slideshow experience that displays images and descriptions from a Flickr photoset in a visually appealing way. Absolutely not maybe inspired by the Carousel pitch from Mad Men.
- Fullscreen image slideshow with automatic transitions and responsive design.
- Optional real slide-projector transition sound, muted by default.
- Toggle between height-priority and width-priority display modes with fullscreen support.
- Mobile-friendly interface with swipe gestures and expandable image information.
- Can deploy as a Cloudflare worker with static assets to keep the flickr API key secret.
- Left/Right Arrow Keys + Swipe Left/Right: Navigate between images.
- Spacebar: Pause/resume slideshow.
- Alt+S/Sound Button: Mute or unmute the projector transition sound.
- Alt+F: Toggle fullscreen mode.
- Alt+M: Toggle between height and width priority modes.
- Click on Image Info/Alt+I: Expand/collapse image details.
- Clone the repository
- If using Cloudflare:
- Update the variables in
wrangler.toml. - Deploy as a Cloudflare worker and set
FLICKR_API_KEYas an environment secret. You can obtain an api key on Flickr.
- Update the variables in
- If not using Cloudflare workers:
- Update
flickrApiUrlincarousel.jsto be a full flickr api url, you can find a sample inworker/index.jsbut the vars will need to be assigned.
- Update
- Update the personalisations in
index.htmland/public. Make it your own Carousel. - Access the application and enjoy.
The transition uses an edited CC0 recording of a real automatic slide advance
by Joseph Sardin / BigSoundBank. Processing and license details are recorded in
public/audio/NOTICE.md.
The local preview runs through Cloudflare Wrangler so that the Flickr API proxy works in the same way as the deployed Worker.
-
Copy the secret template:
cp .dev.vars.example .dev.vars
-
Edit
.dev.varsand replace the placeholder with your Flickr API key. This file is ignored by Git and must not be committed. -
Start the development server:
npx wrangler dev
-
Open the local URL printed by Wrangler, normally
http://localhost:8787.
Stop the server with Ctrl+C.
To modify or extend this application:
- Edit the CSS in
public/css/carousel.cssto change the appearance. - Modify the JavaScript in
public/js/carousel.jsto alter functionality. - Update the HTML structure and personalisations in
public/index.htmlas needed.