Skip to main content

What Are Variants?

World Monitor uses a variant system that packages the same codebase with different configurations, data sources, and UI themes to create specialized dashboards for different use cases: All four variants run from a single codebase β€” the build system configures features, data sources, and styling based on the VITE_VARIANT environment variable.

How Variants Work

Build-Time Configuration

Variants are configured at build time via the VITE_VARIANT environment variable in vite.config.ts:
vite.config.ts
Each variant has metadata defining:
  • SEO metadata: title, description, keywords, Open Graph tags
  • URLs: canonical URL and live demo link
  • Categories: PWA manifest categories (e.g., ['news', 'productivity'])
  • Features: list of available features for the variant

Variant Metadata (vite.config.ts:40-144)


Switching Between Variants

In Production (Web)

Each variant is deployed to its own subdomain. The header bar displays clickable links to other variants:
Clicking a variant link navigates to that variant’s live deployment:
  • worldmonitor.app β†’ tech.worldmonitor.app
  • finance.worldmonitor.app β†’ happy.worldmonitor.app

In Desktop App

The desktop app (Tauri) allows in-app variant switching without navigating to a different URL:
  1. Click any variant in the header bar (🌍 World, πŸ’» Tech, πŸ“ˆ Finance)
  2. The app stores the selection in localStorage as worldmonitor-variant
  3. On next reload, the app loads the selected variant
Code reference: src/config/variant.ts:1-12

In Development

Use npm scripts to launch specific variants:

Building Variants

Production Builds

Each variant has its own build script in package.json:

Desktop Builds

Desktop apps are built with variant-specific Tauri configurations:

Variant-Specific Features

UI Theme Customization

The Happy Monitor variant uses a warm cream theme instead of the default dark theme:
src/styles/happy-theme.css:9-100
The variant is detected via the data-variant attribute on the root element.

RSS Feed Selection

Each variant loads a curated set of RSS feeds:
  • World Monitor: 150+ geopolitical, defense, and energy feeds
  • Tech Monitor: 100+ tech news, AI labs, startup, and cybersecurity feeds
  • Finance Monitor: 120+ market news, trading, central bank, and economic feeds
  • Happy Monitor: 40+ positive news, science breakthrough, and conservation feeds
Code reference: RSS feed configuration is defined in variant-specific feed lists

Map Layers

Variants enable/disable map layers based on relevance:

Analytics & Tracking

Variant switches are tracked for analytics:
src/services/analytics.ts:78,303
This allows monitoring user preferences for variant selection.

Next Steps

World Monitor

Full geopolitical intelligence variant

Tech Monitor

AI & tech industry variant

Finance Monitor

Markets & trading variant

Happy Monitor

Positive news variant