Skip to main content

Changelog

A running log of what shipped in each release.


Next

  • Activation setup now lets your location pin travel to the park before you start. Choose a recognized park and the self pin glides from your known location to the park's resolved location, firing two omnicolor beams in every cardinal direction; only after it arrives does the camera fly to its closest zoom. Clear the field and the pin returns first, then the camera restores the normal home overview. The moved pin remains the one target for opening park details, your saved location stays put, and Reduce Motion makes the two phases immediate without beams.

  • The Home tour gets to the point faster, then helps you choose what comes next. Anatomy of Hamtrax now ends after organized logbooks, removing the two extra tools chapters and shortening the story from seven screens to five. It releases into three illustrated cards: POTA opens Hunt, while DX and Repeaters open their matching public pages. The shared prairie and night sky carry the story naturally into the chooser.

  • Failed callsign setup can now be diagnosed without exposing the callsign to third-party analytics or logs. Hamtrax privately records the normalized field value, failure stage, and reason, marks the record to expire after 30 days, and retries delivery after temporary connection or page-close interruptions. Releases now stop before publishing the web app or this privacy promise if the required Function, Firestore index, or retention policy did not deploy.

  • The Home page now explains two more ways to get on the air. New What is DX chasing and What are repeaters dropdowns join the HAM radio and POTA explainers at the bottom of Home, giving newcomers a quick introduction without leaving the page.

  • Interactive maps now name the cities around the activity. Hamtrax starts with cities above 10 million people and lowers the population threshold as you zoom in, while MapLibre leaves out overlapping names so markers stay readable. Major city names is on by default under Settings → Preferences → Map and follows your account; the Profile World Coverage story remains unchanged, and detailed OpenStreetMap labels stay part of that basemap.

  • Activation contact maps no longer lead into a dead-end Options screen. Options stays visibly grayed out in the preview, and tapping it reveals a quiet availability note underneath without opening unusable filters.

  • Plan badges now stay on one line. The Current plan label no longer splits across two lines on narrow plan cards.

  • Sidebar search now shows every matching category, and every callsign opens one public operator dossier. After three characters, Hamtrax checks Callsigns, Parks, and Activators together and puts a small red dot beside every category with results, so you know where matches are waiting before switching tabs. Once the results card settles, the rest of the screen gently darkens beneath it so the active search is easier to follow; outside taps still work in one step, and Reduce Motion skips the fade. Select a Callsigns result—or open a callsign from Hunt, DX, POTA, or the Logbook—to see the same responsive detail view. It paints the search result immediately, then independently gathers callbook and licence dates, public location/QSL information, current POTA and DX spots, RBN and PSK Reporter receptions from the last hour, and public POTA hunter history. Missing or unavailable sections have honest empty/Retry states without hiding what worked. The dossier is deliberately membership-neutral and public-only: no street/ZIP/coordinates, Hamtrax account activity, Showcase prompt, private QRZ/POTA logbooks, LoTW, or N1MM data.

  • The Hamtrax loader now has more than one move. The origami beaver still unfolds and reforms into the exact logo, but its separated pieces now travel through shuffled orbits, counter-currents, signal ripples, crosswinds, and figure eights instead of repeating the same full spin every time. Each facet gets its own timing and drift instead of moving in lockstep, the old soft-blue backdrop glow is gone, and devices set to Reduce Motion still see the assembled logo stay still.

  • Two focused signal checks now show whether FT8 or CW is getting out. Open PSK Reporter or Reverse Beacon Network from Tools to check the callsign on your account—or a temporary portable or club call—against the last 30 minutes of FT8 or CW reports. Each full page pairs a receiver-only world map with every returned report, including band, frequency, signal report, and CW speed when available. Heard recently is positive evidence; an empty result or provider outage stays honestly inconclusive. PSK Reporter respects its five-minute retrieval guidance, RBN uses a 30-second minimum refresh interval, and neither tool saves an edited callsign. See PSK Reporter and Reverse Beacon Network.

  • Park facts are easier to scan. Geography, History, and Did you know? now read as full-width rows with colorful illustrations above centered category titles on narrow screens and cropped into the left edge on wider screens, giving longer park stories room to breathe.

  • Hunting map hover scrolls the matching list item again. On wide screens, hovering a marker could highlight its matching list item without bringing it on-screen, even with Auto-scroll activator list enabled. It now scrolls that item into view again; turning the setting off still keeps the list in place.

  • Grid-square entry no longer erases your first character. Manual location fields now preserve partial typing, apply standard Maidenhead casing as you go, and accept 4-, 6-, or 8-character locators. From the third through sixth character, Hamtrax offers up to five likely six-character grid squares and narrows them as you type; the suggestions never prevent an unlisted valid locator. In the Hunting location picker, the grid field fills its available row, while latitude and longitude split theirs evenly instead of sitting in two tiny fixed-width boxes. Inside a location window, choosing a grid or place suggestion — or changing the auto-revert window — now applies the choice without dismissing the window before it can be saved.

  • Radio and antenna pickers are now clearer. Each title is centered without a redundant header icon, and the add action now says exactly what it creates — Add Radio or Add Antenna — without another icon. Signed-out visitors can also try every field in the mock editors; closing discards the draft and leaves the demo gear unchanged.

  • The top-bar solar preview now fits cleanly on narrow screens. Its right edge could be clipped, and the four band sections looked darker than the card around them. The preview now stays fully visible and uses one consistent surface color.

  • Park search no longer leaves activation setup hidden behind the sidebar. On phones and tablets, tapping Activate Here in the sidebar's Parks search opened the selected park's setup while the sidebar stayed expanded. The sidebar now starts closing before Hamtrax routes to activation setup, with the selected park still pre-filled.

  • Folder links from Hunt now open the folder they name. On phones and tablets, tapping the monthly folder chip at the top of POTA or DX Hunting — or a folder link in an activation-routing card — selected the right folder but left the Logbook showing its top-level program cards. Those links now open directly on that exact monthly or activation folder. Opening Logbook from the sidebar still starts at the folder tree, and Back returns there as before.

  • Logbook folders now open and close smoothly. Folder cards used to jump to their full height as soon as you tapped them. Their contents now reveal and tuck away with one quick motion, while devices set to reduce motion still switch instantly. Folder rows also keep a soft outline for as long as your cursor remains over them, after the initial highlight fades.

  • Program cards now flow into their detail view. Opening a live POTA or DX spot—or a park in Park Explorer—now immediately carries the card's four edges into the detail modal while its contents fade, instead of making the new surface appear separately. Map and search opens keep their regular transition, and devices set to Reduce Motion get a simple fade.

  • Your offline POTA park database now keeps itself current. When a signed-in device discovers that its local park data is stale, Hamtrax quietly downloads the newer official dataset by default. Auto-update parks database lives under Settings → Preferences → Integrations and follows your account, while each device still owns and updates its own offline copy. Turn it off and the at-most-weekly stale-data reminder plus Drop & refresh remain available; a failed automatic update falls back the same way. If a map or the database card is already open, the new parks appear without a page refresh.

  • Hunt cards now read like radio instruments instead of unrelated rows. Live POTA and DX spots float a tight segmented Frequency readout beside plain Mode text directly on the card. POTA's place row begins immediately below it. DX cards instead lead with the canonical entity title and its parent-country flag when available, stack Frequency and Mode above the callsign and entity reference in the body, and vertically center any country thumbnail at that body's far right. Repeater rows drop the favorite star, put Mode before the callsign on one header row, leave a small gap before a framed Receive / Transmit panel whose two cells now share the same neutral outline, center the offset beneath it and any access tone immediately below, and close with Log at bottom-right; the Receive digits keep their yellow or digital-blue color without turning the whole cell into a yellow box. Across these cards, the identity header now has an airbrushed black-metal finish with a faint gold undertone and a fine gold lower edge. Park Explorer also drops the favorite star and starts that shared header with the park name, then divides the next line into equal Park reference / Region / Photos sections — the reference at header-3, the region at body-2, and the optional offset photo stack in the right section — before closing with one natural distance phrase such as 3.7 miles away instead of a split label and value. Parks you have never activated stay unbadged; a green Activated badge appears only when the Logbook contains a validated activation for that park. When present, Popular Park starts the footer, Activated sits immediately to its right, and distance stays pinned at the far right. A small header ribbon spans radio cards' top edges: a recognized amateur band when one can be derived from the RF data, or the registered program's short name otherwise. Park Explorer leaves off the redundant POTA label. The former between-card band/mode dividers are gone, so the marker never disappears merely because two neighboring cards match. Mode now uses the same text-only treatment across cards, contact rows, pickers, and station details, with no raster artwork. Every segmented station frequency follows the same color rule: yellow unless the mode is recognized as digital, when both frequency and mode turn blue; when Mode is missing, Frequency stays locked in the same left slot. On live POTA spots, the program reference stays directly beneath the header callsign, while the place name and optional region metadata remain below the tuning row. Every live POTA and DX spot uses the same Tried / Try Later / Contacted action rail — one visual language whether you're scanning an activator or a country.

  • The folder page's buttons now sit where you use them. A folder's Add Contact and Bulk Edit buttons used to float above the Contacts heading, a full scroll away from the list they act on; they now sit directly under the List / Map / DX switch, and only on the List tab — on Map or DX they step aside, because there's no row there to add to or select. Share, which was tucked into the small toolbar beside Download and Delete, trades places with them: sharing your contact map is the folder's showpiece action, so it now sits immediately beside the switch as a full orange button spanning both Contacts header rows — and it now says what it shares: Share map. Download and Delete keep their spots in the top toolbar.

  • Place photos now add context without taking over the list. Park Explorer rows can show up to four small photos stacked with a slight offset in the dedicated third section beside Park reference and Region, while live POTA cards show at most one small image beside the place and live DX cards keep that image vertically centered at the body's far right beside the tuning and station rows. The information-first card remains complete when no freely licensed photo exists. The thumbnails stay lightweight and load only when their row nears the viewport; repeated views of the same subject are filtered out; tapping an image opens the same credited detail view as tapping its row. Park photos also got their corners back — the square-cornered thumbnail on the activation screen was a picture overflowing its own rounded frame, and it now sits inside it. See Park Explorer, Hunting, and DX Chasing. Map detail cards now reuse an already-cached photo set as a small stack beside see details, with every visible layer showing a different tiny thumbnail. The popup starts no second photo lookup; a shared-park operator stack shows the photos once.

  • Full-screen photos are simpler to browse. Each photo now scales up or down to fit the available screen without cropping, and Logbook folder photos keep the folder's title in the header. Previous and next stay together in a centered row immediately below multi-photo previews on every screen size. The unused zoom controls are gone, while long photo titles still use all available header space before shortening on small screens.

  • The repeater directory no longer gets stuck waiting for online additions. A slow or stalled connection to the user-added repeater feed could leave Nearby Repeaters loading forever even though the 17,830-repeater directory was already on the device. Hamtrax now waits at most five seconds for those optional additions, then opens the bundled directory and retries the additions on a later lookup.

  • Repeater map pins now open from the whole pin. Tapping near the top of some glyphs used to do nothing even though tapping lower on the same pin opened its card. The full visible pin now responds, while tightly packed pins still highlight the right repeater.

  • Past-activation imports now use the same guarded workflow as every other import. Import a past activation on Activate and Import under POTA Activations now open Import Contacts, so one page owns file parsing, destination review, duplicate handling, and the filed/still filing/refused result.

  • Your import summary now reports what your logbook actually accepted, not what this browser managed to write. It used to print "23 imported, 0 failed" the instant the contacts reached the device — which is a different and much easier question, and for at least one operator it was flatly untrue: the summary read 0 failed while the cloud was refusing rows one at a time, and the only trace was a Needs Filing list found later, with nothing connecting it back to the file. Writing a contact and filing a contact are two steps, so the wizard now shows two: a third progress stage, Filing contacts in your logbook…, and five separate numbers at the end — filed, still filing, duplicates skipped, ignored, and refused. Import complete is now reserved for an import that really is complete; anything still in flight or turned away says so in the title instead of getting a green tick over the top of it. Contacts your logbook refused are listed right there under Refused by the cloud, as exactly the same rows the Logbook's Needs Filing shows, so you can deal with them while the file is still in front of you rather than discovering them a week later. One of those rows got clearer too: a contact refused because its destination folder was refused now names that folder — "The folder “August 2026” could not be created, so this contact had nowhere to go" — where it used to quote you a guard rule about a folder that did not exist. And offline, where nothing can be filed at all, the screen honestly counts every contact as still filing instead of claiming an import that hasn't happened yet.

  • "Add your callsign first" now takes the callsign. Logging a contact needs a callsign on your account, and until now Hamtrax answered a missing one with a button to Settings → Account. Pressing it left whatever you were doing — and if you were importing a logbook, "whatever you were doing" was a parsed file, a complete routing plan, and every include/exclude choice you had made on the review screens. All of it, gone, to type six characters somewhere else. The prompt now contains the callsign field itself: the same field Settings has, running the same callbook lookup, holding the same rule that only a confirmed callsign is ever written to your account. Save it and you carry on exactly where you were. Importing goes one better and asks at the start, over your populated review screen instead of at the final confirm — and because your file names its operator on every record, the prompt usually arrives reading "Is this your callsign?" with the answer already filled in, so confirming is one tap. Saving mid-import re-plans your folders, since activation folders are named from your account callsign rather than the file's. Add it in Settings instead stays on the prompt for the operator whose callsign the callbooks genuinely can't find. Every other place that asks — hunting a spot, the sidebar match, and adding a contact by hand — got the same upgrade for free, and Settings now renders the very same field rather than its own copy of it.

  • A HAMRS logbook full of hunts now lands in your monthly Hunting folders instead of one enormous custom pile. HAMRS logbooks are typed: pick POTA and it stamps MY_SIG=POTA onto every record in that book — including the parks you hunted from your own armchair, where no park of your own was ever involved. Hamtrax read that stamp as this was an activation, went looking for the park it was supposedly activated from, found none, and swept the whole logbook into a single custom folder. Months of hunting, out of their months, in one undifferentiated heap. A program code that names no reference identifies nothing: it can't select a folder, can't earn a program's credit, and isn't a meaningful ADIF pair to carry forward. Hamtrax now drops that empty half and files each contact on the side that does say something — the park you hunted — so those contacts reach the months they belong to. The rule is written around the missing reference rather than around HAMRS, so it holds for any logger that does the same thing. Nothing else loosened: a MY side that does name a reference is untouched, including an unsupported program like SOTA carrying a real summit; a reference a supported program refuses is still reported to you rather than quietly erased; and the folder guard that keeps a mismatched contact out of a month is exactly as strict as it was.

  • Your activation now claims every contact you make from the park — and stops the one kind it can't keep. Hunting from a park has always rerouted your POTA hunts into the activation as park-to-park. But a DX entity worked from the same picnic table quietly went to your DX month instead, so the log you exported for POTA was missing contacts you genuinely made there. It doesn't anymore: start an activation and the DX Chasing tab grows the same green You're activating card the POTA tab has, the editable Location row steps aside for it because the park is where you are, and every entity you work files into the activation's folder. The card reads "Hunted DX contacts save into this activation" rather than as park-to-park, because park-to-park means the other operator is at a park too and a DX station generally isn't — these are ordinary activation QSOs that happen to be DX. Nothing is lost in the move: DX credit has never been read from which folder a contact sits in, so a country worked from a park still lights up your Showcase world map exactly as one chased from the couch does. Repeaters answers the same question the other way. POTA doesn't count a contact made through a repeater toward an activation, so instead of filing one somewhere that can never score, the Repeaters tab takes its logging controls away for the duration — the Log buttons leave the nearby list, the map glyph's Log Contact goes with them, and the Manually add contact card is replaced by one naming your park and saying why, with End activation on it. That block is narrow on purpose: only on the Repeaters tab, only while exactly one activation is live, and only for contacts dated inside its UTC day — back-date one and nothing stops you. And if you made the contact and want it logged anyway, opening your Repeater contacts month in the Logbook and adding it there still works, because a card opened on a folder is bound to that folder and never consults your activation. Each program now declares this for itself in one place, and the card you see, the folder the save picks, and the guard at the write door all read that same answer. See Hunting From a Park.

  • Repeaters — a third program, for the contacts most of us actually make. The sidebar has a new row beneath DX Chasing: Repeaters, marked by two operators with a signal path arcing up over the repeater between them. It's built around a question no other logbook asks — not which park, not which country, but which repeater the contact went through. There is no live feed here, because nobody spots a repeater. The tab opens instead on a directory of every repeater within 50 miles of you, closest first, each row carrying the callsign and output frequency, the town it covers, and the three things that are always hardest to find at the moment you need them: offset, access tone, and mode. A repeater you've never logged a contact through reads NEW; one you have reads Worked, and Worked ×4 once you've been through it four times, because on a repeater every one of those is a real QSO. Tap Log on a row and the contact card opens with the repeater, its output frequency, and its mode already filled in, waiting on the one thing a repeater row can never tell you: the callsign of the station you actually worked. Repeater contacts deliberately do not inherit POTA's once-per-UTC-day rule — catch the same friend on the morning drive and again on the way home and Hamtrax keeps both; only an identical re-log at the same time is skipped. DMR, D-STAR, and C4FM contacts are stored the way ADIF says to, MODE=DIGITALVOICE with the flavor in SUBMODE, so they export and re-import cleanly everywhere while still reading as "DMR" inside the app. Contacts file into their own monthly folders on a Repeaters card in your Logbook, which can never mix with your POTA or DX months. The directory itself is hearham's openly licensed list, 17,830 operational repeaters worldwide, which ships with the app and lives on your device rather than being fetched a repeater at a time — so the list still answers in the valley where you wanted a repeater in the first place. No such list is ever complete, so Add a repeater sits above the rows and in the empty state: give a repeater its callsign, output frequency, where it is, and whatever access details you know, and it goes live for everyone straight away, wearing a small User-added badge. Duplicates are refused rather than doubled, the bundled entry always wins a collision, and submissions are capped at five a day per account. Signed out, hamtrax.com's tab strip gains an RPTR tab that browses the same repeaters with no account at all. Full details on the new Repeaters page.

  • The Logbook can now add an old contact before its folder exists. Outside Bulk Edit, Add Contact stays available throughout the Logbook, including a brand-new one, and the full form previews the exact automatic destination or asks for a custom folder before it writes the QSO. The same filing policy as Import puts a recognized contact from your park into the matching live or finished activation; only without MY activity identity can a worked park claim its POTA month or a foreign entity claim its DX month. Unsupported identity remains intact for custom filing, and an invalid known-program reference is rejected instead of falling through. A custom folder is selected or created inline, while a missing automatic destination is checked and created at Save. A current-day park contact can instead open activation setup with the park prefilled and spotting off, while an old one can create a finished one-contact activation without an ADIF file. This also closes the DX/POTA presentation leak in the Logbook: a DX month now keeps the DX crest, says Monthly DX Folder, opens Add DX Contact with a Country/DXCC target, and shows From Park disabled with directions to the activation flow instead of presenting a POTA Hunt form.

  • Radio and antenna profiles now read like Equipment Passports. Each photo, nickname, type, manufacturer, and model sits together at the top, with Manufacturer and Model stacking into full-width rows on narrow screens instead of squeezing side by side. Radio power, modes, accessories, and notes — plus antenna bands, performance, physical specs, feedline, SWR, and notes — now show useful summaries in the same clean chevron rows as Hunt; open one and the previous section closes, so equipment stays easy to scan while every detail remains one tap away. Antenna identity and field measurements also survive save and reopen reliably.

  • The Hamtrax CLI's Generate key step is now the button. Step 2 of the CLI setup list carried a chevron — the arrow that everywhere else in the app means this row goes somewhere — and then ignored you if you tapped it, because the only thing that actually worked was a separate gold Generate key button sitting underneath. Pressing that button swapped your list of API keys out for the new-key form, so the keys you already had vanished at exactly the moment you were deciding what to call the next one. The chevron tells the truth now: tap anywhere on the Generate key row and the four setup steps slide out to the left while the form slides in from the right, into the space the steps were using. The terminal preview and your API keys panel stay put the whole time, Cancel slides the steps back, and the Generate key button in the API keys panel opens the same form.

  • Spotter distances are real distances now. The spotter list inside a live POTA activation puts the closest listeners first and prints how far each one is from the park — and some of those numbers were badly wrong. When a callbook can't turn an operator's registered address into a position — a military APO/FPO box, a PO box, an incomplete record — it often doesn't leave the field empty; it fills in zero latitude and zero longitude, a point in the Gulf of Guinea off the African coast that mapmakers call Null Island. Hamtrax read that as a real address. A spotter licensed in Grand Rapids, Michigan showed as 8,433 km from a park in Maine instead of 1,251 km, sank to the bottom of a nearest-first list, and drew an arc out across the Atlantic to open water — while their own spot comment read "58 Michigan". Worse, once one database answered that way the wrong position stuck: it counted as a real answer, so a second database that knew the operator's actual address was never allowed to correct it. Hamtrax now recognizes that pair for what it is — missing data — everywhere a callsign lookup lands, including the location you pull from your own callsign, where an address no callbook can place now says so plainly instead of putting your station in the Gulf of Guinea. A spotter whose location genuinely isn't known is left off the map and the list rather than drawn in the wrong ocean, and the Showing 21 of 22 spotters count above the map already tells you when someone couldn't be placed. A single zero is still a real place, so nothing is lost: longitude 0 runs through the UK, France, Spain and Ghana, and latitude 0 is the equator. Coordinates already saved on contacts in your logbook are untouched — this fixes what the lookup hands over from here on.

  • The PRO badge glow now fades naturally in the mobile header. Its gold halo no longer ends in hard lines at the top and bottom, while the header's status controls still expand normally.

  • Map details now share one clear card language. Live POTA stations lead with callsign, while DX stations lead with the canonical entity title, prefixed by its parent-country flag when available, before the callsign; a grouped DX marker shows that identity once above its station cards. Both continue with large frequency and plain mode text, yellow by default and blue for digital modes. Catalog parks use the same straight 300px dark card, left hierarchy, divider, and gold see details chevron. Repeaters keep their RF-first content and outlined Log Contact, while callsign, QSO, and your-location popups follow the same headline-and-divider rhythm. Opening one now clears the map around it, too: every other pin fades out while the card is pinned and fades back the instant you dismiss it, so the card you're reading is unmistakably about the pin you tapped — hovering over a pin on a desktop still just dims the neighbors. On maps that draw signal-path arcs, the other arcs clear with the pins, leaving only the tapped contact's own line. And a plain tap no longer blinks the pins away: they now clear only while you're actually dragging or zooming the map, not the moment your finger touches it. When the map crossfades to lighter street detail, those connection arcs also switch to near-black for contrast and return to their role colors when you zoom back out.

  • Nothing slips between a window's header and its body anymore. Scrolling inside a Hamtrax window let a thin strip of the moving content peek through the gap just under the title — easiest to spot on Add Contact, where form fields slid past above the pinned filing-preview card. The gap is sealed in every window at once, so pinned cards now sit flush against the header and scrolling content disappears cleanly behind it.

  • Station setup and filters now read as one simple row system. Parks on the Air hunting, DX Chasing, and activation setup now use the same scannable rows for location or park, radio, and antenna: a large equipment icon, a quiet label, and the current value. Authenticated POTA Hunt appends Spot as a fourth row with its switch inline; activation setup now uses that same fourth-row treatment immediately after Antenna with the subtitle Spot on start, while DX omits it. Hunting from a park? now sits at the bottom of POTA's Location picker, visibly separate beneath its three location choices instead of reading as another setup row. Tap it and the picker closes, an off-screen Hunt card scrolls back into view, and the existing park form slides in. Activate keeps its recognized-park search and Find Nearest action in place, while Power stays out of the start form for now and remains adjustable in the live logger after Start. The shared Hunt count is now a centered card whose changed digits roll upward as the number rises and downward as it falls while the existing gold flash remains. Its paired footer keeps subtle Refresh on the left and Filters on the right; when band or mode filters are active, their values move into a full-width row labeled Applied: underneath with Clear at the far right. The expanded Filters area now uses matching chevron rows for Band, Mode, and Last Spotted. Tap one and that row grows in place to reveal its control; opening another closes the first. Tap or click anywhere outside Filters to collapse the whole section. Band reuses the equipment picker's color-grouped square checks while enforcing exactly one band, Mode shows every choice immediately, and Last Spotted shows the 10-minute clock with a red fill that reaches a full hour at 12 o'clock. Once its row finishes opening, the selected time slides into a larger readout above the clock and follows the hand as it moves. DX keeps its extra DX Only row as a direct inline switch for Hide my country; tapping the count still jumps to the first live row.

  • Park and country photos no longer rearrange the view under your thumb. Opening a park — from the hunting map, from Park Explorer, or from activation setup — used to lay out the view without its photo: name, stats, weather, and then a large picture dropped in a moment later, pushing everything you were already reading down the screen, sometimes just as you reached for Activate Here. Hamtrax now finds out whether a park has photography before it draws the view, so the picture's space is there from the first frame: a quietly shimmering panel the photograph fades into when it arrives, and no panel at all for places that have no photos. The layout you see when the view opens is the layout it keeps. The country view behind a DX spot settles the same way as it opens, a photo whose file can't be fetched now leaves a small image icon in its place rather than collapsing the panel and shifting everything a second time, and the little park photo tucked into the corner of a live activation's spotter map follows the same rules.

  • The default profile picture is the Hamtrax beaver again. Until you upload a photo of your own, Hamtrax draws a stand-in beside your callsign — and for a while that stand-in was an origami tiger, an animal that appears nowhere else in the app and has nothing to do with the beaver in the Hamtrax logo, the app icon, and the error pages. It's the beaver again, cropped close on his face so he still reads as a beaver at the size the sidebar and the user menu actually draw him rather than becoming a smudge of color. He's also drawn on a transparent background now instead of carrying his own dark square around, so he sits on whatever is behind him — the tile in the user menu, a Showcase header, a contact row — rather than punching a slightly-wrong patch of near-black into it. If you've uploaded your own photo you'll see no change; this is only the picture shown when there isn't one.

  • Your profile picture is one shape again. Uploading a photo under Settings → Account framed it with softly rounded corners, and then every other place it appeared — the sidebar, the user menu, your Showcase, contact rows — drew it as a hard-edged square. The rule that gave avatars their corners had been deleted in a tidy-up that read it as unused, at a moment when three parts of the app were still asking for it, so for a while the shape simply went missing. Avatars everywhere now use the same rounded corner as the upload frame, so the photo you choose is the photo you see. Your Showcase picture had been quietly compensating with a rounder corner of its own and now matches everything else, and the round picture on map pins is unchanged.

  • A quieter Tools menu, and Feedback where you can actually find it. Tools had grown into a list you had to read rather than scan, and two of its eight entries — the CW Decoder and the FT8 Decoder — were still labelled BETA, still being tuned for real-world accuracy, and not what people were opening the menu for. Both have been taken out while that work continues, leaving Tools as five things that each do exactly what their name says: Band Plan, Solar, CW Training, Library, and Hamtrax CLI. Working FT8 is unaffected — FT8 Auto-Hunt on the hunting page is the real way to do it in Hamtrax, and it hasn't changed. In the same pass, Feedback climbed out of that menu and onto the sidebar as its own row, just below Tools: telling us about a bug shouldn't mean expanding a drawer of calculators first. It opens the same form the small bug button at the bottom of the sidebar always has.

  • The setup checklist now shows progress at a glance. Its six large task circles and short connectors made the percentage feel separate from the checklist itself. One taller percentage bar now springs from zero to the current progress when the card appears, revealing a geometric origami mosaic in the colors of Hamtrax's Home artwork, with every task preserved as a clickable milestone dot on the track. As the fill reaches each completed milestone, its white dot grows from a point with a small spring bounce, so the earned run assembles from left to right. Each dot now has a compact two-line action label and a faint leader that stops just short of both the text and circle, so every label reads as belonging to one milestone without cutting into the mosaic. Both checklist surfaces drop their extra intro lines and lead with only Get Started, leaving the track itself as the single progress readout; on the floating banner, the top-right X is now the only dismissal control and permanently hides that banner. Finished tasks still collect on the left and outstanding ones stay to the right, so no milestone you have already earned ever sits behind one you have not. Nothing about the tasks themselves changed — they are still completable in any order, and the same checklist at the top of Settings → Account updates identically.

  • Importing a logbook full of DX now actually fills your DX folders. DX Chasing shipped able to file imported contacts into country folders — but only ones Hamtrax itself had written, because it looked for a SIG=DX tag that no other logbook produces. SIG is ADIF's field for a special-interest activity like POTA or SOTA; country chasing has no such tag, and a DX contact exported from N1MM, Log4OM, HRD, WSJT-X, or pulled straight from QRZ arrives carrying the standard DXCC entity number instead, or just a COUNTRY name. The result was a chaser with thirty years and two hundred entities in a file importing the lot into Needs Filing and finding their DX Chasing card empty. Hamtrax now reads those contacts the way the rest of the app already did — the exact rule that decides whether a country counts as worked on your DX tab — and files each one into its UTC-month DX folder. It stays deliberately narrow: any other program's tag on either side still wins, so a SOTA contact stays SOTA and your own activation stays an activation; the entity has to be a real current one from the official ADIF list; and contacts in your own country are left alone, because nearly every logger stamps DXCC on domestic contacts too and filing those would bury the DX you actually chased. Your existing folders are untouched — re-import the same file and the contacts you already have are still skipped as duplicates.

  • Working the same country twice in a day on different bands no longer loses the second contact. Hunted contacts are kept once per station, per reference, per UTC day — the rule that stops a re-import or a double-tap from doubling your log. DX inherited it, and for DX it was wrong: DXCC credit is awarded per band and per mode, so working Poland on 20m in the morning and again on 40m that evening is two separate achievements, and the second was being turned away as a duplicate — at the Contacted button and silently inside every import. Each program now states how its own contacts are counted: POTA still scores one per park per UTC day whatever the band, and DX counts a contact distinct unless the station, country, day, band, and mode all match — and when a duplicate is skipped, the rejection notice and the import Review step now name the skip in that program's own words rather than POTA's. Nothing you already logged changes; contacts that used to be refused can now be logged.

  • The live DX feed is now open to anyone, no account needed. The public site's tab strip was Home, Hunt, and Activate, so all of DX chasing sat behind a sign-up — a visitor curious about what "DX" even means had to create an account to find out. A fourth tab, DX, now sits after Activate and shows the live DX cluster feed exactly as a signed-in chaser sees it: every spotted station on the world map with its country flag, the same filters, and the same country detail view, under a line explaining what DX chasing is for anyone meeting the term for the first time. Logging a contact is still the moment Hamtrax asks you to create an account, and the New Country badge stays signed-in only — with no logbook to read, marking every country new would be a claim with nothing behind it. A shared link to the DX hunt feed lands on that tab now too, instead of quietly opening Parks on the Air, and the browser tab reads DX - Hamtrax so a crowded window still says which program you left open. Signed-in navigation is unchanged. See the DX Chasing guide.

  • Every pin on the activation detail map now tells you who it is. The spotter map inside a POTA activation's detail view has always drawn arcs out to the stations reporting the activator — but for much of the world it couldn't name where they were: the prefix table behind it knew only 67 countries, so a spotter from China, Russia, Ukraine, Portugal, or most of Africa and the Middle East showed no country and no flag at all. Hamtrax now carries the complete ITU call-sign series — every prefix block in amateur use — so hover over any spotter marker and its popup reads like a log entry: country flag and name, their city or grid square, their callsign, and the operator's name, with a click pinning it open. The activator's own gray pin joins in too: it used to be a bare callsign label, and it now answers the question you opened the modal with — who is this? — with the same flag, country, name, and location the spotters get. The bigger prefix table reaches everywhere Hamtrax falls back to a callsign's prefix for a country, so the spotter list view, folder DX summaries, and shared contact maps also name countries they used to leave blank.

  • Your Showcase now reads by program, not by kind of folder. It used to be two cards — Activations and Hunting — which was fine when Parks on the Air was the only program, and stopped being fine the moment there were two: your POTA months and your DX months sat in the same card, under the same heading, and the card's title told you nothing about which was which. Your Showcase now has one card per program you use, titled with the program's own name. Parks on the Air holds your activations and your hunting together, under headings inside it, and each heading keeps its own Show all window so a busy activation year can't crowd your hunting off the card. A program that only hunts, or only activates, has nothing to disambiguate and shows its folders with no heading at all. DX Chasing gets a card of its own — a month card can say "March 2026, 12 contacts" and nothing about countries, which is the only thing DX chasing is about, so its months stay in the Logbook where they read properly. In their place the card shows a world map of everywhere you've worked. All time · whole logbook sits above it so a map on the same profile as your DX months can't be read as one month's haul. The public/hidden pills moved with their headings, and everything you had already hidden stays hidden. + Activation and Find activations now belong to the program card and only appear for a program that actually offers them, so you'll never again be offered an activation from a program that doesn't do activations. And a folder whose saved program can't be resolved is no longer quietly absorbed into whichever card looked closest — it's left off the Showcase entirely, and lives in the Logbook under Unrecognized program, where it can be found and fixed instead of misfiled.

  • Park Explorer — browse every park in the world without starting anything. Wanting to just look at parks used to mean pretending to start an activation: open Activate, open the setup form, and pan its map. The Parks on the Air group in the sidebar now has a third entry, Park Explorer, that puts the same clustered world map of all 90,000+ POTA parks on its own page — no session, no gear form, no Start button, nothing to accidentally commit to. Tap any park for the full detail view: photo, current weather, activation history and success stats, and the popular-park facts. Search by name or reference to fly straight to a park. Once the catalog finishes loading, any real Location Hamtrax already has from your selected callsign, device GPS, or manual method now frames you and the three closest parks with a little breathing room; choosing that opening frame does not request a fresh fix, and without a resolved location the map stays on the world view. Tap Find parks near me when you want a fresh device GPS fix and a nearest-first list within fifty miles. If your browser blocks that request, Park Explorer falls back to your saved Hamtrax location — the same one its map already shows — and tells you it did, instead of showing a location pin and a "location is blocked" error on the same screen. When browsing turns into a plan, Activate Here on any park lands on activation setup with that park pre-filled. See the new Park Explorer guide.

  • A folder listed under "Unrecognized program" can now be repaired in place. If an activation folder ended up there because its saved park was a park name where a reference like US-1234 belongs, it used to be a dead end: the folder sat outside its program card refusing new contacts, and Wrong park? — the one tool that could have fixed it — refused to run, because it required the folder to already have a valid park before it would change the park. That catch-22 is gone. Open the folder, tap Wrong park?, pick the real park, and Hamtrax re-stamps the folder and every contact inside it together, exactly as it does for any other correction; the folder rejoins its program and starts accepting contacts again. The protection against two people editing the same activation at once is unchanged.

  • Renaming an activation folder is finally safe. Activation folders are named with POTA's own log-filename convention, so plenty of operators rename them to something they'd actually recognise — "Spring Mountain Trip" rather than KO4ZRE@US-5524-20260319. For folders created by older versions of Hamtrax that quietly cost you something: those folders kept their identity in the name, so renaming one erased it. The folder dropped out from under Parks on the Air, and — worse — stopped accepting new contacts, with nothing on screen explaining why. Renaming now pins the activation's identity down first, so the folder keeps its submission identity for ADIF downloads, keeps its place under its program, and goes on taking contacts, whatever you call it. Folders written by recent versions were never affected and are left exactly as they are. The one name Hamtrax now turns down is a label that impersonates a different log — a name in the callsign@reference-YYYYMMDD form claiming a park, date, or callsign the activation doesn't have — which would leave the folder advertising one activation while every contact inside says another. It says so in the rename box and points you at Wrong park?, which is still the one route that moves the reference and every contact together.

  • A frequency typed the way the dial reads now logs as MHz. Hamtrax's frequency fields are labelled in MHz, but plenty of operators type what's on the radio — 14250 rather than 14.250 — and the contact used to keep that number exactly as typed. It then read as a frequency a thousand times too high, came out with no band beside it, and exported an ADIF FREQ value that the standard defines as MHz, so other logbooks and award programs read it wrong too. Frequencies are now converted to MHz as a contact is saved or edited, wherever you logged it — the hunt panel's manual card, the contact form, the CLI — and ADIF and CSV exports convert on the way out as well, so contacts already sitting in your log export correctly without you touching them. Genuine microwave contacts are safe: 1296, 2400, and 10368 are real 23cm, 13cm, and 3cm frequencies and stay exactly as typed — and those bands now fill themselves in where the band used to come up blank.

  • DX Chasing is here — a second program beside Parks on the Air. The sidebar's Hunt entry is now two: Parks on the Air, exactly as before, and a new DX Chasing tab, marked by its own globe-and-radio-signal crest, that shows live spots from the worldwide DX cluster network, each with its country flag and name. In the Logbook, every activity row now shares one comfortable minimum height: POTA's Activations and Hunting parents align with their unbadged child folders, activation rows still grow for multi-line park and date details, and safely resolved DX months use that same height with the DX crest to the left. The crest follows into the folder detail view, where the type line reads Monthly DX Folder and both the compact and full Add DX Contact forms ask for a Country/DXCC entity instead of borrowing POTA's worked-station park field or monthly-folder copy. Countries are strict DXCC entities from the official ADIF list, a spot for a country your logbook has never seen carries a blue New Country badge in the same top-right corner on every card, read from your whole logbook — countries you have already worked stay unbadged, so a glance down the feed shows only what is left to chase — and a Hide my country filter (on by default) keeps the feed showing only actual DX. Log a spotted station with one tap — or an unspotted one from the manual card's country picker — and it files into a UTC-month folder under a new DX Chasing card in your Logbook, which appears with your first DX contact — never before, except on a brand-new, empty logbook, where every installed program's card shows as a starting point. DX months and POTA months stay strictly separate under the same hygiene guardrails, imports route contacts into those folders automatically, and logging a foreign POTA activator in both tabs keeps both records — park credit and country credit are different achievements. Every DX contact also records its country and official ADIF entity number on the QSO itself, so it exports complete to other logbooks and award programs and shades that country on the world map atop your profile's DX Chasing showcase card. Manual DX and POTA entry now requires a resolved program target, treats that target as the worked-station location, preserves compact/full mode and payload semantics, rejects future contact times, and keeps a failed draft open until the local QSO write succeeds. See the new DX Chasing guide.

  • Every DX spot now opens the country behind it. Tapping a DX spot — anywhere on its row, or see details on its map pin — used to do nothing at all: no detail view, no error, nothing. It now opens the country, not just the station — though it opens on the station, because that's the part you can act on: the country's flag, name, continent, callsign prefix and DXCC number head the lower half of the view rather than sitting above the one button you came to press. You get the station's frequency and mode with the same band-plan warning POTA hunting shows; the operator's name and location, tappable through to their full details; the same Tried / Try Later / Contacted actions as the list row; and every other time the cluster reported them. Then the country half opens with freely licensed photographs of the place from Wikimedia Commons, each crediting its photographer, and a Country facts section closes it — nothing to expand — with available details such as capital, founding date, GDP per person, main religion, main exports, languages, government type, area and population. Each fact pairs its value with a tiny colorful illustration, making the grid quicker to scan. Entities that aren't countries get their own Entity facts instead — who administers them, whether anyone lives there, when anyone last put them on the air, and why they're rare to work — and never borrow a parent country's economy; the Canary Islands will never show you Spain's GDP. Fact availability varies by entity, so unavailable details are omitted and an unresearched entity shows no facts panel rather than a grid of blanks; facts themselves read in English while the labels around them follow your language.

  • "Add your call sign first" now drops you on the call sign box itself. Logging a contact needs a callsign on your account, and if yours isn't set Hamtrax says so and offers a Settings button. That button used to leave you at the top of Settings → Account to go find the field yourself — and on a phone the call sign box sits below your setup checklist and your profile photo, so the one thing you had just been asked for was off the bottom of the screen. Pressing Settings now scrolls straight to the Call Sign box and puts the cursor in it, so you can start typing the moment the page settles. This is the same prompt everywhere it appears — hunting a spot, the activator popup on the map, entering a contact by hand, and importing an ADIF file — so all of them land you in the same place.

  • Hamtrax for Android is one tap from the home page now. The landing page carried a single App Store badge, so the app was one tap away if you were on an iPhone and a name to go search for if you weren't — and the docs still told Android visitors the app was awaiting Google Play approval, long after it had gone live. A Get it on Google Play badge now sits directly beside the App Store one, drawn to the same size, outline, and type so the two read as a pair rather than one badge and an afterthought. Both still disappear inside the installed apps, where a "download the app" link has nothing to open. The docs pages that described Hamtrax as iOS-only now say iOS and Android.

  • Operator names now fill themselves in instead of staying blank forever. The name that reads beside a callsign — on Logbook contact rows, live spot cards, the sidebar hunt match, and map popups — was only ever read back from the shared store of callsigns Hamtrax had already looked up. If that store had never seen the call, nothing went out to the callbooks to find it, so the name simply stayed empty for good; and because entries were discarded once they passed 30 days, a name you had been seeing could quietly vanish and never come back. Those names now look the operator up for real when the store comes up empty, and the answer is saved back for everyone, so a blank fills itself in once and stays filled. An entry past 30 days is kept and used rather than thrown away — served straight through where speed matters, and re-checked against the callbooks where it doesn't — so an older name still reads through a callbook outage, and a call that has since left the registries keeps the name it always had. The lookups wait for whatever you are doing to settle and back off on their own when the callbooks are busy, so nothing on screen slows down for them. One gap remained: a foreign or special-event call that the first callbook simply doesn't carry — and the DX cluster is full of them — used to end the lookup right there as a failure, so the DX country view, spot cards, and callsign details showed no operator at all and quietly kept retrying a question that already had its answer. A miss now just means the next callbook gets asked — portable calls fall back to their base call along the way — so a DX operator's name and location appear whenever any of the callbooks knows them, a call none of them carry reads as a plain not-found, and "couldn't finish, try again" is reserved for the day the callbooks are truly unreachable. That same shared callbook data now seeds the universal callsign dossier, which never infers Hamtrax membership or opens a Showcase.

  • Your location now stays where you put it. Setting your location — pulling it from your callsign, taking a GPS reading, or dropping a manual place, grid square, or coordinates — saved correctly on the device you set it on, but the copy kept on your account was written under names nothing could read back. The setting therefore looked right until something made Hamtrax read your account again: sign in on a second device, reinstall the app, or come back after the browser cleared its local copy, and Location read No location set or quietly reverted to an older one. The same save carried your callsign-derived coordinates, so the picker could insist No location found for your callsign for a call with a perfectly good registered address, and your band plan's agency and license class could come back blank the same way. Locations are now written in the shape Hamtrax reads back, so one save really is your location everywhere — Settings, the hunt panel's Station setup → Location, and the contact form alike — and it follows your account across devices. Accounts saved the old way are repaired in place, so a location that had vanished comes back on its own instead of needing to be set again.

  • Every link on a Showcase is now checked before it's a link. Your folder livestream links and your social links are typed by you and then shown to anyone who opens your Showcase — and Hamtrax used to hand the stored text straight to the browser as the link, so a value that wasn't really a web address could still be clickable, whether it came from an older build or was written from outside the app. Hamtrax now resolves every one of those links itself first — folder livestream links, the social pills, and the photo credit under a park photo — and anything that isn't an http or https address stays on screen as plain, non-clickable text instead. You can still see exactly what's saved, and ordinary links behave exactly as before.

  • The Logbook's List / Map / DX switch moved to the left. It used to hang off the far right of the contacts row, separated from the Contacts heading it belongs to and from the contacts underneath it — and on a phone that parked the three most-used views in the corner your thumb reaches last. The switch now lines up directly beneath the heading, on the same edge as the contact rows, so the whole section reads as one column. During Bulk Edit, that switch fades in place while Select all / Clear all sits in the sticky bottom toolbar directly beside the selected-count label; the folder's Equipment, Images, Stream Links, and Notes strip also steps out until you cancel or finish, moving the contact controls up and keeping the screen focused on the rows being changed. Nothing about what the three views show has changed.

  • You can finally decide which Hamtrax emails you get. Nearby-activation alerts, parks-near-you, product announcements, and review asks each have their own switch under Settings → Preferences → Notifications — a section that used to hold nothing but the iOS push toggle and is now on every platform. Every one of those emails also carries an unsubscribe link, and Gmail and Yahoo show their own one-click control on it; both work without signing in, and a link from an old archived email still works years later. Turning one off never touches the others, and any opt-out you had already asked for by hand is carried over untouched. Password resets and account notices are transactional and always arrive.

  • The folder guardrails now hold even outside the app. Hamtrax has always refused to file a contact into a folder it doesn't match, but that refusal lived in the app — a stale or tampered client writing straight to storage could slip a contact into a park it never worked, or quietly re-point a finished activation at a different park and mismatch every contact already inside it. Storage itself now turns both away: a contact whose park or month contradicts its automatic folder is refused, and an automatic folder's park and month identity are frozen once it exists. Notes, photos, stream links, and Wrong park? are all untouched — the one sanctioned way an activation's park changes still moves the folder and every contact in it together. Renaming stays free-form too, with one narrow exception added since (below): a name that impersonates a different activation.

  • Signing in with Google is quick now. Tapping Sign up with Google could leave you waiting twice over — once before Google's account chooser appeared at all, and again after you had picked an account — long enough that an operator sat through half a minute of it and refreshed the page twice, assuming it had frozen. Three separate things were sitting in that gap. The handshake ran through a Google-owned firebaseapp.com address, so your browser had to fetch a loader script and stand up a hidden frame on a second domain before it could so much as ask Google who you were; it now runs on hamtrax.com itself, which is also the name Google's chooser shows you when it asks which account to continue with. Hamtrax was also downloading an 838 KB map of every country's borders on each sign-in, purely to work out which country your coordinates fell inside — a question your account already answered when you set your callsign, so it isn't asked anymore. And the rest of the app waited for sign-in to finish before it started loading at all; it now begins the moment you reach for the button, so it is ready by the time the chooser closes. Google's chooser itself no longer waits on the logbook: opening the window needs only the sign-in code, but Hamtrax used to hold it back until the whole storage layer had loaded too — around 143 KB of code that sign-in does not touch until after you have picked an account. That now loads while the chooser is open rather than before it can appear, which on a slow connection is most of a second off the wait before Google even asks who you are. On a phone the effect is larger still: the head start used to depend on a mouse hovering the button, which no touchscreen can do, so a tap paid for every one of those downloads on the spot. Phones now warm the sign-in code quietly in the background once the page has settled. Coming back to Hamtrax already signed in is quicker for the same reason — the page now asks for the code that restores your session while it is still reading the page itself, rather than after. A quieter fix came with it: on a browser with a strict popup blocker, the button used to look like it had simply done nothing, because the block landed while the page was still fetching the code meant to handle it. Apple accounts travel the same path and picked up the same improvements. Nothing about the sign-in screen itself changed — this is the same flow, without the wait.

  • The password reset page is Hamtrax's own now. The reset link used to hand you off to a generic Google-branded form on a firebaseapp.com address — an unfamiliar domain in an email asking for a new password, which is exactly what you have been trained not to trust. The link now opens hamtrax.com, wearing Hamtrax's own dark chrome, and tells you which account it is about to change. Choose the new password, confirm it, and you are signed straight in — no second trip to the sign-in screen. Expired and already-used links now say which one they are instead of failing blankly.

  • Password reset works on iPhone again, and it's easier to find everywhere. Tapping Reset your password in the reset email on an iPhone with Hamtrax installed used to open the app and then do nothing at all — no reset screen, no error, no explanation — because the app was claiming that link without knowing what to do with it. Reset links now open in your browser and finish properly. The iPhone sign-in screen also gained a Forgot password? link, which it never had — right under the email box on the first screen — and on every platform a failed sign-in now offers Forgot password? right inside the red error message, already filled in with the email you typed. If you're on an older build, update Hamtrax from the App Store — or open the reset email on a computer — and the link will work.

  • A save the cloud refuses now says so, instead of quietly vanishing. A contact could pass every on-device check, show its green "logged" confirmation, and only later be permanently refused by the cloud guard — and nothing told you. The hunt panel's quick-add and manual card reset as if the save had gone through, and the contact simply left the log. Any such rejection — a new contact, an edit, or a delete, hunted or imported — now raises a warning the moment it lands, pointing you to Needs Filing, where the contact has been waiting all along (that part was always true; you just were never told). Two silences are deliberate: retrying from inside Needs Filing answers on the review row itself, and a refused automatic folder speaks through its rejected contact rather than announcing twice. One more thing stopped being sticky: after the cloud refused a monthly folder's creation, every later hunt that month kept failing against the dead folder until you reloaded the page — the next save now simply creates the folder again.

  • Needs Filing now tells you what it is holding -- and whether your fix worked. A rejected contact used to show one bare reference with no label, so your own park and the worked station's park looked identical, and a reference from a program Hamtrax could not place read as a POTA park. Each review row now names your reference and the worked station's reference on their own labelled lines, and an unrecognized program stays neutral instead of borrowing POTA's. It also identifies the contact by callsign and available date, band, and user-facing mode, then gives a plain outcome, reason, and next step instead of exposing an internal id or raw server error. A delete for a contact already absent now completes and clears any legacy review row rather than presenting a meaningless failure. Filing one is honest too: the folder picker greys out All Contacts and the Activations / Hunting headings -- destinations that can never hold a contact -- and Save now confirms the filing or plainly explains why the guard refused it, where before it simply did nothing at all. The full contact form also stops defaulting every monthly folder to POTA: guarded folder identity imposes that program's target control, and only a real selected target stamps its activity identity. And the hosted API's contact-create endpoint now carries activity identity -- sig, sigInfo, mySig, and mySigInfo are accepted -- so a contact filed into a hunting month arrives with its program attached instead of anonymous.

  • Activation log downloads now keep the right submission name. Downloading an activation ADIF from its Logbook folder now uses the stored CALLSIGN@REFERENCE-YYYYMMDD.adi identity even if you renamed the folder for display. File, activation, QRZ, cloud auto-push, and HamQTH exports also share one activity-field serializer, so POTA's MY_SIG / SIG references cannot drift between export paths.

  • Contacts and activation sessions from different activity programs no longer interfere with each other. Saving, importing, or editing a hunt now compares the activator's callsign, activity program, normalized reference, and UTC day, so two explicit activities may share the same callsign, reference text, and day without blocking each other. Imports retain that program through routing and folder stamping; future sibling monthly folders cannot absorb contacts from POTA. The compact manual duplicate warning uses the canonical Hunt write key too — POTA by UTC day, DX by UTC day plus band and mode — independently of the live 10-hour Contacted badge. Within that 10-hour window, Contacted and its QSL and undo actions use the same program, callsign, and normalized-reference identity, so another program's contact cannot paint, open, or delete the POTA hunt. Editing the backing contact moves the status immediately without a reload. Tried now uses that identity too, so marking or undoing an attempt—and clearing it when the contact is logged—affects only the matching activity program. Try Later is program-isolated as well while remaining a separate browser-local ten-hour marker: saving a QSO does not clear it, and FT8 Auto-Hunt does not set it. Browser recovery now requires the same signed-in account, activity program, and exact activation before Hamtrax restores, patches, finishes, or removes a saved session. Existing POTA Hunt and Activate bookmarks keep working unchanged; malformed or unsupported activity-program links now stop safely instead of silently opening POTA. In a program-bound monthly full form, the THEIR target lookup follows the selected program and ordinary My Location choices remain available, but From Park is visibly disabled with activation guidance: MY activity identity makes the contact activation/P2P-owned and the monthly write guard rejects it. Re-selecting the current POTA target keeps its resolved location intact; both activity autofills keep valid coordinates on the equator or prime meridian, and when POTA does not supply a country Hamtrax leaves it unknown instead of guessing from an unrelated radio callsign prefix. Older activation folders with no stored grid now recover their map and QSL origin only through an unambiguous activity-program catalog, so a same-looking reference from another program cannot borrow POTA coordinates. Using Drop & refresh now updates POTA park search and maps in the current tab before reporting success, so older cached park data cannot linger there after the catalog is replaced. Park images and their session cache now use that same explicit program and normalized reference, so a same-looking sibling cannot inherit POTA photography or a cached no-image result. Live spots now keep each installed program's feed, cache, freshness, and Hunt readers separate behind one refresh cycle, so a future sibling cannot overwrite POTA rows, collide on a provider spot ID, appear in POTA manual/sidebar matches, hide a POTA feed failure, or start a competing poller; this is the separation the DX Chasing feed now runs on, and POTA's feed looks and refreshes exactly as before. The per-spotter history behind those live rows now follows the installed program's own reference rules and event identity too, so a future sibling cannot split one activation across aliases or overwrite POTA reports; current POTA history, comments, ordering, and expiry remain unchanged. An operator's activation spot history now uses account, selected program, and activation ID across browser-local and cross-device storage, so a future same-ID sibling cannot inherit, overwrite, clear, or race POTA's timeline and last-spotted frequency. Existing POTA browser data migrates in place; the released cloud record remains a compatibility mirror for older clients; concurrent new clients append distinct spot events instead of replacing canonical history; and offline history can still hydrate. A busy, unreadable, or malformed browser cache is preserved instead of being mistaken for empty and overwritten. Finish now secures one stable spot snapshot before ending: either browser or complete cloud storage can safely finish, the browser wait is bounded, only a copy confirmed by both stores is cleared from the browser, single-store copies stay available for retry, cleanup never delays leaving the finished screen, and if neither store confirms the save Hamtrax keeps the activation open and asks you to try again. Hunt and Activate spot commands now pass through one program-qualified semantic seam while the POTA adapter remains the sole provider writer. Hunt saves the QSO before its optional respot and reports spotting only after provider acceptance; a failed spot cannot erase the contact. Park-to-park autofill also requires one unique recent program/reference identity, so ambiguous matches stay blank for manual selection instead of silently choosing the wrong activity. When an activation contact carries another program's reference, it still stays in that activation's one folder; Hamtrax keeps the other reference for export without calling or courtesy-spotting it Park-to-Park. Clearing Their park while editing now stays cleared after sync instead of the old reference returning. Activation qualification now comes from each program's Activate module instead of a shared POTA-shaped contact count. A program can declare a fixed target, evaluate its own rules, or deliberately show no qualification progress; POTA keeps the same 10-contact bar, below-goal Finish confirmation, qualification celebration, and review-prompt eligibility, while another program cannot inherit POTA's rule. Park Detail's activation, attempt, and QSO totals now use that same explicit program and normalized reference, so a future sibling cannot supply POTA's counts; current POTA totals and the zero-stat invitation look unchanged. Own and public Showcase folders now use the same guarded program, reference, and month identity, so a future sibling's qualified folder key cannot leak into its label or borrow POTA enrichment. Older activation or monthly folders whose stored identity cannot be safely resolved are left off the Showcase rather than guessed as POTA — they stay visible under their saved name in the Logbook — the green Active marker now follows the folder that is actually open, and profile cards no longer request POTA callsign statistics that were never displayed. Activation and hunting cards are now grouped and paginated independently by that identity, and public summaries keep a separate bounded window for each installed program, so one program cannot crowd another out. Optional activation names and locations now come from the selected program's catalog through one shared presentation seam; current POTA cards and their detail titles remain unchanged. QSL cards and shared folder maps now use that same guarded program identity for reference labels, activity names, and optional artwork. Unknown or contradictory references stay neutral instead of borrowing POTA's Park Reference label, catalog name, or park/grove/eagle decoration; safely resolved same-looking sibling references use their own program's label and catalog without POTA artwork. Existing POTA images keep their layout and styling, and the reference label follows your selected language. Logbook and Showcase contact rows, map pins and popups, DX summaries, and operator origins now use one QSO-qualified MY/THEIR presentation too. Same-looking sibling references keep separate names, marker decoration, coordinates, and DX credit; unsafe records stay visible but neutral, while current POTA rows, pins, popups, arcs, and totals remain unchanged. The Logbook folder tree now groups automatic folders by that same identity. Instead of one fixed heading printed above every automatic folder, each installed program gets its own collapsible card named from that program — split into Activations and Hunting sections when a program does both, while a hunt-only program lists its months directly on the card with no subheading — so a future sibling's folders can never be listed under POTA's name. For a POTA-only logbook the tree looks the same, with the heading now reading Parks on the Air — and this per-program grouping is what the DX Chasing card now slots into. An automatic folder whose saved identity cannot be safely resolved is listed under a neutral Unrecognized program heading rather than shown as POTA's; it keeps its name and contacts and stays selectable, exportable, and deletable. Custom folders are unchanged.

  • France, Norway, and Taiwan read as countries again. Hamtrax builds its country names and flags from a world-boundary dataset, and that dataset quietly files those three under a placeholder instead of their real country code — so a park or contact in any of them showed a bare FR, NO, or TW with no flag, while every neighbour got a full name. All three now resolve properly everywhere a country appears: NO-IN reads Norway, Innlandet. Small territories the boundary dataset doesn't carry at all — Monaco, Gibraltar, Hong Kong and about seventy more — now fly their own flag wherever their country name is known; a bare region code from one still reads as its prefix rather than a guessed name, and the region half stays exact either way.

  • The callsign number row now stays in the activation logger. The extra 0–9 strip used to appear over the keyboard in every callsign field — including sign-up, Settings, Logbook forms, Hunt, and filters — where it often covered useful space. It now appears only in the live activation Add Contact panel, where fast mixed letter-and-number entry matters during a pileup. Your existing Settings → Preferences → Contact Entry switch still controls it there.

  • Your radio and antenna now follow you through the whole app. Hunt, Activate, and every new-contact form used to keep separate ideas of which gear was selected, so switching tabs could show a different radio or antenna and make a successful choice look lost. They now share one current setup: pick gear anywhere and it appears everywhere, including while a hunt is being routed into an activation. Rig Manager is simply your saved equipment inventory — there are no default stars or hidden first-profile choices — and a new contact snapshots what is selected when you save it, so changing gear never rewrites older QSOs.

  • The Logbook now shows you the photo slots you haven't filled. A folder holds four photos, but the Images column only ever showed the + button and whatever you'd already added — so an empty folder looked like it wanted one photo, not four, and there was no sign of how much room was left. All four slots now sit there as a 2×2 grid: + in the top-left corner and quiet placeholder squares waiting in the rest. Photos fill in around the + and take over its corner with the fourth, and deleting one shifts the others up a slot so the empties always sit at the end. Nothing about adding, deleting, or the 4-photo limit changed — you can just see the whole shape of it now.

  • Your logbook now reads on radio time. Ham logs run on UTC — every contact is stored and folder-organized by its UTC day, which is why an evening hunt west of UTC lands in the next month's folder right after 0000Z. But the contact rows displayed your local day, so that same contact could read "July 31st" while sitting in "August 2026" — organized correctly, looking wrong. Rows now show the stored UTC day and z-suffixed 24-hour time (02:22z — ham shorthand for Zulu) by default, the exact identity their folders are keyed by, and hovering a time shows your local clock; the date filter, exports, and the map popups window and label on those same UTC days. Prefer reading local? A new Settings → Preferences → Logbook → Show my local time toggle flips every row to your local timezone and moves the UTC value into the hover tooltip. Display only, either way: stored dates, folder names, exports, and the hygiene guardrails stay UTC.

  • Home-page story text now sits in a readable card everywhere, and it no longer vanishes on smaller tablets. The What is Hamtrax value points used to float as bare text over the grass, and the guided chapter callouts only got their bordered card on phones — on tablets and desktops they were bare text too. Both now use one shared card at every browser size. On tablet-sized and short, wide windows the value points were worse than hard to read: the phone filled the whole stop and pushed the heading and all three points out of sight entirely. That size now places them in the same right-hand rail the chapter callouts use, so the copy is visible at every browser size.

  • The origami figure above the first Anatomy chapter is gone. The POTA All the Time chapter opens on its title and progress row alone, and the artwork no longer downloads when you visit hamtrax.com.

  • The grassy home-page story now has a clean celestial sky. The empty black space above the prairie now carries lightweight realistic planets and stars in the hero's colors. The landscape fade still belongs only to the prairie, so no horizontal band crosses the sky while the grass blends in naturally.

  • The Anatomy tour no longer fans every chapter's gold line at once. Each guided chapter draws one connector from its highlight ring out to its caption card, but in some browsers the hidden chapters' lines painted too — a bundle of stray gold lines radiating from the point beside the card where they all meet. The reveal now draws only the geometry that should be visible, so exactly one line wipes in per chapter in every browser.

  • Empty Showcases now help you start the story. Equipment, Activations, and Hunting each have lightweight field-radio artwork, clearer empty-state copy, and direct shortcuts on your own Showcase: add a radio or antenna, start an activation, or find one to hunt. Public visitors see the same story without editing controls.

  • The Pro plan is clearer to compare and buy. Settings → Plans now leads with a much more prominent gold Pro identity, uses a gold-centered upgrade action that fades to red at the edges, groups price and secure-checkout cues in blue, and keeps a full red card perimeter. Free is quieter but still visible, and prices and billing behavior are unchanged.

  • The Hunt map cursor now stays steady around activator popups. Moving across a marker could make the cursor flash between the map's grab hand and the default arrow because the map canvas and its hover popup used different cursor rules. They now share the map cursor, while Tried, Try Later, Contacted, and other real actions still show a clickable pointer.

  • Map gems and their popups now stay together at world zoom. On a wide desktop map, a gem near the far left or right could ignore hover and click, or its popup could appear over the matching geography on the opposite side, because those interactions disagreed about which copy of the world was visible. Hit testing and popup placement now share the displayed gem's exact position, so edge markers behave exactly like markers in the middle.

  • Tapping Sign in no longer opens with a silent pause. On a first visit, Sign in, Sign up, and the home screen's main button had to fetch the sign-in card's code before anything could appear — on a slow connection that was seconds of nothing, as if the tap hadn't landed. The dialog now answers instantly: the page dims and a sketched card appears the moment you tap, filling in as the real thing arrives. Reopening it was always instant and is unchanged.

  • Bulk equipment changes now update the folder summary immediately. Applying a new radio or antenna to selected contacts could close Bulk Edit while Top Radio / Top Antenna kept showing the old gear. The saved contacts and folder summary now update together, and Hamtrax reports an error instead of claiming success if a selected contact is unavailable.

  • Log a contact once and your QRZ logbook keeps itself current. QRZ is the shop window other hams actually check, and keeping it stocked has meant remembering to run an export after every outing. Now connect QRZ and flip Auto-Push New Contacts in Settings → Preferences → Integrations → QRZ Logbook, and every new contact you log — activation, hunt panel, log form, even hands-free FT8 Auto-Hunt and the CLI — lands in your QRZ logbook on its own moments after you log it; delete one in Hamtrax and it leaves QRZ too. Fix a typo in a pushed contact and the QRZ copy quietly updates itself as well, with one deliberate exception: a record QRZ has already confirmed is never touched, because no edit is worth destroying a QSL confirmation. Log from a park with no signal and the pushes simply wait with your contacts, going out when your phone finds coverage again. Imports never auto-push — a 500-row file import can't flood your QRZ book — and the toggle belongs to the specific QRZ logbook you connected, so swapping in a different book's key never carries your consent along. And nothing fails silently: if a push ever bounces — say your QRZ subscription lapsed — the QRZ panel shows exactly what happened and when, and the next successful push clears it. (Bulk history went up with Export to QRZ at the time; that screen has since been retired — download a folder and upload the file to QRZ instead.)

  • Picking a park on the Hunt map now marks its activators in the list. The map and the list have always lit each other up on hover, and selection was meant to work the same way — it never did. Underneath, the map named your pick by park while every card in the list answered only to its own spot, two names that could never be equal, so the selected card silently stayed unmarked however many times you tapped the gem. Select a park now and its activator cards are marked in the list — all of them when two operators share the park, which is the honest answer, since one gem is exactly what you pointed at.

  • A park selected the long way round is now the same park. The Hunt map kept three separate ways of naming the park you picked — one for a gem you clicked, one for a park drawn out of a zoomed-out cluster, one for a park arriving from a link or the activation park picker — and on odd data they disagreed: a park expanded out of a cluster could come back under a name no gem answered to, so the click selected nothing and the map stayed put. It all reads from one rule now — clicked gem, cluster, direct link, park picker, and the first-run practice activator name a park the same way.

  • A Hunt map crowded with activators no longer stutters. Zoomed out with hundreds of parks on the air, the map was doing three kinds of busywork. Pointing at one gem made it redraw every other gem on screen just to fade them behind it — once on the way in, again on the way out. An internal status clock redrew the whole field once a minute even while you touched nothing. And every gem sitting perfectly still was drawing its own soft glow and drop shadow from scratch — three separate blurs each, redone at every step of a zoom, which is exactly when a crowded map felt worst. That N-fold work is the choppiness you could feel on a full world map, and the reason it smoothed out only after zooming in to a couple dozen gems. All three are gone: pointing at a gem now touches that gem and leaves the rest alone, the idle clock stays quiet unless a contact actually aged out, and a resting gem is now a crisp shape over a cached shadow image shared by every gem of the same size and current color. Zooming a busy map is markedly smoother and easier on the battery, and each gem's stronger soft glow now follows its live color. It just stops doing hundreds of gems' worth of work to look that way.

  • Clicking a gem on desktop no longer drags the map along. The gem is already under your cursor, and the same click opens its detail card right over the map — yet the map still slid the world across to center that gem behind the card, an animation you paid for and mostly never saw. A desktop click now opens the details and leaves the map exactly where you put it. Touch is unchanged: a tap still centers the park and pins its tooltip, where the movement is doing real work.

  • A mistyped park number is no longer forever. One wrong digit at setup — US-2352 for US-2325 — used to be the most expensive typo in the app. The park is deliberately locked on every contact so activation folders can't drift, which meant the only way out was deleting the whole activation and logging it again from scratch. Now a faint Wrong park? button sits under the folder name in the Logbook and under the park line in the live activation header. Search the park you actually activated — the Update Park button won't arm until your pick resolves to a real park that differs from the current one — and Hamtrax re-stamps the folder and every contact in it together: folder name, park reference, the POTA fields your export carries, and the operating location the contacts were logged from. The guardrails never loosen — folder and contacts move as one, and a correction into a park you already activated that same day is refused by name rather than merged. Already uploaded the log to POTA? The dialog reminds you to re-upload it there, because Hamtrax can't rewrite what POTA already has.

  • Restarting a park you already activated today no longer makes the activation vanish. POTA counts a park per UTC day, so returning to the same park the same day continues the same activation — but starting one again used to hand the new session the morning's finished folder without waking it up. The logger ran and contacts saved, yet the hunt panel showed no green card, the Activate tab listed nothing in progress, and the logbook filed everything under a folder that claimed to be done — hours of operating that looked like they were never saved. A same-day restart now reopens that activation properly: it goes live everywhere, your earlier contacts are right there in it, and morning plus afternoon stay one honest log.

  • You can no longer walk into an activation form you can't start. With an activation already in progress, tapping New Activation used to open the full setup form and let you pick a park, set a frequency, and only then refuse at Start — effort spent to be told no. The card is now simply disabled while one is open, reading Finish your current activation first, with your open activation one tap below it; opening the form by direct link forwards you into the open activation instead, and the hunt panel's park quick start follows the same rule. Every other way in now agrees too: Activate Here is greyed out with You're already activating beneath it in a park's detail card — from the hunting map or Park Explorer — and every row of the sidebar's Parks search greys out together with that line shown once above the list, so eight identical buttons don't repeat one sentence eight times. The one place the button stays live is inside activation setup itself, where it doesn't start anything: it just fills the park into the form you already have open.

  • Hunting from inside a park now counts for the park — automatically. POTA calls a hunt made from a park a park-to-park QSO, and ten of them in a UTC day is a valid activation — but other logbooks leave you sorting that out by hand afterward. While exactly one of your activations is in progress, every contact you hunt now files into that activation's folder as a park-to-park QSO, stamped with your park; a green You're activating card names the park and folder the whole time — taking over the editable Location row and Spot control in the hunt panel, since the activation already answers both — and ending it returns hunts to monthly filing. Starting begins at the bottom of the Hunt panel's Location picker: tap Hunting from a park?, let the picker close, and the Hunt card scrolls back into view if needed before sliding aside for the park form — a full travel now, not a half-slide that dissolved before it arrived, and it holds together whether or not an activation starts underneath it. A Select Park heading names the one step there is, with the nearest-park shortcut on the same line, and the field shimmers gold until you name a park. Search by name or reference, or explicitly tap Find Nearest; that one tap fills a blank field when you're within half a mile or opens the nearby list otherwise. Then tap Start Activation. No setup form, no frequency to invent, and no POTA spot is ever posted from here, so you can keep hunting quietly.

  • The Logbook's folder Add Contact card now steps in cleanly. Tapping Add Contact on a folder swaps its action buttons for a quick-add card, and that swap used to dissolve partway across — the buttons were already invisible while still travelling, so the card looked like it blinked into place rather than sliding in. The two now hand off by movement alone, on every folder type. With reduced motion enabled it still cross-fades, unchanged.

  • An activation that runs past midnight UTC no longer splits in two when you import it. An evening outing west of UTC crosses 0000Z almost every time, and the live logger has always kept those contacts together — but importing the same session from a file cut it into two activation folders, one per UTC day. Hamtrax now matches each imported contact against the sessions already in your logbook and files it into the activation that actually recorded those hours. Two genuinely separate sessions at the same park still stay apart, and a file whose contacts cross midnight with no matching activation in your logbook still splits by UTC day — there's no recorded session to rejoin, and Hamtrax won't guess where one ended. Importing more of a session also now extends that activation's recorded start and end times instead of leaving them frozen at what the first import saw.

  • Imported activations now show when you actually operated, and stop pretending to be live. An ADIF or CSV file records the date and the time in separate fields, and Hamtrax was reading only the date when it worked out an activation's start and end — which is midnight. So a folder built from an imported file had no real times in it: an activation you ran at 7pm could show a start time of 00:00, and because its start and end looked identical, Hamtrax read the whole thing as a single instant rather than a finished session. That last part is why an activation you imported from years ago could sit in your Logbook wearing the pulsing green Active badge with a Resume Activation button, as though you were still on the air at that park. Both are fixed: imported activations carry the real times from the log, and a finished one reads as finished.

  • The maps stopped working while you weren't. Both the Hunt map and the activation setup map kept redrawing themselves at full speed even when nothing was happening on screen — the setup map repainted roughly a thousand times a second sitting untouched, which is the sort of thing you feel as a warm phone and a long battery afternoon in the field. Two effects were running forever after they finished being useful: the shimmer that traces the Select a Park pill and the input fields, and the scattered marker glyphs that fill the map while it loads. The shimmer now spins the same way for a fraction of the work, and the loading glyphs pack up once the map is ready. Nothing looks different; the setup map now does essentially no drawing at all while it waits for you.

  • The Hunt panel can now open on the band and mode you actually hunt. New settings under Settings → Preferences → Hunting — a Mode and Band pair under Hunt panel defaults for each hunt program — seed that program's filters, so the live list arrives already narrowed to your corner of the spectrum instead of making you set it every session. Each program keeps its own pair: the bands you chase countries on aren't the bands you hunt parks on, so Parks on the Air and DX Chasing each remember theirs, and switching tabs swaps them in. Everything starts at No default for every new and existing account, so nothing changes until you pick one (a Mode or Band you had already saved carries over as your Parks on the Air default). You can still change either under Filters in the panel at any time, and the faint Clear action in the Applied: row beneath Refresh and Filters removes the current band and mode filters without changing your saved defaults.

  • CW Training now sends real groups, not just single characters. A new Characters per group control under Prompt shape sends 1 to 5 characters as one continuous Morse run — spaced exactly as an operator would key them — then speaks every answer in order. Copying a run is the actual on-air skill: you hold each sound while the next one is already arriving. Repeats replay the whole group at the same drawn speeds, and group size is itself a range, so the length can stay fixed or vary. It defaults to one character, and repeats default to none, so out of the box the drill is unchanged and only the speeds vary.

  • CW Training now varies like a real operator. Character speed, spacing speed, and repeats are each a range with two thumbs instead of one fixed setting, and Hamtrax draws a fresh value from every range for every group. A fixed speed teaches your ear the session's rhythm; a moving one teaches it the sound — which is what you actually need on the air. Extra repeats now reach 4 (up from 3), and you can either pin them — both thumbs on the same number for a fixed count — or open the range so a second listen is never guaranteed. Spacing stops are now capped at the slowest character speed your range can draw.

  • Range thumbs are now easy to grab. The two ends of a range — CW Training's speeds, group size, and repeats — used to be twin knobs on the same rail, each answering only to an invisible thumb-sized box, and with both ends on the same value one knob covered the other completely; on a phone, grabbing either was pixel hunting. The thumbs now ride opposite sides of the rail — high above, low below, each pointing at its stop — and each has its own full-width, 44-pixel-high touch strip. Press or drag anywhere on the upper or lower strip and Hamtrax captures that gesture itself instead of leaving it to the browser's tiny invisible range thumb. A thumb also no longer stops dead against its partner: drag the low end into the high end and the high end slides along with it (and the other way round), so reshaping a range is one motion instead of two. And every range may now rest on a single value — the speed ranges used to be forced apart by one stop; pin a speed for a steady drill or open the range for variation. The only rule left is that the high end never sits below the low end.

  • Range sliders answer the keyboard properly. Every stepped slider in Hamtrax — CW Training's speeds, the hunt filters — moved a hundredth of a stop per arrow-key press, which made them effectively mouse-only. Arrow keys now move one stop, and Home and End send a thumb to the far end of its travel.

  • CW Training voices now load in the iPhone and iPad app. Opening CW Training in the installed app could report that its offline answer voice failed to load even though all three voices were bundled. Hamtrax now reads and validates that bundled audio correctly.

  • The other station's park now has a field of its own. The activation Add Contact card gained Their park, right beside the callsign. Park-to-park detection has always filled the reference in behind the scenes -- now you watch it land, pulsing in the field with the P2P badge beside the label. And for the many hunters who call you from a park they aren't activating, type or search the park yourself: suggestions lead with the park code since that's what you exchanged on the air, the field slides wider while you type, and it collapses to a compact green country code beside the bare park number when you leave it. A park you entered by hand is logged but never posts the courtesy P2P spot for the other station -- they may not be on the air calling. To make room, the card now reads in three rows: callsign and their park, mode and frequency, then the signal report and Log Contact -- with your gear (radio, inline power, and antenna) riding above them behind a single Radio / Antenna disclosure that starts expanded and tucks away once your station is set.

  • Duplicate contacts are now caught by callsign alone. In a live activation, each callsign counts once: log the same station again — even on a different frequency or mode — and its row is shaded red with the reason "Already logged in this activation." Nothing else changes: the contact is still logged mid-pileup, and the Finish tab still counts the same issues.

  • You can now finish through flagged contacts, one decision at a time. The Finish tab's red issue banner gained an Ignore and proceed anyway button beside Edit: it dismisses the issue you're looking at and moves to the next, and once every issue is fixed or ignored the finish steps light back up. Ignoring is a decision, not a fix — the contact's row stays flagged in the Log tab, an N issues ignored — Restore note keeps the count visible (and one tap from coming back) right through the success card, and resuming the activation flags everything fresh. The banner's count and buttons also now speak your language; they were English-only before.

  • Activation signal reports can now default to blank instead of 59. POTA doesn't require signal reports, and every activation contact used to pre-fill a perfect 59/599 whether or not you exchanged one — including the quick-add card on a finished activation, which stamped 59/59 without ever showing you a report field. A new Pre-fill perfect signal reports toggle in Settings → Preferences → My Activations (on by default, so nothing changes unless you flip it) lets you start every report unset instead: the report pill shows dim dashes, the picker shows ghosted digits marked not set, and your first tap on a stepper makes the report real. An unset report saves nothing, stays unflagged in the issue checker, and simply leaves the report tags out of your POTA ADIF — and anywhere in the app a contact has no stored report, the picker now shows honest dashes instead of pretending it was 59.

  • The links at the bottom of hamtrax.com work again. On desktop, Privacy, Terms, Docs, and Changelog sat underneath an invisible edge of the headline panel above them, so clicks landed on nothing. They open again.

  • The button that signs you up now looks like a button, and says what it does. The main way into an account on hamtrax.com read as a flat gold panel that plenty of visitors never took for something you press — and it was labelled Log Contacts, which sounds like a tool you'd find once you were already inside. It now reads Import My Contacts and carries shading on all four edges — a lit top, darkened sides, and a weighted bottom — so it sits up off the page as a physical cap. If you're arriving from another logger with years of ADIF behind you, that's the button. The pair of decorative mushrooms that grew in beside it were pulling the eye to the corner instead of the button, and they're gone. Every primary button in Hamtrax reads from the same raised edge, so the whole app picked up the firmer press at once.

  • The contact form's Defaults button is gone, and the form starts the same way for everyone now. A Defaults button in the new-contact form's footer used to save your current mode, signal reports, power, and activity reference to your account and pre-fill them into every contact after that. It was a second set of starting values sitting underneath the ones the form already picks for itself — and underneath everything the form learns from where you opened it, so on an activation or from a spot it was overruled before you ever saw it. What it could still reach were reports saved months earlier, quietly overriding the one your current mode actually calls for. Every new contact form now opens the same way: today's UTC date and time, SSB, and the report that matches your mode (59 for phone, 599 for CW and the other RST modes), reshaping the moment you change mode. Your radio and antenna still come from the one current-equipment selection shared with Hunt and Activate. Nothing you rely on moved — the Callsign number row toggle and Pre-fill perfect signal reports in Settings both work exactly as before, and mode still fills itself in from your band plan when you type a frequency.

  • The status buttons on a map popup now match the ones everywhere else. Tapping a spotted activator on the Hunt map brought up three unlabelled icons — a crossed-out person, a clock, and a person with a plus — where the list row beside it and the detail modal behind it both show plain Tried, Try Later, and Contacted. Same three actions, two things to learn, and the icons were the version you met first. The popup now carries the same labelled buttons inside one straight-sided card wide enough to hold all three, instead of growing temporary tabs from its sides. Pick a status and the unselected buttons still collapse away, but the card no longer jumps narrower under your pointer. The callsign, divided frequency row, color-coded mode text, and gold see details chevron give that wider card a clear top-to-bottom reading order, while the white hairline lifts the whole panel off a busy map. Every map tooltip now drops the small corner X, so nothing competes with its content or controls. Hover previews leave with the pointer; pinned popups close from empty map space, another pin, or Escape. See Finding Live Activations.

