Public
LikePhotoFrame
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v86View latest version
Build a photo frame web app intended to run well on Val Town using a no-build Deno/Hono architecture.
The app should:
- Let users pick multiple photos from their device
- Show a simple setup screen with thumbnails
- Allow removing photos before playback
- Allow adding captions to photos
- Start a fullscreen-style slideshow without depending on the Fullscreen API
- Auto-advance through photos with configurable timing
- Support manual next/previous navigation
- Show captions while photos are presented
- Auto-hide presentation controls when the mouse is idle
- Persist collection metadata and slideshow settings
- Deno runtime
- Hono HTTP app
- Hono JSX renders the HTML shell
- Hono serves the client JavaScript and CSS files
- Plain browser JavaScript in
static/app.js - Direct DOM rendering for setup and player modes
- No Preact runtime
- No Vite build step
IndexedDBstores image blobs and local collection metadata for reliable browser-side persistencelocalStoragestores lightweight UI preferences only- A remote storage adapter will later support Val Town blob storage for cross-device persistence
idnamecreatedAtupdatedAtsettingsphotoIds
idnamecaptionwidthheightsizecreatedAtfile
intervalSecondsfitModeshuffleloopcrossfade
- Hono app shell
- Plain client-side JavaScript
- Photo upload
- Thumbnail preview list
- Caption editing
- Remove photo
- Play mode
- Auto-advance
- Manual controls
- Caption overlay
- Crossfade transition option
- Auto-hiding player controls
- Local persistence in browser
- Val Town blob upload adapter
- Collection metadata sync
- Resume saved collections across devices
- Image compression on upload
- Multiple collections
- Shareable saved frame URLs