What's New

Recent updates and improvements to Luminography

πŸ“Έ

Bring photos straight from your Google Photos library into Luminography β€” no more downloading and re-uploading.

  • Connect your Google account once on the Integrations page, then click Import from Google Photos on the Media Library (or Manage Photos) page.
  • You pick exactly which photos to bring in using Google's own photo picker β€” Luminography only ever sees the photos you choose, never your whole library.
  • Picked photos are copied into your Media Library, so they keep displaying reliably and appear on the Photos and Photo Wall themes like any uploaded photo.
  • Imports are tagged google-photos, so you can point a screen at just that set from Edit Screen.
  • Videos are skipped, and the usual Free-plan photo limit applies (Pro is unlimited).
πŸ“

The Design Dashboard live preview now shows your layout in both landscape and portrait at the same time.

  • See how your tiles will land on a wall-mounted TV and a portrait display before you save β€” no guessing.
  • Both previews update instantly as you drag, resize, and add widgets.
πŸ–ΌοΈ

A new Photo Wall theme shows your uploaded photos in a dynamic gallery mosaic instead of one image at a time.

  • A large spotlight pane on the left slowly zooms with a Ken Burns effect and crossfades between photos; a "Spotlight" badge fades in on each change.
  • Four smaller thumbnail tiles along the side rotate independently on their own staggered timers, so the wall is always subtly in motion.
  • Photos never repeat across panes at the same time β€” each slot picks an image that isn't already on screen.
  • Pulls from your uploaded Media Library and refreshes hourly to pick up newly added photos.
  • Automatically reflows to a stacked layout in portrait orientation, and respects the global Brightness and Rotation Speed settings.
πŸ’³

Luminography now has Free and Pro plans, with secure checkout powered by Stripe.

  • A new Plan & Billing page (left nav) shows your current plan and, on the Free plan, how many of your screens you've used.
  • The Free plan supports one screen and up to 5 library photos; upgrading to Pro unlocks unlimited screens and photos across every device.
  • Scheduling and Screen Groups are Pro features β€” automate theme changes by time and day, and control multiple screens together. Free users see an upgrade prompt on those pages.
  • Upgrade to Pro opens Stripe's hosted checkout β€” no card details ever touch our servers.
  • Manage Billing opens the Stripe customer portal to update your card, view invoices, or cancel.
  • After a successful payment you land on a friendly confirmation page; the Pro plan activates automatically via a Stripe webhook moments later.
  • Stripe API keys are loaded from appsettings.json β€” never hard-coded.
πŸͺ΅

Behind-the-scenes reliability work to make issues easier to catch and diagnose.

  • Server-side errors are now captured with Serilog, writing to both the console and a daily rolling log file (logs/errors-YYYYMMDD.txt).
  • The full solution now builds with zero warnings and zero errors after a pass cleaning up nullable-reference and Razor component warnings.
🎀

A new Voice Control page (left nav, /voice) lets you speak a theme name and instantly switch any display β€” no need to open Edit Screen.

  • Uses the browser's built-in Web Speech API β€” no API key or third-party service required.
  • A dropdown selects which screen to target when you have multiple displays registered.
  • Common command words ("switch to", "show me", "go to") are stripped before matching, so natural phrases like "show me the weather" work as expected.
  • Theme change is persisted to the database and broadcast via SignalR β€” the display switches immediately.
  • Status area shows real-time feedback: Listening, Matched theme name, or No theme matched.
  • A history panel shows the last five voice-dispatched theme changes with screen name, theme, and time.
  • Requires Chrome or Safari; Firefox shows a friendly unsupported message.
🚦