0.1.33 - July 24, 2026

  • The 0–9 callsign key row is now yours to keep or hide. The digit row that floats above the on-screen keyboard while you type a callsign can be switched off with the new Callsign number row toggle in Settings → Preferences → Contact Entry (on by default). One setting governs every callsign field — the live activation logger, the QSO form, the quick-add cards, and the Logbook filter — and it's saved to your account, so it follows you across devices.

  • Your activation now celebrates more than contact number ten. The live logger marks four counts on the way up, each with its own look: 10 keeps the single gold sweep that means a valid activation, 25 crosses two cyan beams, 50 beats the edges of the screen in tangerine as a lit curtain falls, and 100 sends two purple shockwave rings out from the centre — and the progress line flashes in that milestone's colour each time. The bar still measures only the run to a valid activation and stays full after ten. Every milestone plays once as you cross it, resuming a session that already cleared one shows no celebration, and all of it sits out if your device prefers reduced motion.

  • A contact with a problem is now shaded red while you can still fix it. On the activation Log tab, a contact Hamtrax sees an issue with — a duplicate of a call you already logged on the same frequency and mode, a callsign that doesn't look valid, a missing frequency or mode, or a time in the future — has its whole row shaded red with the reason stated beneath its callsign. These used to surface only in the Finish tab's issue banner, after you were already packed up. Both surfaces now read the same checker, so a row can never look clean while the banner counts it. Nothing is blocked: your contact is logged either way. Portable and prefixed callsigns like SV2/HB9ABCD/P also stopped being flagged by mistake.

  • You can now add all your folder photos in one browse. The + button on the photo strip — in the activation Showcase tab, in the Logbook's Images column, and in your profile's folder detail modal — opens a multi-select picker instead of a one-photo-at-a-time one. Thumbnails fill in as each upload finishes, and picking more than a folder has room for adds what fits and says so. All three now confirm the upload the same way; that confirmation used to appear only during an activation.

  • The Android app now installs with the Hamtrax beaver icon. The generic Capacitor placeholder has been removed from every launcher shape, and the Play submission icon now matches the installed app.

  • Your phone's keyboard no longer "corrects" a callsign. Autocorrect, spell-check, and saved-value autofill are now switched off on callsign, grid square, and park reference fields — every callsign field in the app included. Previously iOS and Android could rewrite a valid call into a dictionary word, underline it in red, or drop a suggestion strip over the field mid-entry.

  • The text cursor now stays where you put it in a callsign. Callsign, grid square, and park reference fields uppercase as you type (callsigns also drop characters no call can contain), and any keystroke that got rewritten collapsed the cursor to the end of the field — so tapping back to fix the third character bounced you to the end, worst of all on iPhone. Corrections now happen in place, with the rest of the call untouched.

  • The activation logger's Callsign field has cursor arrows on touchscreens. On touch devices, small chevrons flank the field on the Log tab and step the cursor one character left or right, so finishing a call you copied in fragments doesn't depend on landing a fingertip exactly between two characters. With a mouse and keyboard the arrow keys already do this, so the chevrons stay out of the way.

  • Activation folders with a recorded start time now show the local date, start time, and timezone abbreviation. The Logbook folder tree uses the activation park's timezone first, then your current Hamtrax location, and explicitly labels UTC if no local timezone can be derived. Stored UTC timestamps and ADIF-compatible folder names are unchanged.

  • Activation contacts now stay attached to their activation across iPhone and browser. Folder data loads before contact repair, and an activation ID is now the one canonical folder identity, so a fresh browser cannot mistake a still-loading activation folder for a deleted one and move its contacts into Hunting. The live activation backup keeps every newly logged contact through an iPhone app restart, queued field contacts retry after reconnecting, and Download ADIF opens the native system sheet with Save to Files. ADIF's UTC calendar date is now explained in the activation guide.

  • Shared-park Hunt markers now give every operator the full map popup. When several activators are on the same park, Hamtrax stacks the regular popup once per operator instead of collapsing them into a separate summary or chooser, so every station keeps its own quick actions, band-plan warning, and see details link.

  • Radio Control setup now follows the radio in your hand. Choose your radio first, then Hamtrax shows only its available connection methods. The app remembers the last successfully connected radio for automatic reconnects, and Tune or FT8 controls appear only when the live connection confirms support.

  • Radio Control now has a radio-agnostic live RF waterfall that returns automatically after reconnecting—no app restart needed. IC-705 Direct Wi-Fi is the first adapter for the shared centered dock. Waterfall preferences now appear before connection details, and one dock Controls menu holds all six spans, frequency step, continuous sensitivity, a color-track Noise Floor (Visual Only) threshold, optional strong-signal Logarithmic colors with a continuous log anchor, a mirrored color-range slider labeled from weak to strong signals, and optional confirmed receive-filter shading. The smaller header also shows the current mode without crowding the trace. Display adjustments recolor retained raw history instead of emptying the waterfall, while frequency and span changes reproject that same history whenever the RF ranges overlap.

  • Hamtrax now speaks Korean. 한국어 joins the language picker — switch anytime from Settings → Preferences → Language or the site header.

