W4GGJ — POTA Activator · Amateur Radio · Tampa Bay, FL | 📻 Ham radio content worth reading — subscribe & grab your free Go-Bag Checklist

TavaOne Build Presentation

How I Built the Tava One Ecosystem — W4GGJ
Build Log — Tava One Ecosystem

From Park Bench
to Published Post

How the Tava One content ecosystem was built — field logger, Shopify, Beehiiv, Cloudflare Workers, a UDP data bridge, and an activation analyzer all connected into one workflow.

OperatorW4GGJ
QTHEL87PT / Tampa Bay FL
Primary ModeFT8 / 20M
Power5W QRP
NOTE: This is a living build. Some sections describe earlier configurations — gear and tools have evolved. Where historical info appears it's labeled. The stack table at the end reflects current state as of June 2026.
01

The Field Station

Every blog post, TikTok, and social update starts here — in a park, with a 5-watt radio and a Raspberry Pi. The field station is the source of everything.

📻
Xiegu X6200
5W QRP, built-in ATU. Single USB cable handles CAT control + audio. No interface boxes needed.
🥧
DigiPi (RPi 4)
Purpose-built Raspberry Pi image. WSJT-X pre-integrated into web menu. Controlled from phone or tablet over Wi-Fi.
📡
Radioddity HF-010
Current field antenna. Replaced the earlier JPC-12 telescoping vertical setup. Full review in Gear Reviews.
🔋
DIY LiFePO4 Pack
2 × 8Ah cells in a 50L tactical backpack. 3D-printed MOLLE panel box: master switch, QC 3.0 USB, USB-C PD, voltmeter, Anderson Powerpoles.

The X6200's USB connection is the key design decision. One cable handles CAT control and audio — DigiPi sees the radio as a standard USB sound card and serial port. Setup time from bag to first transmission: 15–30 minutes.

Original setup — for reference

The earlier field antenna was a JPC-12 telescoping vertical at 18.3ft with 8 × 17ft radials. On concrete (Skyway Fishing Pier), 2 radials ran along the pier, 2 hung toward the water — saltwater acts as an excellent ground plane. The current HF-010 setup differs; this config is noted here for historical context.

02

Activate — The Field Logger

The content workflow runs on data captured in the field. That data needs to be clean, structured, and already in the right place before anything downstream can work. That's what activate.tavaone.com was built for — a browser-based, mobile-friendly field logger for POTA, SOTA, WWFF, IOTA, and portable operation. Sign in with Google. Data saves to your own Drive. No app install, no ads, no third-party server holding your logs.

📋
Field Notes Tab
Activation type, park reference, callsign, UTC times, power, rig, antenna, weather (auto-fills), band conditions, narrative, and "Would activate here again?" — before you key up.
📡
Logger Tab
Callsign, band, mode, RST, frequency, name, grid, SIG reference. Live POTA counter tracks toward the 10-QSO minimum in real time.
🔗
WSJT-X Integration
Personal bridge endpoint in Settings. Point WSJT-X Secondary UDP Server at it — QSOs auto-import live. No scripts, no extra apps, no file copying.
📁
Google Drive Sync
Submit & Export creates a dated folder in Drive and saves the .adi and field_notes.md automatically. Live ADIF updates with every contact during the activation.
Activate — Live Data Flow During Activation
WSJT-XFT8 / field radio
UDP Bridgepersonal endpoint
Activateactivate.tavaone.com
Google Drivelive .adi + .md
Blog Postcontent workflow
TavaScopestats & images
POTA.appactivation upload
By the time you drive home, the complete log and field notes are already waiting in Google Drive
03

Home Shack UDP Bridge

While the field station runs, a second data stream flows home. WSJT-X broadcasts real-time decode data over UDP — every contact, every heard station. A Python script on the home PC clones that incoming stream and fans it out simultaneously to all the home shack consumers.

UDP Data Flow — Field to Home Shack
X6200field radio
DigiPiRaspberry Pi
WSJT-XUDP-A out
Internetcellular / Wi-Fi
Home PCUDP Cloner / UDP-B
GridTracker 2UDP-C
SpotCollectorUDP-D
DX Lab SuiteUDP-E
LoggerUDP-F
Port labels are generalized. FT8 UDP packets are tiny — even cellular handles this without issue.

The result is that the home shack logging stack behaves as if the radio is on the desk, even when it's operating from a park bench twenty miles away.

04

The Website Stack

Tava One went through a complete pivot before becoming a dedicated ham radio brand — new pages, new nav, new identity. The Shopify Xtra theme provides the foundation; everything else is layered on top.

Early 2026
Full store pivot — ham radio only
Stripped prior content. Rebuilt around POTA, FT8, and Florida ham radio. Three blogs: Field Operations, Gear Reviews, The Shack.
March 2026
Theme customization + affiliate integration
CSS via Theme Settings Custom CSS block — survives theme updates. Radioddity affiliate links with code W4GGJ throughout gear pages and posts.
April 2026
Beehiiv newsletter + Cloudflare Worker live
Custom signup form with 6 interest-tag fields, welcome email automation, POTA Go-Bag Checklist PDF lead magnet, Cloudflare Worker proxy resolving CORS.
June 2026
Full ecosystem operational
Activate + TavaScope + content workflow all connected. Blog post + TikTok content generated from a four-word prompt after every activation.