A new Traffic theme displays a full-screen live traffic map centered on your configured location.

  • Uses the Google Maps JavaScript API with a TrafficLayer β€” roads are color-coded green (clear), amber (slow), and red (heavy) in real time.
  • Custom dark map style keeps the traffic colors vivid and easy to read from across the room.
  • Traffic data updates automatically as conditions change β€” no manual refresh needed.
  • Top-left legend shows the color key; top-right badge shows a live pulse indicator.
  • Bottom overlay shows your location name and a live ticking clock.
  • Uses the existing Google Maps API key β€” no additional setup required.
πŸ“œ

A new On This Day theme cycles through historical events that occurred on today's date, powered by Wikipedia's free API.

  • Wikipedia article thumbnail fills the screen with a slow Ken Burns zoom and a cinematic dark overlay.
  • The event year is displayed in large amber type; the description appears below in an elegant serif font.
  • Events are shuffled on each load so the screen always shows a fresh selection.
  • Fades between events on each timer tick (respects the global Rotation Speed setting).
  • No API key required β€” pulls directly from Wikipedia's public REST API.
⚑

Admin pages now feel faster and more responsive on first load.

  • No more frozen pages β€” the Home, Screens, and Schedules pages are immediately interactive when they appear. Previously, the page looked ready but clicks did nothing until the server connection finished warming up.
  • Home page stats show pulsing placeholder dashes while loading, then snap to live counts β€” instead of the whole page stalling.
  • Screens and Schedules show a spinner while data loads, so the page appears instantly rather than waiting on the database.
  • Database queries now run once per visit instead of twice β€” eliminating a redundant server round-trip that happened on every page load due to Blazor's prerender phase.
πŸ•ΉοΈ

The Arcade theme received a full retro CRT treatment layered over the rotating game artwork.

  • CRT scanlines β€” a repeating horizontal line pattern gives the display an authentic old-monitor feel.
  • Dark vignette β€” edges fade to black like a real CRT screen.
  • Animated neon border β€” cycles through magenta, cyan, yellow, and orange with a glowing inset shadow.
  • Cyan corner brackets frame the display in classic arcade style.
  • HUD bar β€” top bar shows a live 1UP score, High Score, and Level that advance with each image rotation.
  • Flashing title card β€” "READY!", "PLAYER 1", "GAME ON!" and similar messages pulse in the center briefly on each cycle.
  • INSERT COIN β€” yellow step-blinking text at the bottom completes the look.
πŸ“°

A new Latest News theme cycles through top headlines from NewsAPI.org one article at a time.

  • Full-screen background image pulled from each article with a Ken Burns slow zoom.
  • Dark gradient overlay surfaces the source name, relative publish time, headline, and a two-line description.
  • Progress dots at the bottom show position within the current batch of headlines.
  • Articles auto-advance every 12 seconds (respects the global Rotation Speed setting).
  • A πŸ“° Latest News badge appears top-right in a frosted glass pill.
  • Requires a free NewsAPI.org API key configured in appsettings.json.
πŸ–ΌοΈ

A new Library section (left nav) replaces the old Manage Photos page with a proper media management hub.

  • Click-to-upload zone accepts JPEG, PNG, and WEBP files up to 20 MB each.
  • Responsive photo grid shows thumbnail, original filename, and upload date.
  • Hover a card to reveal a delete button; or click cards to multi-select and bulk delete.
  • Upload progress bar and toast notifications for success and per-file errors.
πŸ”Œ

A new External Apps page (left nav) provides a reference hub for every third-party API the app uses.

  • Cards for TMDB, ESPN, Unsplash, Google Calendar, Spotify, NASA APOD, NewsAPI, Open-Meteo, Google Maps, JokeAPI, Open Trivia DB, and SendGrid.
  • Each card shows a color-coded status badge: Active, No key required, Needs setup, or Stub.
  • Theme pills show which display themes each service powers.
  • Direct links to each service's developer portal or documentation.
πŸ“§

Transactional email is now live via SendGrid. Account emails that were previously no-ops now actually send.

  • Email confirmation links sent on new account registration.
  • Password reset links and one-time codes for the forgot-password flow.
  • Implemented all three IEmailSender<ApplicationUser> methods required by ASP.NET Core Identity.
  • API key is loaded from appsettings.json β€” never hard-coded.