0.1.32 - July 21, 2026

  • POTA database update notices now show the difference from your downloaded park data. The card keeps the useful total — how many more parks the newer database has than yours — without mixing in state and country details from a separate server update.

  • Quick-added contacts now keep the location found from the callsign. Adding a contact to a finished activation or custom folder could save the operator's name but drop their grid and coordinates, blocking QSL card creation. New contacts now carry the same station location details as the full contact form.

  • The hunt map's spot popup no longer disappears on its own after you mark a status. On touch devices, tapping Tried, Try Later, or Contacted inside the popup used to auto-dismiss it about a second later — right as the confirmation toast slid in, which made it look like the toast was closing your popup. The popup now stays open, showing the status badge and its undo button, until you dismiss it: tap elsewhere on the map, tap another pin, or use the popup's close button. Both the close button and the undo button also got bigger touch targets.

  • The Hamtrax logo now takes you home. On the signed-out site, tapping the Hamtrax title and beaver in the top-left returns you to the Home tab — and if you're already on Home, it glides the page back up to the top. Re-tapping the Home tab you're already on does the same.

  • Hamtrax now prevents overlapping Stripe charges. Each account reuses one Stripe billing profile, and another Checkout is blocked while one is pending or a subscription is live. If competing completions ever race, Hamtrax keeps one subscription and immediately cancels and refunds the losing Checkout payment. Monthly or annual members are also sent to subscription management before Lifetime can be purchased.

  • Deleting your Hamtrax account now stops Stripe billing first. Hamtrax finds every recurring Stripe subscription linked to the account—even across more than one Stripe customer—cancels it immediately, confirms the cancellation, and only then removes sign-in access. If Stripe is unavailable, sign-in access remains so deletion can be retried instead of risking an orphaned charge. App Store subscriptions still need to be canceled through Apple.

  • CW Training and the microphone decoders now share iPhone audio cleanly. CW tones and spoken answers play through the built-in speaker in Silent mode when no headphones or Bluetooth audio route is selected. Starting CW Decoder or FT8 Decoder still opens microphone capture; stopping the decoder returns a running practice session to media playback, and Hamtrax restores the phone's previous audio behavior after the last audio tool stops.

  • Hunt spots now flag frequencies outside your band plan. When an activator is spotted where your license class can't transmit, an orange warning triangle appears on the spot row, in the activation detail modal, and in the map popup — hover or tap it for the details. It's a heads-up, not a block. Warnings show once you have a band plan on file (set automatically from your callsign, or picked in Settings → Preferences → Station), and you can switch them off under the new Hunting section in Settings → Preferences.

  • The live activation logger no longer carries one station's details into the next callsign. Editing the call clears the old name, location, and P2P park immediately. An unknown call with 3 or more characters now says Callsign not found; 1 or 2 characters leave the line blank.

  • Moving an existing logbook into Hamtrax is easier. Import Contacts now groups QRZ, file-export guides, and connected services in one status-aware grid. Connect and Manage actions open the exact Settings panel, while World Radio League, Ham2K PoLo, and HAMRS each have a focused export guide that returns to the single maintained Hamtrax import workflow.

  • Partial callsigns are easier to finish on a phone. Callsign field in activation page now uses more space between characters, giving you clearer places to tap between characters and place the cursor where missing letters or numbers belong..

  • Merged Add Contact and Spot tabs in Activation page Spot Yourself sits below Add Contact, contacts and spots share one time-ordered history with matching two-line rows, color-coded QSO / Spot labels, and All, Contacts, and Spots filters. Repeated same-frequency spots remain visible. If the Freq field differs from the latest spot, a red warns you; logging a contact never re-spots your activation automatically.

  • The opening phone now paints instantly for everyone. The home page phone shows the Anatomy of Hamtrax opening screenshot instead of streaming a video, so slow connections no longer see an empty phone — and because it is the exact image the first chapter already uses, your browser downloads it only once.

  • The Hamtrax story now reaches the outdoors one chapter earlier. The green prairie arrives with What is Hamtrax, stays beneath every Anatomy chapter, then fades away after the final screen.

  • Hamtrax now speaks German and French. Deutsch and Français join English, Spanish, Japanese, and Brazilian Portuguese in the language picker — switch anytime from Settings → Preferences → Language or the site header.

  • Hunt map pins now turn green the moment you log the contact. Before, a just-contacted activator's pin could stay yellow for up to a minute — even while its popup already said Contacted — until the map's status clock caught up. The pin, popup, list badge, and detail modal now flip together, immediately.

