Roadmap


This is our only roadmap for VA7ZEB.ca. There’s no hidden internal plan or secret list of priorities. What you see is what you get. It outlines what we’re building, what we’ve started, and what we’re planning. Some features are nearly done, others are early experiments, and a few are long-term goals. Everything here reflects the real direction of the project, shaped by user feedback, personal priorities, and a focus on technical simplicity. Like any roadmap, it’s not a contract or a promise — just our best thinking right now.

VA7ZEB.ca will be structured around three top-level ecosystems: Amateurs, Ships, and Aircraft. Each one will include its own map overlays, search system, stats dashboard, AI summaries, and domain-specific tools. This modular approach will allow each domain to evolve independently, while still sharing a unified architecture of S3-backed datasets, client-rendered maps, GPT summaries, and offline capabilities.

Offline Mode

All functionality will be offline-first, supplemented by the internet when available. A service worker intercepts all network requests and serves cached resources first, falling back to the network only when necessary. If DNS fails or you have zero connectivity, the app loads instantly and works normally. Updates to the application itself happen automatically and silently in the background, with no reinstalls or app store approvals required.

You’ll also be able to download entire datasets. The Callsigns option will pull down the complete USA/Canada amateur radio database—roughly 1.8 million records. Each download will show real-time progress with megabytes transferred and estimated time remaining, and warn you about storage costs before starting. The interface will display exactly how much space your offline data consumes and how much remains available on your device.

Broadcast

The Broadcast feature extends VA7ZEB with a global internet radio directory built on the same offline-first, client-side architecture proven by the line-of-sight tool. A nightly AWS Batch job pulls the Radio Browser community database (approximately 50,000 stations across 238 countries) from their public backup at backups.radio-browser.info, transforms it into a compact SQLite database containing only the essential fields (station name, stream URL, genre tags, country, coordinates), and publishes it to S3 alongside a small manifest file summarizing the station count and recent changes. The client downloads this SQLite file once (estimated 2-3MB compressed) and uses sql.js to provide instant local search by genre, region, or map location, with the HTML5 audio element handling playback directly from station stream URLs. Favourites are stored in localStorage with zero-friction UX: a single tap to star from search results, favourites tab loads first for returning users, and a recently-played list catches stations the user forgot to favourite. An export-to-M3U option lets users back up their favourites or transfer them to other devices. The update mechanism checks the tiny manifest file when online and silently downloads the new database in the background if meaningful changes exist, with a manual force-update option for users who want control. During the batch job, a parallel process tests each station for Icecast/Shoutcast metadata support by checking for the icy-metaint header response, storing a has_metadata flag in the database so the client knows which stations will show now-playing information. For stations with metadata support, a lightweight Lambda function (called via function URL, not API Gateway, to avoid unnecessary cost) fetches the current artist and title directly from the stream on demand, with no caching since metadata freshness matters more than the negligible compute cost. When metadata returns, the Lambda checks S3 for a cached song summary keyed by a hash of artist and title; on cache miss, it calls the Brave search API to gather context and album artwork, passes the results to Gemini Flash 2.5 to generate an engaging summary about the song, artist, and album, caches the result permanently on S3, and returns the enriched response to the client. Every AI-generated summary includes a sponsor line at the bottom promoting Technovault, Cloudmakers, or other apps in the portfolio, creating a self-sustaining cross-promotion engine with zero ad network dependencies. The entire system runs on S3 static hosting plus one Lambda plus one batch job, with the core radio experience working completely offline and the metadata and AI summaries functioning as progressive enhancements when connectivity is available.

Line of Sight Buildings

Current implementation uses NASA elevation data for terrain. This works in rural areas but ignores buildings. We’ll add Google Building Footprints data for urban accuracy. First user in a region triggers an on-demand query that slices and caches building data; subsequent users get instant results. Eventually we’ll label obstructions by name (“Blocked by Whalley Building”) instead of just showing red zones.

Maps