🎬

The "Now Playing" badge on the Movies theme was overlaid on top of the poster art, partially obscuring it. It is now positioned above the poster image in a dedicated flex row.

  • Badge sits in its own horizontal band with a bottom border separating it from the poster below.
  • Poster fills the remaining height without any overlay obstruction.
🎨

The admin interface got a visual refresh β€” warmer tones, cleaner layout, and a distinct branded sidebar.

  • Amber accent palette β€” buttons, nav hover/active states, and focus rings all use a warm amber (#f59e0b family) via Radzen CSS variables.
  • Lavender-white page background (#eef2f7) gives the UI an airy, light feel.
  • Sidebar has a branded "πŸ“Ί Luminography" header in amber, with pill-style active nav links.
  • Indigo/violet is reserved as the editorial accent β€” hero taglines, CTA banners, changelog tags, and in-content links β€” keeping chrome and content visually distinct.
πŸ–ΌοΈ

Theme selection on the Edit Screen page was replaced with visual card thumbnails β€” a colored gradient preview with an emoji icon and label for each theme.

  • Themes are grouped by category: Movies, Sports, Entertainment, TV & Art, Weather, and Other.
  • The active theme is highlighted with an indigo border and glow.
  • Cards have a press animation for tactile feel on touch screens.
πŸ“±

People near a trivia display can now scan a QR code and play along on their phone in real time.

  • QR code overlay appears in the corner of the Trivia display showing the join URL.
  • Mobile players navigate to /trivia-play/{device-id} and immediately see the current question.
  • Players tap an answer β€” buttons turn green (correct) or red (wrong) when the host reveals the answer.
  • Questions and answer reveals are pushed via SignalR, so phones stay in sync with the display with no polling.
  • Player count badge on the Trivia display shows "πŸ‘₯ N playing" in real time as people join or leave.
🎬

Movie poster themes (Favorites, Trending, Top Rated, Upcoming) now use a cinematic flash-to-black between posters instead of a plain crossfade.

  • A black overlay fades in over the current poster, the image swaps, then the overlay fades out β€” mimicking a theater cut.
  • Fully compatible with the existing Ken Burns slow-zoom animation.
  • ImageComponent gained a FlashToBlack parameter so individual themes can opt in or stay with crossfade.
πŸ“ˆ

A new Markets display theme shows live stock index quotes in a dark terminal-style layout.

  • Index cards display the current price, point change, percent change, and a day-range bar showing where the price sits between the daily low and high.
  • A market-status badge in the header shows Open, Pre-Market, After Hours, or Closed with a colored dot.
  • Quotes refresh every 60 seconds with a live countdown timer in the footer.
  • Gains are highlighted in green, losses in red, using a monospace font for the financial aesthetic.
πŸ”­

A new NASA APOD theme pulls today's Astronomy Picture of the Day from NASA's public API and fills the screen with it.

  • Image slowly zooms with a Ken Burns effect over a 60-second loop.
  • A gradient overlay at the bottom surfaces the title, date, and a truncated explanation.
  • Copyright attribution is shown when the image is credited to a photographer.
  • Video APODs are gracefully handled with a fallback state instead of a broken embed.
πŸ—ΊοΈ

A new Map theme displays a full-screen Google Maps satellite view with a location name overlay at the bottom.

  • The satellite iframe fills the entire display with no chrome or controls visible.
  • A gradient overlay shows the location name, region, and GPS coordinates in a clean typographic layout.
  • The API key is loaded from server configuration β€” no credentials in markup.

Something went wrong

This page ran into an error and needs to reload to keep working.

Reload page βœ•

Rejoining the server...

Rejoining the server...

Lost contact with the server β€” retrying automatically.

The session has been paused by the server.

Failed to resume the session.