0.1.31 - July 15, 2026

  • The opening phone now shows up right away on first visits and slow mobile connections. A lightweight preview keeps it visible and tappable while the motion loads, so a video problem no longer makes the phone disappear.

0.1.3 - July 15, 2026

  • The opening phone tour no longer waits through a fixed two-second pause. It becomes visible as soon as its video is ready, reducing unnecessary delay for first-time visitors.

0.1.2 - July 15, 2026

  • The Anatomy of Hamtrax now unfolds over the places operators love to explore. A green prairie fades in behind the phone at the first chapter, stays grounded beneath every screenshot and callout, then fades away after the final chapter across phones, tablets, and desktops. With reduced motion enabled, the prairie switches at the chapter boundaries instead of fading.

  • Shareable Contact Maps now frame the adventure around where you operated. Hamtrax centers the map on the combined footprint of your operating locations before fitting every route, wraps cleanly across the International Date Line, uses slimmer route lines so contact-heavy maps stay clear, and shows the first and last contacts in the local time and calendar date of the relevant station or activation park — falling back to clearly labeled UTC only when needed.

  • The HAM Dictionary's Frequencies tab is easier to scan. Frequency values now use Hamtrax's compact gold radio readout, so they stand out without making each row larger.

  • Modal close buttons are easier to tap. Their touch targets are slightly larger across Hamtrax while the X stays compact.

  • POTA spotter lists are easier to scan. Each located spotter now shows their country flag immediately before their location.

  • Deleting an account now stops nearby-activation alerts and other automated Hamtrax campaign emails reliably. Every send rechecks that the account is active and applicable preferences allow delivery; deletion also removes the retained profile email and clears pending email markers.

  • Tools now follow a clearer working order. The sidebar starts with Band Plan and Solar, moves through the CW and FT8 decoders into CW Training, and keeps Library next for quick reference.

  • Saved radio and antenna changes now appear immediately everywhere you choose equipment. Equipment pickers—including Logbook Bulk Edit—show profile edits as soon as they are saved, without refreshing Hamtrax.

  • Train your CW ear without leaning on dots, dashes, or visible answers. CW Training sends random letters, digits, and common punctuation at adjustable Farnsworth speeds and tone settings, then speaks each answer in your choice of two human voices or the original synthesized voice. Its circular practice-set controls can mix any categories, and the session keeps going while the panel is minimized.

  • Stream-link editing now has a clear finish action. The Stream Links editor includes a primary Done button in the bottom-right while continuing to save changes automatically.

  • Folder equipment summaries now explain themselves. Select Top Radio or Top Antenna to see that it reflects the equipment used by the most contacts in that folder, plus where to change those values.

  • Visits near Kansas City no longer enter Hamtrax analytics. The production and beta apps now keep Google Analytics and Microsoft Clarity off when an approximate location falls within 30 miles of Kansas City — including uncertain estimates that overlap the boundary. If the location cannot be resolved, analytics stays off.

  • The nearest-parks email can now show whether it brings operators back to Hamtrax. Its park image, fallback button, and plain-text link share one campaign with separate placement labels, without putting a user identifier in the URL.

  • Logging a hunted contact now gives all four edges of Hamtrax a soft golden pulse. It replaces the shower of falling leaves with a calmer, screen-framing confirmation, and is skipped when your device prefers reduced motion.

  • Password resets now close the loop with a security confirmation. After a reset email is requested, Hamtrax waits until Firebase records an actual password change before sending the confirmation; requesting or opening the reset link alone does not trigger it.

  • Google sign-in now works in the Android app. Tapping Google opens the native account chooser and returns directly to Hamtrax instead of saying the method is unavailable in the downloaded app.

  • Shared Showcase links now open much faster, especially on slower connections. Short links such as hamtrax.com/101 load the operator's public summary first; folder photos and contacts load only when opened, without downloading signed-in editing tools or unrelated app data

  • Email sign-up no longer looks stuck after you press Continue. The button now shows Creating account… while Hamtrax works, required account setup runs together, and the public Showcase link finishes in the background instead of holding up the next step

  • Getting-started instructions are easier to follow. Task explanation modals now use one consistent text style instead of coloring isolated words yellow, and their action button sits at the lower left instead of the lower right

  • The park map now fills in as it loads instead of making you wait. Open Activate and the first park clusters appear within a couple of seconds, then visibly fill in as the full POTA catalog streams on — with the Loading parks… bar above the map now tracking every step of the load. First visits download the parks database once instead of twice, returning visits rebuild the map several times faster, and Hunt's park catalog gets the same speedup

  • The public-home phone now lands correctly on iPhones. Safari could leave it tiny, low, and too far right at What is Hamtrax and the first Anatomy chapters before catching up later. Its size and position now follow Hamtrax's measured story progress, so every stop lands correctly immediately.

  • hamtrax.com now opens with the app itself. One recorded POTA phone tour spans the whole public-home story on desktop, tablet, and phone browsers. The phone video and its straight-on silhouette now refresh together after a release, so returning visitors cannot get the previous angled phone shape. It gives the hero two seconds to settle, then one discrete gesture carries the same measured move directly into centered What is Hamtrax; reversing returns to the hero. That exact rest remains video-only; the first still begins crossfading only after departure and fully takes over at Anatomy chapter one. The video and still stay pixel-aligned inside one phone; at 375px or narrower, that same handoff moves the phone upward and enlarges it for Anatomy while preserving the mobile left inset. The video pauses as soon as the first still takes over. The same phone owner survives responsive changes, supports reduced motion, and releases naturally before the National Parks section.

  • The home page now says exactly who Hamtrax is for. Its main heading identifies Hamtrax as a Parks on the Air® logger instead of cycling through outdoor personas, and the footer clarifies that Hamtrax is independent and is not affiliated with or endorsed by Parks on the Air, Inc.

  • Meet the Anatomy of Hamtrax. Seven full-screen chapters replace the old FT8-through-High-Visibility card sequence with a guided look at live hunting data, the global POTA map, park detail, fast activation logging, automatic folder organization, and tools. One wheel motion, touch drag, or keyboard step lands on exactly one chapter instead of stopping between screens. Clicking or tapping the visible phone also advances one exact stop from the hero through the final chapter, and rapid repeats during a move cannot skip ahead. A horizontal seven-dot row directly below the active chapter title keeps your place, expanding the current chapter into a gold marker. Desktop and large tablets use a crisp side-by-side composition whose title sits at the phone's upper third; each tooltip label shares its section title's left edge, while every gold leader starts outside its target ring, extends right, and stops before a visible text gap. On phones, the What-is title and each Anatomy title/progress row settle just above the left-anchored device at their resting positions, the three What-is value points stay vertically centered beside it, and each guided callout sits in a compact rounded card in the rail to its right. At 375px or narrower, the What-is phone remains beside its three value points, then moves upward and grows larger for Anatomy without leaving the mobile left inset. The single gold leader route exits the screenshot to the right and stops before the card with a visible gap. Titles and callouts fade in only near their own resting position, stay clear of one another, and disappear between chapters. The phone still takes a subtle slow-fast-slow breath inward between rests, while its display-size raster layer keeps every screenshot sharp and its dark app surfaces stay flat instead of showing diagonal light-sweep bands. The two introductory explainers now follow the Get on the Air button. With reduced motion enabled, screens, titles, annotations, and the progress marker switch instantly while the phone breath stays off.