Shadow Maps — With the same tile data that powers LOS (NASA elevation + GBA buildings), we’ll also be able to calculate sun shadows in real time. By computing the sun’s position for any point on earth and casting rays against terrain and building footprints, the client will render dynamic shadow overlays directly in the browser. At global scale this will appear as the day/night terminator, while at street level it will highlight which areas are in shadow at that moment. No new datasets will be required—this will be a pure client-side extension of the LOS engine.

HF Maps — We’ll be designing real-time propagation and activity maps. One map will show band openings using data from PSK Reporter, RBN, and NOAA. Another map will visualize amateur activity as a heatmap of operator density by band and mode over the past 15 minutes.

Sunset Maps — Zoom and show the moment this spot will be in sunset.

Grid Square Maps — Show grid squares around the planet. Allow searching for an address.

Dashboard

Many operators run HamClock on a Raspberry Pi—a dedicated display showing propagation conditions, solar data, DX spots, contest calendars, and other real-time information. It requires hardware, SD card imaging, Linux configuration, and ongoing maintenance. VA7ZEB.ca will offer a web-based alternative: fully hosted, zero-install, accessible from any device. Navigate to va7zeb.ca/dashboard, log in with your Google account, and configure your preferences once—callsign, grid square (auto-detected via geolocation), visible panels, theme, and optional custom background images. Your configuration will be stored in S3 and load instantly on any computer, tablet, or phone. Press F11 for full-screen kiosk mode. The dashboard will display real-time propagation maps, solar weather, grey line visualization, DX cluster spots, and upcoming contests from curated community sources like WA7BNM.

Multiple NCOs

We’ll support shared net control by syncing JSON data over S3. Each NCO will poll the file using its LastModified time, and changes will be pulled into localStorage. No WebSockets will be required.

Outposts

Outposts is a distributed radio network similar to KiwiSDR designed to lower the barrier to entry for remote monitoring. Unlike systems like KiwiSDR, which require hundreds of dollars in dedicated hardware and advanced networking knowledge, Outposts allows any operator to turn a standard $25 USB radio dongle into a global listening node using just a Windows PC. This software-first approach removes the need for router configuration or Linux servers, making it possible to share local radio signals with the world using equipment most hams already own.

Logs

Logs will be fully client-side and optimized for casual use. Personal contact logs, portable activation logs, and optional contest logs will all share the same lightweight structure. You’ll be able to import ADIF, export to CSV, and search locally. Nothing will be uploaded unless shared.

Global Ship and Aircraft Lookup

Searches for vessels and aircraft will work like callsign lookups. Users can search by tail number, registration, operator, flag, or owner. Results will include AI summaries. Map overlays (AIS, ADS-B) are planned for the future, built using client-side rendering with tile-based data sources.

Build a Unique MMSI Database

VA7ZEB.ca will build and maintain a structured, persistent MMSI-to-vessel database, derived from AIS data collected over time. This will link MMSI identifiers to vessel names, flags, types, ownership metadata, and movement history. By storing this data long-term and layering it with GPT-generated summaries, we’ll offer identity and insight for ships at sea. This registry will grow continuously with each AIS packet received.

Email Digests and Alerts

We’re planning to offer two types of email updates. The first would be a daily or weekly Local Digest—a summary of ship, aircraft, and amateur radio activity in your region. You’d see highlights like cruise ships arriving at Canada Place, aircraft landings by origin region, and new APRS stations detected nearby. Each item would be linked to live maps and GPT summaries.

Users could also subscribe to Real-Time Alerts—instant notifications when a specific vessel, aircraft, or callsign appears, moves, or changes status. Whether you’re tracking the Prime Minister’s plane, monitoring when a favorite DX station comes online, or following a specific ship as it crosses the Pacific, alerts would notify you the moment something happens.

Subscriptions would be managed via flat JSON files stored in S3 under a /subscriptions/ directory, one file per email address. This serverless model would allow fast lookup and full transparency without the need for logins, databases, or session management. Users would confirm their subscriptions via tokenized links sent by email, and could unsubscribe, resubscribe, or switch from daily to weekly with a single click. Unsubscribed records would be retained to prevent abuse, and an admin-only neverSend flag would ensure we can immediately block future messages to any address that generates complaints.