I’m pretty excited about this one! It introduces a much more flexible theming system, a new OpenFreeMap option, a refreshed RAD theme, and several improvements to maps, diagnostics, dashboards, and self-hosted configuration. I like the original scheme I came up with, but have really fallen in love with the RAD pallette so I decided to add it to give some flexibility.
Thank you to everyone who has shared feedback, reported issues, and helped shape these improvements. Themes are a large new surface, so I’d especially like to hear what works well, what feels confusing, and what you would like to customize next. Would love to have feedback on people's favorite theme now.
Features
Account themes and Theme Studio
Riviamigo now has a complete account-based theme system.
You can choose Classic, RAD, or one of your own custom themes from Settings > Appearance. Your selected theme and Light, Dark, or System preference are saved to your account and follow you across supported browsers and devices.
The new Theme Studio lets you:
- Create private custom themes based on Classic or RAD.
- Customize interface colors and chart palettes.
- Preview changes inside Theme Studio or temporarily apply them across the entire app.
- Review light and dark modes before saving.
- Save immutable revisions so published changes remain predictable.
- Publish a revision without automatically changing accounts that use an older revision.
- Check critical text and surface contrast before publishing.
Custom themes inherit any values you do not override, so they can stay small and focused instead of redefining the entire interface.
Improved chart and widget colors
Charts and dashboard widgets can now use the active theme’s sixteen ordered data colors.
The chart color field includes theme-series swatches, semantic colors, and a custom color picker with Hex, RGB, HSL, and OKLCH inputs. Light and dark values can be linked or adjusted separately.
Sensor widgets, battery summaries, and other neutral data displays now use these data accents instead of relying on status colors that could incorrectly imply success or warning states.
RAD theme
RAD has received a full visual brighter palette, sixteen distinct chart colors, improved light-mode styling, and new vector artwork.
The updated logo, wordmark, icon, and favicon remain sharp at any size, while Classic keeps its existing visual identity.
OpenFreeMap basemaps
OpenFreeMap is now available as a built-in basemap provider and is automatically used when a CARTO Basemap key is not configured. Its super smooth and I think moving forward will be the default option, but Carto is still there if you prefer it.
Available styles include:
- Follow appearance
- Positron
- Bright
- Liberty
- Dark
- Fiord
- 3D Liberty
Basemap preferences are saved to your account. Follow appearance automatically tracks the application theme, while selecting a named style keeps that map style pinned.
The 3D option adds a pitched, rotatable map view and returns to a flat camera when you switch back to another style.
Better map recovery
Trip routes now remain visible on a neutral background when map configuration or tile loading fails.
Riviamigo distinguishes between configuration failures and tile-resource failures, provides the appropriate retry action, and records safe browser diagnostics without exposing coordinates, credentials, or other sensitive data.
Clearer frontend diagnostics
The web application now emits structured, privacy-safe diagnostics to the browser console for unexpected API, query, and rendering failures.
This improves troubleshooting while keeping expected quiet failures quiet and excluding secrets, personal vehicle information, and raw request data.
Fixes
- Fixed External Connections returning an error on fresh installations that do not yet have Rivian credentials.
- Fixed flattened environment overrides so booleans, numbers, and other typed configuration values are parsed strictly through the complete configuration path.
- Kept custom basemap bearer tokens scoped to their configured provider instead of allowing them to reach unrelated hosts.
- Preserved first-party basemap resource URLs while styles are processed by MapLibre.
- Hardened the basemap proxy’s validation, caching, resource rewriting, and recovery behavior.
- Improved map fallback behavior when style documents, vector tiles, sprites, glyphs, or raster resources are unavailable.
- Added separate retry handling for map configuration failures and tile-resource failures.
- Fixed theme ownership and authorization edge cases found during release review.
- Improved theme revision cleanup and account preference handling.
- Improved chart color controls so automatic, theme-series, semantic, and custom selections remain visually and behaviorally consistent.
- Improved color accessibility by showing swatches directly in color selection controls.
- Preserved bundled chart rendering behavior while allowing supported theme colors to flow through charts.
- Improved sensor widgets, overview cards, and battery phantom-drain summaries with consistent data accents.
- Removed unused default chart identifiers and stale dashboard assignments.
- Improved query and API error reporting so actionable failures include useful local diagnostics.
- Improved vehicle-status error handling without turning expected unavailable states into noisy application errors.
- Refined responsive appearance controls in the desktop navigation and mobile menu.
- Improved sidebar, dialog, picker, status-bar, and theme-toggle behavior across light and dark themes.
Development, builds, and maintenance
- Made full local CI an explicit opt-in while keeping normal hooks focused and lightweight.
- Made candidate container builds manually controlled instead of triggering unnecessary builds during ordinary development.
- Allowed production subset builds to carry the required patch metadata.
- Updated architecture budgets to reflect the completed theme and diagnostics work.
- Removed the unused graph exploration tool and its generated dependencies.
- Expanded documentation for themes, OpenFreeMap, external connections, frontend diagnostics, development, branding, dashboards, and release images.