0.0.99 - July 11, 2026

  • Sidebar search now explains itself before you type. Focus it to choose Activators, Callsigns, or Parks, with a short hint for each; labels and results are localized too.

  • Your own Showcase folders now have the same sharing tools as Logbook. Open an activation or hunting folder to create its Contact Map, or make a QSL Card from any contact beside Edit.

  • Maps start with less wasted data. Hamtrax now opens directly on its dark overview map instead of briefly downloading a detailed OpenStreetMap layer it immediately replaces; street detail still fades in when you zoom.

  • Getting-started tasks are easier to scan. The instruction panel now uses a clearer What to do heading and an outlined completion state.

  • The shareable Contact Map now says what its timestamps mean — subtle First contact and Last contact labels sit with their times right under your callsign — its auto-zoom keeps every plotted contact clear of the stats band along the bottom of the image, and both the Contact Map and QSL Card images now render their dark backgrounds smoothly, dissolving the faint stripe rings that used to circle the map's glow

  • Adding a photo that can't be uploaded now tells you why. Picking an image over 10 MB or in an unsupported format used to do nothing at all — no spinner, no message; now a brief warning explains the problem, upload and delete failures say so on every surface, and the + button steps aside once a folder holds its 4-photo maximum instead of silently ignoring taps

  • Signing in is now seamless. After you authenticate with Google or email, Hamtrax takes you straight into your logged-in view — the sign-in window no longer flashes back on screen for a moment before disappearing

  • The shareable Contact Map image now blends your outing photo softly into the map — its top and right edges dissolve instead of stopping at a hard rectangle — and the photo no longer repeats as a labeled circle beside your most-used radio and antenna, since it already fills the bottom-left corner

  • Hamtrax now recovers from a rare unstyled-page glitch on its own. If the app's stylesheet fails to load at startup — a flaky mobile connection is usually the culprit — Hamtrax detects it and automatically reloads once with a fresh copy instead of leaving you on a working but broken-looking page. If you're offline, it waits for your connection to return before reloading

  • The signed-out Showcase page's Sample Showcase label is now a real button that opens the founder's live public showcase

  • Saved radios and antennas now stay intact across devices. A returning iPhone could previously send a months-old equipment cache back to the cloud and replace profiles added on another device. Hamtrax now checks the authoritative cloud copy before equipment renders, retires legacy queued equipment snapshots, moves equipment changes into conflict-safe server transactions with their own revision, keeps preference caches tied to the correct account, and changes a default without resending either saved-equipment list

  • The home page loads faster and lighter on phones and tablets. While you're reading the logged-out home page, Hamtrax no longer downloads the POTA parks database, live spot feeds, or the Hunt/Activate map code in the background — that work now begins the moment you head to Hunt or Activate, which show their normal loading skeletons and parks progress banner while the data lands. It trims seconds of phone-CPU work and about 2.4 MB of cell data off a first visit, and desktop still warms everything up in the background as before

  • Crash reports are now anonymous. When something goes wrong, Hamtrax still sends a diagnostic report so we can find and fix it — but it no longer carries your account ID, callsign, page address, or browser user agent, so a report can never be traced back to you. It keeps only what's needed to reproduce the bug: the error and its technical stack trace, the feature area you were in, your device class, app version, and a random per-session ID

  • Your Hamtrax Pro status now shows off a little: while your subscription is active, the plan card in Settings → Account and the Plans tab's status banner glow with a slow golden halo — a calm, radiant breath rather than a flashy pulse, and it holds a steady gold shine if your device prefers reduced motion

  • The rules that keep your logbook organized are now published in one place: a new Logbook Hygiene Rules docs page plainly lists what each folder accepts, which fields lock when editing, how imports are routed and validated, and how duplicates are blocked — and the Logbook's folder tree now ends with a quiet Learn more link straight to it

  • The Band Plan chart now animates open: each colored mode segment starts as a thin line at its own center and grows outward in both directions to full width, cascading down the chart row by row, with the mode labels fading in as each segment lands. The cascade replays whenever you switch agency, license class, or band, and sits out entirely if your device prefers reduced motion

  • Re-importing a past activation's ADIF no longer creates duplicate contacts: the single-activation importer now checks your whole logbook — matched the same way the general importer matches contacts — instead of only the uploaded file, and its review banner tells you how many QSOs are "already in your logbook and will be skipped"

  • The import Review step now spells out exactly why each duplicate was skipped — an exact re-import (same UTC day, time, band, mode & park) or the same activator hunted at the same park on the same UTC day, named park and date included — so a shared callsign alone never looks like the reason a contact stayed out

  • The top-bar solar shortcut now opens the full Solar Conditions panel instead of the profile menu on phones and tablets

  • Deleting the folder you're viewing on a phone or tablet now returns you to the remaining folder tree instead of leaving you on an empty detail screen

  • Deleting a hunting contact — individually or with its folder — now clears the live Contacted status everywhere, and folder-cascade deletes sync correctly across devices instead of resurfacing later

  • QSL Card and Contact Map previews now place a right-aligned Options button above the image while keeping Download and Share fully visible in the footer on phones. Contact maps also wait for location or activation-park data and open on the expected preview

  • Contact imports now review themselves the way the Hamtrax logbook is organized: one non-empty Activations → Hunting → Custom stage at a time, then a clean Summary. Protected activation and Hunting destinations stay locked to the park/date rules, contacts with no obvious protected home can reuse or create a custom folder or split by month, year, band, or mode, and duplicate-only QRZ reviews can still finish to reconcile remote IDs

  • A friendly connected-circle setup checklist now starts every account at 17% and guides six quick wins: account creation, contact import, a real hunted POTA contact, radio and antenna profiles, and sharing a contact map. The walkthrough always goes first, the colorful floating card can be hidden for a session or permanently, and the same live checklist stays available at the top of Settings → Account

  • QRZ Logbook now connects once with its API key — no vault passphrase or repeated unlock. From there you can import QRZ contacts through Hamtrax's same guarded, auto-sorting review flow or upload new contacts from Export, while every QRZ request runs through an authenticated server gateway over HTTPS and the saved key stays encrypted at rest. ADIF, CSV, and QRZ imports also stop obviously malformed callsigns instantly before they can reach a folder, without slowing the import with live directory lookups

  • Bulk-editing logbook equipment is now a focused selection mode: it always switches to List, Select all / Clear all appears on the left side of the view-control row, and List / Map / DX, Import Contacts, Download, Share, and Delete fade away until you cancel or apply the equipment change

  • The POTA park catalog now keeps itself current: Hamtrax checks POTA every hour and picks up newly published parks automatically, new accounts start with the current park list on day one, and the Settings → POTA Park Database card now tells you exactly what the latest POTA update added — how many new parks, and which states and countries they're in. Imported hunt contacts also wait for the park database to be ready, so a hunted park's real coordinates land on the contact instead of falling back to the operator's home address

  • The POTA starter import now runs in the cloud the moment you set or change your callsign — being signed in on two devices at once can no longer double-import your recent hunts, and the imported contacts land in your logbook a minute or two after your callsign is saved

  • Hunted contacts can no longer double-count: the live Contacted button and logbook imports now keep one hunter contact per activator, per park, per UTC day — a double-tap, a re-import, or the same hunt logged by two apps with slightly different times all collapse to the single contact you actually made

  • Every QSO time field is now labeled (UTC) and defaults to the current UTC time, matching how ham logs (and ADIF files) record contacts — your logbook still shows each contact in your local time for easy reading, and contact lists now sort strictly chronologically even for imported logs

  • Long trail parks that cross many states (like the Oregon Trail) no longer spill a wall of state codes across the contact card — they show compactly as "US-CA +10", and imported contacts that carried a band but no frequency now show the band in the frequency slot instead of leaving it blank

  • Signal reports now follow your mode: phone contacts still pre-fill 59, while CW, RTTY, and PSK pre-fill a proper three-digit 599 — in the QSO form, the live activation logger, and even on imports that arrive without a report. Switching mode reshapes the report automatically

  • The Signal Report picker was redesigned around up/down steppers — one per digit: readability, signal strength, and in CW and other RST modes the tone digit — so every digit of the report is now adjustable right in the picker (a barely-readable contact can get its honest 37, and a chirpy homebrew rig its honest 589). Digits color from red to green as the report improves, and your changes save on the checkmark

  • Hamtrax now notices when the network keeps you waiting. A slow logbook, a park list that takes a beat too long, a map that fills in tile by tile — we could only ever hear about those if somebody wrote in, and "it felt slow yesterday" is not something anyone can fix. The app now measures the requests it makes and records the ones that take longer than a second, so we can see which server, on which screen, is actually costing you time. What gets recorded is deliberately thin: how long it took, which server it went to, a generalized version of what was asked for, and which part of the app you were in. The full address and everything after the ? are dropped before anything is sent, so a callsign, grid square, or search term riding along in a request cannot end up in a measurement — and any one slow resource is noted once a session rather than every time it retries. As with all Hamtrax analytics, sessions near Kansas City and test accounts are excluded entirely. See the Privacy Policy.