The newsletter setup required more engineering than expected. Six custom boolean interest fields tag every subscriber from day one. The signup form is a custom HTML/JS widget — not a Beehiiv embed — giving full design control.

// Six Beehiiv interest-tag custom fields interest_pota-activations → boolean interest_gear-reviews → boolean interest_ft8-digital → boolean interest_diy-builds → boolean interest_florida-parks → boolean interest_beginner-ham-radio → boolean
The Cloudflare Worker Problem

Posting directly to the Beehiiv API from a browser exposes the API key in client-side JavaScript — and Beehiiv's API blocks direct browser requests with CORS errors anyway. A Cloudflare Worker acts as a proxy: form POSTs to the Worker, Worker attaches the API key from secure environment variables, forwards to Beehiiv server-to-server. Key never touches client code. Free tier, globally distributed.

Browser → APIDirect — blocked
CORS + key exposed
Browserform POST
Cloudflare Workerworkers.dev proxy
Beehiiv APIserver-to-server
05

The Content Workflow

With field data already in Google Drive — written live by Activate during the activation — the entire content package is a four-word trigger away.

TRIGGER:
"write me a blog post for today's activation"
01During activation: Activate auto-creates dated Google Drive folder, uploads field notes live, ADIF log updates with every QSO
02Find the current date's folder in Google Drive — already there before you left the park
03Read field notes file for narrative, gear, conditions, and observations
04Parse live ADIF log for contact count, bands, modes, timestamps
05Analyze photos for placement and alt text
06Output full Tava One blog post — header block, narrative, "Would I activate here again?", sign-off, image placeholders, meta description, tags
07Output matching TikTok post — image order, overlay text, caption, 5 hashtags, title
Content Pipeline — Activation to Published
POTA Activationpark / field
Activatelive logging
Google Driveauto-created folder
4-Word Triggerat home
Blog PostShopify → tavaone.com
TikTok ContentCapCut → @grumpagrinch
Social PostsMetricool → FB / YT
Activation to published content: ~30 minutes on a good day
06

TavaScope — Activation Analyzer

TavaScope (v1.8) turns ADIF files into full statistical dashboards and ready-to-post content images. No account, no server upload — everything runs in your browser, saved locally. Name your file after the park ID (us-6700.adi) and TavaScope queries the POTA database to auto-fill the park name.

📊
Single Mode
Full dashboard — 11 stat blocks, QSO rate charts, geographic contact map, downloadable images. Primary post-activation review.
🔀
Combined Mode
Merge two or more activations into one unified stats view. Performance across multiple visits to the same park, or across a full season.
⚖️
Compare Mode
Side-by-side with overlapping rate charts. Antenna comparisons, band comparisons, same park at different times of day.
🖼️
Stats Image Export
Blog Card (11 stats + park info), Stats Only Card, Full Dashboard screenshot, Contact Map — all ready to drop into a post or social media.
Direct content pipeline connection

The stat card in every Tava One activation blog post header is exported from TavaScope — not typed manually. The Blog Card includes park info, date, and all 11 stat blocks in one ready-to-post image. Works with QRZ.com, POTA.app, DXKeeper, N1MM+, WSJT-X, Ham Radio Deluxe, and any standard ADIF file.

07

Full Stack — June 2026

Everything currently running, in one place.

Component Platform Status
Storefront Shopify / Xtra Theme LIVE
Blogs (3) Field Operations · Gear Reviews · The Shack ACTIVE
Newsletter Beehiiv (free tier) LIVE
Signup Form Custom HTML/JS · 6 interest tags LIVE
API Proxy Cloudflare Worker LIVE
Lead Magnet POTA Go-Bag Checklist PDF ACTIVE
Social Scheduling Metricool → FB, TikTok, YouTube CONNECTED
Field Logger activate.tavaone.com LIVE
Activation Analyzer tavascope.com v1.8 LIVE
Content Workflow Google Drive + Activate + Claude OPERATIONAL
Field Radio Xiegu X6200 (5W QRP) OPERATIONAL
Field Antenna Radioddity HF-010 CURRENT
Field Power DIY LiFePO4 Tactical Pack OPERATIONAL
DigiPi Raspberry Pi 4 / DigiPi image OPERATIONAL
Home Logging DX Lab Suite + GridTracker 2 RUNNING
UDP Data Bridge Python cloner script RUNNING
Affiliate Program Radioddity — code W4GGJ ($15 off) ACTIVE
Footer image

© 2026 Tava One // W4GGJ,

    • American Express
    • Apple Pay
    • Diners Club
    • Discover
    • Google Pay
    • Mastercard
    • PayPal
    • Shop Pay
    • Visa

    Login

    Forgot your password?

    Don't have an account yet?
    Create account