0.0.98 - July 8, 2026

  • Automated welcome emails are currently disabled; new signups no longer receive the delayed welcome message while this automation is paused
  • Equipment setup is faster in radio and antenna profiles: each band group now has an All MF/HF/VHF/UHF/SHF checkbox that selects or clears that whole segment, and it automatically reflects when you pick every band in the group by hand
  • Opening the Activate setup screen now checks your location and, when you're within about half a mile of a park, fills that park into the Park field before you type a thing — walk up, tap Activate, and your park is already there. This finally works on iPhone: the first time, iOS asks for location permission once, then it's silent on every later visit. Too far from a park, or declined the prompt? The Find Nearest button still lets you browse nearby parks by hand
  • During an ongoing activation, the map now uses your activation park as the single anchor for the self marker, camera/recenter target, and QSO arc lines from logged contact markers, including after resuming an in-progress activation. Spotter-only markers stay marker-only until you log them as contacts
  • Sharing a folder's contact map now works the way you'd expect on a phone: Share opens the native share sheet (Messages, Mail, social, or Save Image) instead of quietly downloading the picture, and Download actually saves the PNG to your device. The same two fixes apply to QSL card sharing. And an activation map no longer needs your personal location set first — it's drawn from the park you activated, so you can share it straight from the field before ever setting a home location (hunting folders still ask for your location, since their arcs radiate from your station)
  • The N CONTACTS count in the live activation logger now rides on a subtle gold progress bar that fills as you log, reaching full at the 10 contacts that make a POTA activation valid — and the moment your tenth contact lands, the line flashes and a brief golden sweep crosses the screen to mark it. Resume an activation that already cleared 10 and you just see a full bar; the celebration only plays the once, right as you cross the line
  • Typing a callsign on a phone no longer means flip-flopping to the 123 keyboard: whenever a callsign field is focused, a 0–9 key row now floats directly above the on-screen keyboard — one tap per digit, inserted right at the caret, with the bar pulsing gold once per tap to confirm it registered — in the live activation logger, the quick-add cards, the QSO form, signup, and Settings alike
  • The live activation logger's Callsign field now behaves like every other callsign field: it uppercases as you type (with the phone keyboard held in caps), filters out characters that can't appear in a callsign, and accepts full-length compound calls up to 15 characters (previously 10)
  • The activation Finish tab now walks you through the full POTA submission in three steps — download your ADIF, add the activation on pota.app, then upload the log at My Log Uploads — instead of implying the upload alone was enough
  • The Activate tab's In Progress list now keeps your newest activation pinned to the top and stays up to date on its own as you start, finish, or delete activations — the one you just started is right there instead of buried at the bottom, and a just-finished one no longer lingers. Each row's menu also gained a Finish action: close out an activation without opening it, keeping all its contacts and its folder intact, alongside the existing Resume and Delete
  • The signup callsign step now confirms your call is real before you continue: the Continue button unlocks only after the license lookup finds your callsign, a clear message appears when it can't, and a new "Hamtrax can't find my callsign" link explains the path forward (continue without one, add it later in Settings, or send us a ticket for a fast fix)
  • Editing your callsign and display name in Settings → Account no longer saves as you type — each now has its own Change Callsign / Change Name confirm button, matching how the username already worked. The callsign button only appears once the callsign is validated through the license/location lookup, so a mistyped or unknown callsign can never be written to your account by accident
  • Creating an account or signing in no longer hangs silently when the network stalls: the attempt stops after 10 seconds with a clear message asking you to refresh the page and try again, instead of leaving the button stuck on "Creating account…" indefinitely
  • FT8 Auto-Hunt now runs a preliminary test before it starts hunting: an on-by-default Check propagation first toggle makes up to three attempts, each sending a test CQ on the band's standard FT8 calling frequency and then checking PSK Reporter for a report of your callsign — the moment any attempt is heard, hunting starts, but if all three go unheard Auto-Hunt doesn't start and tells you to adjust your radio or antenna instead of calling activators nobody can hear (if PSK Reporter itself is unreachable on every attempt, the check is inconclusive and the hunt proceeds anyway)
  • FT8 Auto-Hunt now hunts opportunistically instead of working the queue one activator at a time: every 15-second cycle it scans the decodes for all of your queued targets, and if the station it's listening for stays quiet while another queued activator calls CQ on the same frequency, it jumps to the one it can actually hear and calls on the very next cycle — the passed-over activator returns to the front of the queue. Activators it has already heard are worked before ones it hasn't, a late RR73 confirming an earlier exchange is logged the moment it arrives, and queued activators the radio has already copied show an ear icon with their signal report on their row
  • FT8 Auto-Hunt no longer treats "Not heard" as forever: an activator it gave up on stays on the watchlist for the rest of the run, and the moment his signal is finally decoded he's revived into the queue — jumped to immediately if the current target is dead air. Stations already Tried aren't re-called, but a late RR73 from one still completes and logs the exchange
  • The FT8 Auto-Hunt target list is now a real cockpit: every row shows the spot's frequency and park location (US state, or country for DX parks) beside the callsign, every still-queued activator has a to drop it from the run — dropped ones collect in red at the bottom of the list, each with its own ✕ to put it back in the queue — and a skipped station says why in red (bad spot data / tune failed / radio never keyed) right where its frequency would be
  • FT8 Auto-Hunt's strategy now mirrors a human hunter's decision-making at the dial: an activator heard mid-exchange with another hunter counts as heard (SNR shown beside the ear) and gets pounced on the instant they sign off — no waiting for a clean "CQ POTA" — and when the current target is pure dead air, the hunt can even jump to a queued activator that's audible-but-busy in the same passband and hold for its opening. Statuses stopped lying by omission, too: a target you could hear but never catch free now ends as "Heard, never free" instead of "Not heard", and a target whose pileup you can hear but whose own signal never reaches you shows "Hunters calling them" live (and "Heard only their hunters" at the end) — a one-way propagation path, which is also why Auto-Hunt deliberately never calls it: a station you can't decode can't complete a confirmable QSO
  • Your radio connection now stays alive in the background indefinitely — switch to any other app for as long as you want and the rig stays connected. Hamtrax keeps the link open by silently running the radio's receiver audio through an always-on playback engine, so iOS never suspends the app; you'll never hear it and there's nothing to configure. If that engine ever gets interrupted (a phone call or Siri while you're away), Hamtrax falls back to a safety net: it holds the session ~20 seconds, closes it cleanly so the radio frees its single connection slot, and reconnects on its own the moment you return
  • The FT8 Auto-Hunt card gained a See history dropdown: a scrollable log of every message decoded on the dial during the run plus every message your rig actually transmitted, with targeted activators highlighted in blue and your own traffic in green
  • An FT8 Auto-Hunt run now keeps working while you browse the rest of Hamtrax — it's no longer tied to the hunting page, the navbar radio pill turns into a pulsing red tower whenever your rig is actually keyed, and returning to the hunting panel lands on the live run. And a hunt never just vanishes anymore: if a run ends while you're away (you backgrounded the app, the rig stopped responding, or the queue finished), the card now says why it ended with the final contacted/tried tally, the clock window the run covered (e.g. 2:32 PM – 2:41 PM), and the full history log kept for review — previously it silently reset to the Start button
  • Your chosen location method now never changes by itself: if your selected method doesn't have data yet (GPS pending, callsign still resolving), Hamtrax quietly uses the best available source and explains it with a notice in the location picker — new accounts no longer get a Washington, DC location written to their settings, and the duplicate "location updated" toasts are gone
  • Signed-out visitors browsing the hunt catalog are no longer asked for GPS permission; their default country comes from the browser language instead
  • Location changes now sync reliably across your devices (a version-counter bug silently discarded them before) — after updating, another device may visibly catch up to your latest location once; that's the fix working. New accounts also seed their callsign location transactionally, so a slow signup can no longer produce an account with a location mode but no coordinates
  • Logging a contact now requires a callsign on your account. You can still sign up and browse without one, but hunting, manual entry, and ADIF import all prompt you to add your callsign in Settings → Account first — keeping every logged contact tied to a real operator identity
  • Every surface now reads your location from one place: shared contact maps center on your selected location method (not just your registered callsign address), the hunt catalog's default country comes from your callsign or home profile, and the QSO form's device-location option shares the app-wide GPS owner instead of running its own
  • Manual location entry is now the same everywhere — Settings, the hunt panel's "Hunting from" picker, and the QSO form's My Location share one entry component with matching place-search / grid-square / coordinates modes and identical validation
  • Place search now finds parks and landmarks in addition to cities, and suggestions read as clean labels like "Boston, Massachusetts, United States"
  • Setting a manual location from the hunt panel now supports the same auto-revert window as Settings (1, 4, 8, or 24 hours, or Never Revert, with a live countdown) and confirms with the same saved toast — previously a manual location set there silently never expired
  • Signed-out visitors on the hunt tab now see their own country as the "Hunting from" default (from the browser language) instead of a hardcoded Washington, DC
  • Date and time fields now look like every other input: on iPhone they no longer stretch wider than their sibling fields, their value text sits properly centered instead of riding high, and they share the same yellow focus glow and padding as the rest of the form — everywhere dates are entered, from the contact form to logbook filters to equipment profiles
  • Fixed place-search suggestions clipping inside the QSO form modal
  • The signed-out Showcase tab now opens with an "A story worth telling" hero and presents a vertical-carousel sample showcase, with mobile scrolling the hero away before the carousel takes over one section at a time. Scrolling or dragging horizontally moves through the sections just like scrolling vertically, so a sideways swipe works the same as an up/down one.
  • Under the hood: hardened the deploy pipeline so stylesheets from earlier releases stay permanently available, keeping session-replay diagnostics rendering correctly instead of degrading after each release.
  • Fixed the public home page ignoring the first scroll or drag — one gesture now moves the page instead of two

0.0.97 - June 28, 2026

  • iOS installs now register per-install push tokens so nearby-activation alerts can reach the right device instead of relying only on broad topic delivery
  • Logbook folder details now summarize the single most-used radio and antenna in that folder, keeping equipment setup separate from the retrospective folder view
  • Slashed zeros are used app-wide so callsigns, park references, and other radio text are easier to distinguish at a glance
  • Equipment setup surfaces now use the clearer My Equipment label

0.0.96 - June 25, 2026

  • Added nearby-parks and nearby-activation emails with rendered Hamtrax imagery, including scheduled follow-up alerts when a user has matching parks nearby
  • Welcome emails now wait 20 minutes after sign-up, giving the first session room before lifecycle messaging starts
  • Public Home now preloads the Map and Showcase tabs in the background, making the first public-tab switch feel faster
  • Google sign-up opens reliably on the first click, and sign-up / email-change forms now block obviously fake top-level domains
  • POTA spotter glyphs render incrementally as locations resolve, and spotter-camera reframing is throttled so live maps move less abruptly
  • Hunt map popups now include the activator callsign, spot-recency controls use clock icons, and the public Hunt tab hides signed-in logging controls
  • Activation maps on touch devices now require two fingers to pan so scrolling a modal is less error-prone
  • The showcase demo has refreshed radio and antenna imagery, and the Firebase Hosting rewrite now handles single-page app routes correctly

0.0.95 - June 24, 2026

  • Activation setup is now POTA-only, removing the unused non-POTA scaffolding so activators get a simpler flow
  • Contact-map and QSL-card share modals now open directly to the generated preview, with options available when you need to adjust the export
  • Contact-map sharing gained filters, folder equipment summaries, better stats placement, and a 2D-canvas renderer so exported maps stay visible on iOS
  • POTA park details now pull richer context: ParkInfo cards, Wikimedia Commons images, weather lines, fuzzy park search, and improved park/operator search results
  • Sidebar search now separates Live Activators from Callsign results, and activating callsigns can be added to a hunting folder from search
  • Manual contact entry gained an inline match list, folder prompts link back into expanded hunting folders, and activation-map empty states now offer a direct Log Contact action
  • Equipment pickers now show separate Select and Edit actions, return you to the picker after editing, and keep the add-new button where it is easiest to reach

0.0.94 - June 8, 2026

  • Added the CW decoder and Morse tooling, then narrowed the decoder's listening window to 50 Hz for steadier tuning
  • Refreshed the POTA parks data pipeline with version-gated imports, a staleness toast, Settings deep links, and cloud-backed park dataset support
  • Added a POTA activation CW guide, improved QSL-card export flow, and cleaned up activation-map arcs with better operator fallbacks
  • The Hunting surface now loads with a skeleton state on tab switches and has clearer manual contact / spot status actions
  • Profile fields now live in clearer cards with docs deep links, equipment thumbnails render reliably, and equipment buttons use a more compact shared treatment
  • Preferences save flow, signup method choices, settings layout, safe-area spacing, map wrapping, and shared UI frames were cleaned up across the app
  • Callsign hygiene and QSO coordinate resolution were tightened so saved contacts and map pins have better canonical data

0.0.92 - May 23, 2026

  • Streamlined the touchscreen QSO bar to the five fast-logging fields — callsign, frequency, mode, RST sent, and RST received — with a More fields button that opens the full edit form (the same modal desktop uses) carrying over whatever you've typed
  • Activation contacts now lock the date as well as the park, so a contact can't drift onto the wrong day; the date is seeded from the activation and shown read-only with a banner

0.0.91 - May 11, 2026

  • Redesigned the Hamvention promo banner with a brushed-steel surface, gold-leaf "Free" text, and a Pro emblem
  • Added a soft gold-glow cascade across the navigation tabs after the home page lantern finishes lighting up
  • Reordered the sign-up modal so "Continue with Email" is the primary option, with Google secondary
  • Refined the QSO list typography — date and time stack tightly on the right, callsign + looked-up operator name read together
  • Cleaned up the map popup layout — date now sits in the upper right, callsign promoted, location info merged onto one line
  • Folder labels and stats use lighter typography for a calmer reading rhythm
  • QSO edit form switches between bottom-bar and modal based on whether the device has touch input, not just screen width

0.0.90 - May 10, 2026

  • Refreshed text sizing throughout the app for clearer hierarchy and easier scanning
  • Redesigned the POTA activation detail modal with a cleaner activator card and operator names inline
  • Added an expandable park region list — tap to see every state or province a park spans
  • Added a 2-column list layout on intermediate-width screens so spots use horizontal space better
  • POTA detail map now draws arcs from the activator to each spotter so you can see the listener spread at a glance
  • Tapping a spot marker on touch devices now raises a popup with an Expand button instead of jumping straight into the modal
  • Polished the QSL card export with a gold accent pip and refined sidebar typography
  • Punchier loading animation with a windswept 3D flourish on the forest glyphs
  • Renamed the "Retry" status badge to "Try Later" for clarity

0.0.89 - May 7, 2026

  • Cache-bust translation files on each release so the new CLI walkthrough copy (and any future translation update) shows immediately without a hard browser reload

0.0.88 - May 7, 2026

  • Rebuilt the Hamtrax CLI tool overview as a four-step "Getting started" walkthrough (install → generate → authenticate → verify) with copy-buttons on every command
  • Added next-step instructions to the Key Reveal dialog so it's clear what to run in your terminal after copying a new key

0.0.87 - May 7, 2026

  • Hamtrax CLI is now publicly available — install with npm install -g hamtrax to log POTA contacts and manage activations from your terminal
  • Added per-folder notes (up to 300 characters) for richer Showcase folder detail
  • Added per-folder stream/recording links so you can attach YouTube, Twitch, etc. to an activation folder
  • New park-style map popups with custom artwork when you tap a park or grove marker
  • Cleaner, smaller QSL card exports from a renderer rewrite
  • Faster forest loading indicator (PNG glyphs converted to WebP)
  • Hardened folder writes server-side with field length limits and a 4-image cap per folder
  • Fixed the Generate API Key dialog showing each permission line twice
  • Fixed input hint text to use a monospaced typeface

0.0.86 - May 6, 2026

  • Added a rich popup on QSO map markers — tap one in log mode to see callsign, country flag, location, name, frequency/mode, and date
  • Callsign lookup results now show inline next to the field label (first name and location) instead of on a separate line below the input
  • Tidied the equipment selector by removing the trailing chevron icon

0.0.85 - May 6, 2026

  • Added a slide-to-confirm gesture for destructive actions like deleting a contact
  • Added a contact map builder so you can customize the map shown on QSL exports
  • Refreshed the QSO log page layout with cleaner controls and a faster entry bar
  • Improved QSL card and contact map renderers for sharper exports
  • Polished the activation logger setup screen, map view, and POTA activation modal
  • Redesigned the folder detail modal in Showcase with richer information
  • Faster initial load and less wasted CPU on idle pages from a perf pass
  • Translation updates across English, Spanish, Japanese, and Brazilian Portuguese

0.0.84 - May 5, 2026

  • Replaced the activation choice modal with side-by-side New / Import buttons in the folder tree
  • Fixed info tooltips on touch devices so a tap no longer immediately closes the tooltip it just opened
  • Moved the language picker into the Preferences accordion alongside the other preference groups
  • Tightened mobile spacing on the radio and antenna profile forms
  • Small polish: sign-up screen, profile menu, photo upload button corners, and flag showcase close button on small screens

0.0.83 - May 5, 2026

  • Added a dedicated "Log Contact" flow for non-POTA QSOs with a custom folder picker that only lists folders you've created yourself
  • New users get a one-time prompt to name their first folder, then drop straight into the QSO form pre-set to that folder
  • The contact form now remembers your last-used folder within a session so batch logging skips the picker
  • Mobile and tablet now use a horizontally-scrolling chip-style entry bar that sits above the on-screen keyboard
  • Custom folders in the sidebar now sort by most-recent contact activity so your active folders rise to the top
  • Country flags are now clickable everywhere — tapping one opens a full-screen showcase with a glowing flag, the canonical country name, and continent / DXCC details
  • Trimmed the map empty-state copy and tightened the POTA activation modal layout so it wraps cleanly on narrow screens

0.0.82 - May 4, 2026

  • Hardened the past-activation ADIF importer — invalid dates, impossible times, oversized fields, and short/garbled callsigns are now caught with clear errors instead of silently importing bad data
  • Mixed-park ADIF files no longer rewrite every contact's park to the chosen one; QSOs that explicitly reference a different park are skipped and the count is shown before import
  • Duplicate contacts within an imported file collapse to one (a 50× repeated record imports as 1, not 50)
  • Added a "Show N skipped records" disclosure during import review so you can see exactly which records were rejected and why
  • Activation type dropdown now offered extra non-POTA activity types in addition to POTA / IOTA
  • Refreshed the home and showcase copy with adventure-focused tagline and CTAs
  • Made callsigns easier to read — 0 and O are now visually distinct in mono text everywhere in the app

0.0.81 - May 4, 2026

  • Added server-side password reset emails with cooldown protection
  • Refreshed the shared UI theme, loading indicators, buttons, cards, map glyphs, and docs styling for a more consistent Hamtrax look
  • Updated the desktop landing page to use the lantern cover image with lantern-positioned glow and fireflies instead of the temporary intro video
  • Rebuilt QSL card exports with a wider memorial-card layout, richer map details, and new renderer test coverage
  • Added new showcase empty-state artwork, forest loading artwork, and leaf confetti assets

0.0.80 — May 3, 2026

  • Added a pair of mushrooms that grow in beside the stacked landing-page call-to-action shortly after page load
  • Added a soft, flickering lantern light that now casts upward from the hero image instead of blooming as a uniform glow
  • Added a "Select a Park" hint pill on the activation map plus shimmering perimeters around the park and frequency inputs to point you to the next field
  • Tightened the activation setup form: frequency label now reads "Freq MHz", power unit is localized, and Start is disabled until park and frequency are filled
  • Compressed the hero JPGs (about 78% smaller) and converted the landing showcase image to WebP (about 93% smaller) for faster initial loads
  • Restyled danger buttons with a red outline instead of a solid red fill
  • Tidied the sign-in screen typography and copy, and simplified the profile menu's sign-out item
  • Compacted the "Marked as attempted" toast into a single line

0.0.79 — May 2, 2026

  • Tapping Radio or Antenna in the hunting setup while signed out now opens a sign-up prompt explaining that Hamtrax saves your gear to each contact folder so every QSO logs it automatically
  • Simplified the activation auto-spot tooltip with a clear, localized explanation of what enabling the toggle does
  • Polished the map panel chevron so it sits cleanly below the panel body instead of overlapping its bottom edge

0.0.78 — May 2, 2026

  • Fixed a deploy pipeline regression that had been failing every deploy since April 29
  • Added Microsoft Clarity session replay for better understanding of how the app is used
  • Under the hood: centralized the analytics service and refreshed several internal architecture briefs

0.0.77 — May 2, 2026

  • Fixed an Android deploy gate that had been blocking app builds since late April
  • Synced the Android app version to match the web version (0.0.76)
  • Under the hood: removed dead Capacitor authentication artifacts and added the Capacitor Browser plugin

0.0.76 — April 28, 2026

  • Added a guided hunting walkthrough that teaches new users how to log their first contact using a synthetic practice spot
  • Added an "Auto-spot when adding a hunted activator" preference so spots can be created automatically as you hunt
  • Refreshed the Activity tab into a cleaner single-pane layout with smoother list rendering and lighter detail modals
  • Rebuilt the activation logger setup view with simpler copy, clearer flow, and a tighter park selector
  • Reorganized the Settings page into a more scannable layout
  • Polished the band plan, profile cards, equipment buttons, modals, toggles, and radios for a more consistent flat dark feel
  • Updated Spanish, Japanese, and Portuguese translations for the new walkthrough and refreshed Activity, Find, and Settings copy
  • Under the hood: removed obsolete activation-folder backfill function, tightened map z-index handling, and added a maintenance task to clean up expired practice contacts

0.0.75 — April 26, 2026

  • Simplified the Hunt panel: removed the in-tab Logbook view so the panel focuses on the live activator list, with the spot count and refresh button now in the header
  • Added a subtle staggered slide-in animation when the activator list first loads (respects reduced-motion preference)
  • Redesigned the signed-out landing page — the showcase image now anchors to the bottom with a soft 3D tilt while the headline and call-to-action sit centered above it
  • Tightened the activation logger's park selector copy ("Park" instead of "Location", shorter placeholder and hint)
  • Fixed brief flashes of "Loading map..." and the empty-state overlay on quick map fetches
  • Park photos now load for signed-out visitors browsing the Hunt tab and Activation Map

0.0.74 — April 25, 2026

  • Refreshed the home page with a new "A thousand QSOs and nothing to show for it" tagline and a lantern-illuminate animation that lights up the hero scene from the lantern outward
  • Improved POTA activation modal with stepped signal-strength bars showing spot freshness, country flags next to park locations, and cleaner mode badges
  • Smoothed modal close transitions across the app — modals now animate out instead of disappearing instantly
  • Renamed activity "Sign In" call-to-action to "Start Logging" (en/es/ja/pt-BR)
  • Under the hood: cross-platform Node-based dev server launcher, localhost-only dev binding by default, and Vite cache preserved between restarts

0.0.73 — April 24, 2026

  • Under the hood: reorganized the shared code library into clearer core/radio/spatial modules, extracted runtime helpers, and pruned legacy screenshots and dead briefs

0.0.72 — April 23, 2026

  • Under the hood: cleaned up stale worktree branches and refreshed the production deploy

0.0.71 — April 23, 2026

  • Added a callsign search box in the sidebar for quick lookups without leaving what you're doing
  • Added a floating map controls pill with recenter and zoom buttons; removed the old right-edge elevation meter
  • Added country flag display across activation and QSO lists and the new sidebar callsign search
  • Refreshed the UI with a cleaner flat dark theme, brighter firefly hero animations, and tuned component tokens throughout
  • Updated Spanish, Japanese, and Portuguese translations for auth, find, integrations, and log screens

0.0.70 — April 21, 2026

  • Fixed activation spots failing to sync between devices — spots logged during an activation now reliably persist to the cloud and load on your other devices

0.0.69 — April 21, 2026

  • Added illustrated empty-state images across Showcase sections (activations, hunting, equipment, operator details, social links)
  • Refined the Activity tab with a new hunting-location selector and reworked detail modals
  • Tightened the folder tree, log page, and profile-section layouts
  • Under the hood: pruned unused spot-submission tool and spotter-map code that had no entry points

0.0.68 — April 20, 2026

  • Removed the PSK Reporter, Reverse Beacon Network, and waterfall spectrum feeds from the Activity tab to simplify the view
  • Improved dev-server reliability on Windows (internal tooling change, not user-facing)

0.0.67 — April 20, 2026

  • Fixed profile avatars in the sidebar and user menu showing a broken image icon when the stored photo URL was no longer valid — they now fall back to the default origami tiger
  • Renamed the Showcase "Preview" button to "Open" and tidied the share-row layout

0.0.66 — April 20, 2026

  • Fixed the own-Showcase header showing "UNKNOWN" on startup for returning users — callsign now appears instantly from the offline profile cache instead of waiting on a background fetch

0.0.65 — April 19, 2026

  • Fixed your own Showcase banner displaying "unknown" instead of your callsign when the profile loaded slowly

0.0.64 — April 18, 2026

  • Under the hood: pruned the unused labels/tags code from the QSO logging system and tightened the solar dashboard helpers

0.0.62 — April 17, 2026

  • Flattened cards, buttons, and panels to a cleaner flat dark look throughout the app
  • Swapped the default origami beaver avatar for a new origami tiger
  • Added a Q-codes reference panel to the Reference Dictionary tool
  • Reordered POTA park details so distance, bearing, and local time lead — coordinates now read as supporting reference
  • Added a "be the first on the air" message for POTA parks that no one has activated yet
  • Simplified the folder tree expanded view and tightened up empty-state sections

0.0.61 — April 14, 2026

  • Redesigned hunting tab preview with a cleaner flat layout and a one-tap shortcut to the full monthly logbook
  • Simplified the activation landing page with larger New and Import buttons and a clear path to completed activations
  • Refreshed the radio and antenna picker tiles with full-bleed product photos
  • Reworked the folder tree so Activations and Hunting categories read like a ledger — the folder you have selected is always visible
  • Renamed the activation media notes area to "Photos" and swapped the large uploader for a compact plus button
  • Improved dropdown menus to stay inside the screen and truncate long option names
  • Miscellaneous typography polish across captions and labels

0.0.60 — April 9, 2026

  • Fixed default radio and antenna profiles not being applied to new activations when loading preferences

0.0.59 — April 8, 2026

  • Fixed ghost activations persisting in the In Progress list after deleting folders
  • Consolidated activation data into a single source of truth (no more duplicate records)
  • Removed unused live activation banner feature from profiles

0.0.58 — April 8, 2026

  • Added contacted/attempted/retry status badges to POTA activations and activity list
  • Redesigned map pins to teardrop shape with orange glyph color
  • Improved map performance and camera behavior — selecting a spot no longer auto-zooms
  • Added labeled folder action buttons (Edit, Download, Share, Delete) to log page
  • Added radio group UI for choosing how equipment changes apply to existing contacts
  • Centralized folder equipment defaults so new folders automatically inherit your rig setup
  • Refined modal, button, and card styling across the app

0.0.57 — April 5, 2026

  • Reduced oversized close button in modal dialogs

0.0.56 — April 2, 2026

  • Redesigned hero section with responsive layouts for desktop, tablet, and mobile
  • Added particle effects and animated evolution labels to the landing experience
  • Improved code-splitting with automatic retry on failed chunk loads

0.0.55 — March 28, 2026

  • Improved profile loading — callsign, license class, and location now appear instantly from cache instead of flashing empty
  • Improved error screens — user-friendly messages replace technical jargon, with automatic reload for setup issues
  • Added park name resolution to activation folders in the log tree
  • Added media and livestream indicators to folder tree entries
  • Added email preferences to user settings schema
  • Added in-progress activation tracking to external profiles
  • Improved mobile tooltips — now dismiss on scroll
  • Consolidated inline toasts into the canonical toast system

0.0.54 — March 28, 2026

  • Redesigned hunting section on showcase — monthly folders now display as a clickable card grid with detail modals, matching the activations pattern
  • Added welcome email -- new users automatically received a welcome message from social@hamtrax.com after signing up

0.0.53 — March 27, 2026

  • Improved home page layout -- footer now scrolls with content instead of being pinned to the viewport
  • Added "Get Started" call-to-action with glowing beam effect to each carousel slide
  • Improved activation map with live-updating timestamps, scrolling spot comments, and better spot display
  • Added profile photo avatar to contact map exports
  • Added active badge indicator for in-progress activation folders in the log
  • Improved frequency input validation — prevents values over 2000 MHz and limits decimal precision
  • Fixed deleted folders resurrecting from stale IndexedDB cache
  • Fixed monthly folder cache not clearing after folder deletion

0.0.52 — March 26, 2026

  • Added shimmer loading placeholders for all images across profiles, equipment, and media
  • Updated site tagline to "Log it. Keep it. Show it off."
  • Moved hamtrax logo to bottom of contact map for better visual hierarchy
  • Added tooltip explaining shortcode URLs on the Showcase tab
  • Fixed analytics polluting production GA4 during local development
  • Fixed crash reporter failing in environments without Web Crypto API

0.0.51 — March 25, 2026

  • Fixed profile relay sections using incorrect identifier for external profiles

0.0.50 — March 25, 2026

  • Redesigned contact map with unified left panel, wavelog visualization, and decorative photo frames
  • Added signup funnel analytics with step tracking, field focus, and abandonment detection
  • Added dedicated lifetime subscriber view on the Plans page
  • Fixed map background not resizing on window resize
  • Fixed folder media failing to load on other users' profiles
  • Improved log page map view by hiding gallery and equipment ribbons

0.0.49 — March 25, 2026

  • Simplified contact map export to a single 1920×1080 layout with user-centered map projection
  • Added US state boundaries to contact maps with improved header and footer layout
  • Improved callsign input to allow portable prefixes with slashes (e.g., JA1/W5ABC)
  • Refreshed Home tab copy with scannable bullet points instead of long paragraphs
  • Fixed stale activation list on Safari iOS caused by suspended IndexedDB cache

0.0.48 — March 23, 2026

  • Fixed folder media photos not loading due to Firestore security rule mismatch
  • Fixed analytics events leaking before auth resolves for excluded accounts
  • Added tooltip explaining equipment assignment on the log page

0.0.47 — March 23, 2026

  • Updated home carousel slide copy and added responsive stacked layout on small screens
  • Added contact map sharing with custom map projection and export
  • Added equipment assignment to activation folders
  • Improved log page with expanded contact details and filtering
  • Simplified profile card and public profile layout
  • Added share toasts and streamlined sign-up flow

0.0.46 — March 23, 2026

  • Added photo deletion with confirmation dialog to photo galleries
  • Simplified grayline overlay calculation on the map
  • Improved log page layout with labeled Images and Contacts sections
  • Replaced static hero section on the landing page with an auto-advancing carousel walking visitors through 5 value proposition slides
  • Fixed band plan selector showing an unwanted "All" option

0.0.45 — March 22, 2026

  • Renamed activation routes from /activation-map to /activate and /in-progress to /session for cleaner URLs
  • Added GA4 analytics for page views, sign-ups, and logins across all auth methods
  • Added park anchor pin on the activation map during active sessions
  • Enriched spotter list with location details and spot comments
  • Added inline photo gallery to the log page with direct upload support
  • Added media indicators (photo count, stream badge) to the folder tree
  • Simplified activation card badges on profile (moved counts to cover photo overlay)
  • Fixed Firestore email sync when changing email in account settings
  • Fixed race condition in map coordinate lookups
  • Updated disaster recovery documentation and backup scripts

0.0.44 — March 22, 2026

  • Added Frequencies reference tab with GMRS, FRS, MURS, marine, and weather channels
  • Added deploy gate CI pipeline with automated tests before deployment
  • Improved loading screens with new FullPageLoader component
  • Simplified QSO entry form by removing unused fields
  • Fixed QSO time to use UTC consistently
  • Improved map marker clustering with density-based sizing
  • Updated logging documentation to reflect current folder system

0.0.43 — March 22, 2026

  • Removed Activity Stats section from profile and showcase views
  • Improved loading screen when viewing other operators' showcases
  • Fixed QSO timestamp fields for consistency across create and sync
  • Fixed loading state flicker when opening external profiles
  • Added Android app (Capacitor) to the repository
  • Added disaster recovery plan and backup scripts

0.0.42 — March 21, 2026

  • Simplified sign-up flow by removing the location step
  • Improved POTA spots loading indicators on map and activity list
  • Fixed social-media in-app browsers breaking navigation with tracking params
  • Improved rig manager forms with visible "Default" label on star toggle
  • Improved profile sections by trimming QSO display to 10 most recent
  • Fixed country dropdown clipping behind modals during sign-up
  • Added helper text to activation park reference input

0.0.41 — March 20, 2026

  • Fixed POTA spots not loading for visitors who aren't signed in

0.0.40 — March 19, 2026

  • Updated link preview image to show the hero slogan and illustration when sharing hamtrax.com

0.0.39 — March 19, 2026

  • Added Retry button on POTA activations to flag activators for follow-up
  • Added undo actions for Contacted, Tried, and Retry status on activations
  • Improved map loading performance with lazy code splitting
  • Improved startup speed by deferring popular parks data loading
  • Fixed Firestore email not syncing after email address change

0.0.38 — March 18, 2026

  • Added native iOS and Android app support with unified sign-in flow
  • Added Android hardware back button handling
  • Switched Stripe subscription to live payment processing
  • Improved map and activity feed performance with shared GeoJSON cache
  • Improved data loading by deferring background fetches until needed
  • Improved sidebar styling with rounded borders and selection accent
  • Improved list item tap targets for easier interaction
  • Updated docs for native app availability

0.0.37 — March 18, 2026

  • Added Terms of Service and Privacy Policy links to the public home page footer

0.0.36 — March 17, 2026

  • Added PRO badge on the Hamtrax logo for premium subscribers
  • Added QSO cap approaching warnings (10, 5, and 1 contacts remaining) for free users
  • Added activation import from ADIF files to backfill past POTA activations
  • Added drag gesture on the map panel button to expand/collapse the list
  • Added Stripe badge to the upgrade modal
  • Improved folder data healing for folders missing type metadata
  • Improved external profile relay to detect folder types by parent category

0.0.35 — March 17, 2026

  • Added park state and name display to logbook contact rows for hunted POTA QSOs
  • Added edit and delete actions for individual contacts in the Logbook contact list view
  • Added activation QSO edit warning when editing contacts that belong to a POTA activation
  • Added suppressible "don't show again" option for the activation edit warning
  • Added reusable HamtraxLogo component replacing inline logo markup across all layouts
  • Added external showcase branding ribbon with "Get your free showcase" CTA
  • Added error state for external showcase when relay fails
  • Added default equipment (radio/antenna) to QSOs logged from activity feeds
  • Improved showcase section visibility to use shared defaults across own and external views
  • Improved Plans page layout with billing toggle inside Pro card and monthly-equivalent pricing
  • Improved folder tree with creation rules and hunting category info text
  • Reduced free tier native QSO cap from 300 to 200
  • Updated tagline to "Log it. Keep it. Show it off."
  • Removed tagline strip from external showcase profile layout

0.0.34 — March 17, 2026

  • Added Stripe premium subscription system with checkout, billing portal, and plan management
  • Added premium gating for advanced features with upgrade prompts
  • Replaced auth landing and layout with native mobile-friendly variants
  • Added ShowcaseTab to profiles replacing the old profile tab
  • Added QSO delete cloud function for proper contact removal
  • Added ADIF export service for cleaner log file generation
  • Added rig manager component with antenna and radio profile forms
  • Improved search with text highlighting in results
  • Added network connectivity toasts for offline/online status
  • Removed filter profiles system (replaced by simpler activity filters)
  • Consolidated solar data queries into a single endpoint
  • Cleaned up dead code across navigation, contexts, and map utilities

0.0.33 — March 14, 2026

  • Fixed map overlay z-index so panels render above map controls
  • Added network fallback for activity spots when cache is empty
  • Improved POTA activation modal layout for clearer contact actions
  • Removed unused data modules and dead code

0.0.32 — March 14, 2026

  • Added folder media system with photo uploads and media gallery for contact folders
  • Overhauled activations section on profiles with expanded detail views
  • Improved map components with better tooltips, markers, and panel layout
  • Refreshed all documentation to match current feature set
  • Added attempted activators tracking
  • Simplified folder tree navigation and log page layout
  • Updated home page with new hero imagery

0.0.31 — March 12, 2026

  • Removed dormant features: recommendation feed, trophies, milestone sharing, and feed eligibility system
  • Improved profile layout with activations section and my shack section
  • Added category folders for automatic QSO organization
  • Enhanced activity tab with streamlined layout
  • Simplified folder tree browser
  • Added FT8 spectrogram visualization utilities
  • Improved location settings UI

0.0.30 — March 11, 2026

  • Improved external profile layout with read-only equipment cards and branded social icons
  • Added drag-and-drop photo uploads, livestream links, and notes to activation Field tab
  • Capped profile logbook preview to 5 recent contacts for cleaner profiles
  • Reordered profile bento grid for better visual flow

0.0.29 — March 11, 2026

  • Added folder media notes: attach photos to activation folders and monthly log folders
  • Redesigned activity panel layout for better map/list interaction on all screen sizes
  • Added hamtrax branding to the mobile navigation bar
  • Streamlined activation tabs: Log, Spots, Photos, and Finish
  • Removed mandatory "I saved my log" checkbox from activation finish flow
  • Folder photos are visible on public profiles

0.0.28 — March 11, 2026

  • Added tappable signal strength picker for faster S-meter input during activations
  • Improved QSO log form layout for smoother activation logging
  • Enhanced activation map with better panel sizing and interactions
  • Fixed floating cards overflowing on narrow screens
  • Improved tooltip positioning to avoid clipping at screen edges

0.0.27 — March 11, 2026

  • Fixed public profile links (hamtrax.com/s/xxx) requiring login — profiles are now viewable by anyone
  • Added QRT closing spot when ending an activation
  • Improved activation finish tab with clearer end-of-session UX
  • Fixed park detail modal animation glitch when closing

0.0.26 — March 11, 2026

  • Added GPS auto-detection of nearest POTA park when starting an activation
  • Fixed profile pages showing "own profile" view when navigating by callsign
  • Improved folder display cards with clearer "Saving to" labels
  • Consolidated floating panel heights into a single theme variable

0.0.25 — March 10, 2026

  • Replaced station page with streamlined external profile relay
  • Improved map performance by extracting clustering, animation, and style transition logic
  • Updated contact folder data layer for consistency

0.0.24 — March 10, 2026

  • Added activation spot persistence across page refreshes and device switches
  • Added RST signal report stepper for faster QSO logging
  • Added QSO edit and delete within active activation sessions
  • Added equipment profile selectors (radio/antenna) to activation setup
  • Improved auto-spot comments to lead with your hamtrax profile link
  • Added "In Progress" badge on activation folders in the folder browser
  • Improved station page mobile layout with responsive logbook columns
  • Improved station page performance by externalizing CSS
  • Updated home page copy with clearer value descriptions

0.0.23 — March 9, 2026

  • Improved station page mobile layout (hero, typography, bento grid spacing)
  • Fixed solar dashboard to load data independently when opened as a tool
  • Fixed location mode button sizing on My Station

0.0.22 — March 9, 2026

  • Added profile bento layout with logbook section and live activation banner
  • Added public logbook display on profiles (opt-out in settings)
  • Added automatic folder organization — activation folders created on start, monthly folders for casual contacts
  • Added FT8 decoder tool (experimental)
  • Added new UI components: equipment card, info tooltips, and default star indicators
  • Fixed remaining broken references from dormant feature cleanup

0.0.21 — March 8, 2026

  • Removed dormant social features (clubs, friends, messaging, narrative feeds, challenges, compete) to simplify the app
  • Removed dormant activity modes (satellites, repeaters, nets, airports, DX spots, contests)
  • Streamlined station page to focus on OG meta tags and SPA redirect
  • Improved activation map with optimistic spot injection, manual spot refresh, and quick-add QSO from spots
  • Added auth gating to activation entry from home page

0.0.20 — March 6, 2026

  • Rebuilt the activation logger from the ground up — modular setup, QSO logging, and map views replace the old monolithic form
  • Added park-to-park detection during activations
  • Added auth modal — prompts sign-in when accessing features that require an account
  • Redesigned activity tab with improved filtering and list layout
  • Added profile privacy toggle for controlling public visibility
  • Redesigned home page with new hero imagery
  • Improved map markers and station page rendering
  • Removed outdated internal documentation

0.0.19 — March 3, 2026

  • Improved Safari reliability — app now gracefully recovers from IndexedDB connection drops instead of breaking
  • Added specific error messages for radio and antenna save/delete failures in Rig Manager
  • Simplified trophy unlock notifications

0.0.18 — March 3, 2026

  • Redesigned profile equipment section with separate radio and antenna rows, drag-to-scroll, and star-based default toggles
  • Added click-to-edit equipment from profile card — opens rig manager directly to the selected item
  • Fixed Firestore crashes on Safari mobile and iPadOS caused by IndexedDB connection drops
  • Added hamtrax.com to allowed origins for DX Cluster and Reverse Beacon cloud functions
  • Migrated satellite API key to Firebase secrets for better security
  • Added challenges system internal documentation

0.0.17 — March 3, 2026

  • Added club invitation system — admins can invite friends directly to their club
  • Redesigned origami card styling for sharper text rendering and unique per-card skew variation
  • Added folder browser component for navigating log contact folders
  • Improved legacy non-POTA activation detail modals with better layout and information density
  • Redesigned operator discovery cards in the friends section
  • Overhauled the vertical feed with new layout and interaction patterns
  • Added proper favicons, web manifest, and night owl mascot
  • Added firestore security rules for club invitations
  • Improved club detail page layout with scrollable content and left-aligned header
  • Added competitor analysis research documents

0.0.16 — March 1, 2026

  • Added @username system for social identity — every account gets a unique @handle for friend discovery
  • Usernames are searchable by callsign or @username across the app
  • Added username display to profiles, search results, friend lists, and callsign detail modals
  • Added editable username field in settings with availability checking and reserved name protection
  • Added welcome modal for new user onboarding
  • Improved club settings with additional configuration options
  • Added log folder filtering and image cropper component
  • Added contest calendar cloud function

0.0.15 — February 28, 2026

  • Fixed broken images across the app — beaver logo, landing carousel, trophies, satellite art, and feed backgrounds were missing from deployed builds
  • Added adaptive timing to the CW decoder that learns dit/dah boundaries from the operator's actual sending speed
  • Added a real-time decoder event log to the CW decoder showing timing decisions as they happen
  • Narrowed CW bandpass filter to 500–800 Hz for better tone selectivity
  • Improved callsign input validation on the settings page

0.0.14 — February 28, 2026

  • Added device showcase carousel to landing page showing the app on desktop, tablet, and mobile
  • Improved deep link handling to prevent navigation race conditions on page load
  • Added spacing and navigation tokens to the design system
  • Cleaned up repository by removing unused screenshots and image assets

0.0.13 — February 27, 2026

  • Hardened production security: disabled React DevTools, stripped console output, anonymized bundle chunk names
  • Tightened Content Security Policy by removing unsafe-eval and dev-only WebSocket origins
  • Fixed UI bugs in navigation service, tool pane, settings page, and activity tabs

0.0.12 — February 27, 2026

  • Added crash reporting with error boundary and hang detection
  • Added native iOS Crashlytics integration
  • Added activity icon strip to home page for quick navigation
  • Added maxInstances limits to all Cloud Functions to control scaling costs
  • Refreshed trophy images across all award categories
  • Updated documentation site content and removed deprecated legacy map page

0.0.11 — February 26, 2026

  • Added SEO meta tags, Open Graph, and Twitter card tags for rich link previews when sharing
  • Added robots.txt for search engine crawling

0.0.10 — February 26, 2026

  • Added spotter map to activation feed cards showing geographic reach with spot count overlay
  • Migrated all UI components to origami design system with paper-texture and semantic z-index tokens
  • Removed the legacy globe map in favor of the flat map (reduced bundle size)
  • Added new origami mascot illustrations across feed cards and empty states
  • Refactored CW decoder into modular architecture
  • Added DX spot waterfall visualization for hunting workflow
  • Added short code system and club constants

0.0.9 — February 24, 2026

  • Added browser back/forward button navigation support
  • Darkened overall color palette for deeper charcoal aesthetic
  • Refreshed landing page copy with conversational, benefit-focused messaging
  • Added category labels to feed cards (e.g., "Airport Near You", "Repeater Near You")
  • Improved trends engine to filter out common ham radio terms from word clouds
  • Added activation showcase slide to landing carousel

0.0.8 — February 23, 2026

  • Redesigned landing page feature cards with accent glow effects and service logos
  • Switched home feed to CSS Grid layout with improved live spots sidebar
  • Added staleness filtering to live spots (5-minute max age)
  • Fixed OAuth sign-in popup error handling

0.0.7 — February 22, 2026

  • Refined dark theme with deeper, more saturated backgrounds
  • Added hard photo filters to Flickr seeder (rejects people, requires nature tags)
  • Added purge-invalid mode to clean non-compliant images from Firestore
  • Added changelog section to documentation site

0.0.6 — February 21, 2026

  • Simplified profile card header design
  • Added new carousel slides with updated screenshots

0.0.5 — February 21, 2026

  • Replaced carousel images with self-hosted WebP for faster loading
  • Enabled Google Analytics
  • Fixed toast notifications in Rig Manager

0.0.4 — February 11, 2026

  • Initial public release