Skip to main content

Changelog

A running log of what shipped in each release.


Next​

  • Fixed image zoom labels across all supported languages.

  • Contacts you log now finish uploading as soon as you return to Hamtrax or reconnect, instead of sometimes waiting several minutes.

  • Contacts you log on QRZ now reach Hamtrax on the next sync. QRZ sync used to bring in a contact logged directly on QRZ only after Retry or reconnecting the logbook. Every check now brings new QRZ contacts in, and once a day a check rereads the whole logbook to catch QRZ edits the shorter checks miss, without sending any contact again. See QRZ sync rules.

  • QRZ sync asks you to review less. When QRZ saves a contact, it fills in some details on its own: the home location from your QRZ profile, its lookup of the other station, and an end time. Contacts Hamtrax sent, including ones an older version sent without a station callsign, used to come back as conflicts over those details. Details a contact simply lacks no longer count as differences, and Use QRZ leaves them blank, so a home grid or state no longer lands on a contact made portable or from a park. A Use QRZ choice no longer comes back as the same conflict, and it keeps the contact in its folder instead of sometimes moving it from a custom folder into a monthly hunting folder; a contact moves only when QRZ's values change where it belongs, such as a different date, park, or program. When QRZ refuses a contact it already holds, Hamtrax links the two instead of leaving an uncertain send beside a second review, and an older uncertain send clears itself once a later sync finds QRZ's copy. See QRZ sync rules.

  • QRZ sync now files plain contacts and your own country's contacts on its own. A QRZ contact with no park, program, other country, or detail such as a contest used to wait under Review issues for Choose folder; it now files into a custom folder for its month, such as October 2026 - No Program, including ones already waiting. Like a monthly hunting folder, that folder holds only its own month's contacts, and sync never re-creates one you delete. With no country saved in your profile, contacts from your own country used to file into DX folders; Hamtrax now reads your country from your callsign. Contests, satellites, and summits you chased still ask, and a change that leaves Hamtrax and QRZ matching, such as a QRZ record corrected to match Hamtrax, no longer waits for review. See QRZ sync rules.

  • QRZ sync no longer flags spelling differences. A country name the two services spell differently, such as United States and United States of America, and a phone contact one side keeps as plain SSB and the other as USB or LSB, no longer count as differences, and Hamtrax keeps its own; USB against LSB still asks for review. Such a contact now matches its QRZ copy instead of waiting as an uncertain send. See QRZ sync rules.

1.1.47 — October 14, 2026​

  • Improved Home with real app screens, an automatic-sorting walkthrough, and an iPhone Remote Control preview.

  • Kept Home, Hunt, Activate, DX, and Repeaters visible beneath the public header on phones.

  • Moved Continue with Google above the email sign-up form on web and Android.

  • Simplified Get Started progress with one monochrome bar.

  • Closing sign-up partway no longer starts you over. If you closed the sign-up window after creating your account, for example by clicking outside it, opening sign-up again went back to Create Account. It now picks up at the callsign step with your account already created, whether you signed up with email or Google. See Creating Your Account.

  • Error messages share one red box, and Forgot password? is easier to tap. Errors when signing in, signing up, resetting a password, importing, or revoking a CLI key now all appear in the same red message box. After a failed sign-in, Forgot password? appears as a button beneath the error text. See I Can't Sign In.

  • Connecting QRZ now asks your plan first, and a failed connection says why. QRZ's Logbook API needs its XML Logbook Data plan or higher, so Add logbook, Import Contacts' QRZ Connect, and Get Started's Connect QRZ now open Which QRZ plan do you have? No subscription, or not sure points you to a file from the app you logged with, since QRZ's own export needs a subscription too, and marks the Get Started QRZ task Not applicable, which counts toward progress. A failed connection now names its cause, such as a plan without API access or an incomplete key, and the one fix. A logbook whose plan lapses used to read Revalidation required and ask for its key again; it now asks you to renew on QRZ.com and retries on its own while automatic sync is On. If QRZ can't be reached, a check now stops once instead of filing an issue on every contact. See Import from QRZ.

  • Adding a QRZ logbook that's already connected now uses your sync choice. Pasting that logbook's key into Add a QRZ logbook replaces its key, but its Automatically sync with QRZ switch was ignored and the logbook kept its old setting. Your choice now applies, and QRZ API key replaced confirms the new key. Replace API key on the logbook's own page still leaves the setting alone. See Import from QRZ.

  • POTA setup groups sign-in methods and help separately. Under How did you create your POTA account?, Email and password and Amazon, Facebook, or Google sit side by side on tablet and desktop and stack on a phone. I don't know follows under Need help?. Each answer opens its existing setup page, and Back follows the same path. See POTA connection.

  • Contacts now save your callsign when you log them. Contacts logged in Hamtrax used to be saved without a station callsign, so QRZ sync could never send them to your QRZ logbook. A new contact now saves your account's callsign as its station callsign, or the activation's callsign when you log it in an activation, so it can sync with your QRZ logbook for that callsign. Imported contacts keep the station callsign their file records; one that records none gets yours. See QRZ sync rules.

  • Find parks you haven't hunted. Show new park badges in Settings → Integrations → POTA starts Off and appears while POTA is connected and automatic contact sync is on. Enable it to show New park on Hunt rows, live map popups, and activation details. Badges use your complete POTA hunter history and saved Hamtrax hunts, and wait for that history after connecting. See POTA connection.

  • QRZ sync leaves less for you to review. Use QRZ for all conflicts in Review issues queues QRZ's version for every conflict in one choice, a single Use QRZ now reads Queued until the next sync applies it, and each contact is listed once instead of twice. Contacts you made activating a WWBOTA bunker, a SOTA summit, or another program Hamtrax doesn't run now file themselves into a custom folder per callsign, reference, and UTC day, including ones already waiting, instead of asking you to Choose folder. A QRZ record that exactly matches a Hamtrax contact saved without a station callsign now links to it instead of waiting as a refused duplicate. See QRZ sync rules.

  • An activation now holds only its own callsign's contacts. Importing a log you kept under a club call or a callsign you used to hold filed those contacts into an activation under your current callsign. That station now gets an activation of its own, and its session folders for programs Hamtrax doesn't run are named for it too; /P and other portable or country-prefixed forms of your callsign still count as yours. The contact form greys out an activation for a contact recorded under another station's callsign, with This contact's station callsign doesn't match this activation's callsign. A contact saved without a station callsign now exports its activation's callsign as STATION_CALLSIGN rather than your current one, so an activation logged before a callsign change still exports under the call you used. See How imported contacts are filed.

  • Contacts show in the folder they're saved in. A contact still carrying a leftover link to an activation could be listed under that activation instead, leaving the folder it was saved in looking empty, and Move refused it as an activation contact. Each contact now shows in its own folder, and Move and Merge go by that folder, so activation contacts still stay put. The POTA edit warning follows the folder too: it appears when you edit a contact in an activation, or move one into it. See Activation QSO edit warning.

  • Deleting an automatic folder no longer stalls QRZ or POTA sync. If you deleted an activation or monthly folder that a sync had created, the next synced contact that belonged in it stopped that sync, which kept retrying. The folder now comes back when a new contact needs it.

  • The site-header language menu now matches Preferences. Language names and the selection check use matching text and panel styling in both places. The header keeps its compact button and large tap targets. See Language.

  • Emails get your first name right. Nearby-activation alerts used to trim accented letters off either end of your first name — José arrived as "Jos" — and swapped a name in a non-Latin script for your callsign. A Pro grant email greeted you by callsign. Both now use your first name, accents and all.

  • Nearby-activation emails now come on weekday evenings only. The alert that someone is activating a park near you used to arrive on weekends, too. It now comes only Monday through Friday, between 6:00 and 8:00 PM in your callsign location's time zone. See Email notifications.

  • Nearby-activation emails open Hunt on the park. Their button used to open the Hamtrax home page. Hunt in Hamtrax now opens Hunt on the park being activated. See Email notifications.

  • New accounts get a welcome email again. Paused since July, it now goes out the moment you create an account, to your account's email address. Like a password reset, it always arrives and has no switch. Existing accounts don't receive one. See Email notifications.

  • One unreadable QRZ record no longer stalls a whole logbook. A QRZ record Hamtrax couldn't read, such as one with an invalid date, used to stop that logbook's sync, which kept retrying without saying why. That record now waits alone under Review issues while the rest keeps syncing: fix it on QRZ and select Retry, or choose Don’t import. A check that can't finish for another reason now names the cause, such as Could not reach QRZ. Automatic retries then space out while it keeps failing, from 15 minutes up to a day. See QRZ sync rules.

  • Values an activation fixes now show a lock. On a finished activation's quick-add card, the park and date sat in rounded chips that looked like tags or filters. They now carry a small lock, and so do the park and read-only date inside the full contact form, so you can tell at a glance what the activation has fixed and what is yours to fill in.

  • Hamtrax now comes in light and dark. Hamtrax used to be dark everywhere. It follows your device's light or dark setting by default. You can choose Automatic, Light, or Dark under Settings → Preferences → Appearance, or tap the sun/moon button in the signed-in sidebar or public header (inside the navigation menu on narrow screens) to switch between light and dark. The hamtrax.com pages you see before signing in follow the same choice, which is saved on this device rather than to your account. Maps follow the same look, street detail included: zooming in used to swap in pale, full-color street tiles, which now take on the overview map's tones. Date and time pickers now match the look too; in Dark they used to open light. Shared QSL cards and contact-map images keep the dark look, so everyone receives them the same way. Appearance is coming to the iOS and Android apps in a later update, and they stay dark until then; so does Hamtrax on iOS 16.1 or earlier. See Appearance.

  • Transparent photos stay transparent. A radio, antenna, mod-log, or profile photo with a see-through background, such as a PNG product cutout, used to be saved on a solid black square. New uploads keep their transparency, so they sit cleanly on light and dark pages alike; upload the original again to clear an older photo's black square. See Equipment photos.

  • Android's status bar stays readable with your phone in light mode. With your phone set to light mode, the clock, battery, and notification icons above Hamtrax used to sit dark on its dark bar. They're now light.

  • Share Contact and Contact Map lead with the preview. The image fills the top and sides of the sharing window, with no extra heading above it. Options, Download, and Share are in the preview footer, with Cancel at the bottom left. The last generated image stays above the options on every screen size; Generate applies changes and Back discards them. See Share Contact and Contact maps.

  • Radio and antenna pickers are now compact lists. My Radios and My Antennas show saved gear in full-width rows instead of tall cards with separate action footers. A larger photo sits on the left; name and model or type stay together in the middle, with radio Power or supported antenna bands where available. The checkbox and a quiet Configure action sit on the right, and a subtle warm tint and slim left stripe mark the current choice. The footer keeps the selected count on the left and Add Radio or Add Antenna on the right. Signed-out visitors can also try every field in the mock editors; closing discards the draft and leaves the demo gear unchanged.

1.1.46 — October 8, 2026​

  • The Library's Frequencies tab is easier to browse. Service choices now sit beside the open table on wider screens, or in two columns above it on a phone, and each table is headed by its service's name. Select another service to switch tables, or the same one again to hide its table; filtering works as before. See Frequencies.

  • Signed out, Hunt and DX lists start collapsed, with the top row open as an example. On the Hunt and DX tabs, visitors used to see every row's tray open at once. Rows now start in Collapsed view, and only the top row arrives open, so you can see what a tray holds; it closes like any other row. Switch views with the button above the list; your pick now carries between Hunt and DX for the rest of your visit. Signed in, rows still start in Expanded view, or in the view you saved. See Finding Live Activations.

  • Maps now show geography while they load. Faint real geography appears during startup, then brightens with city names and pins when the map is ready, replacing the flashing loading gems.

  • Signed out, the hunting map's PSK button now leads to sign-up. It used to sit greyed out with only a hover tip, and tapping it on a phone did nothing. Tapping it now opens a sign-up prompt that previews the red dots marking where your FT8 signal is heard; signed in, nothing changes. See Reception Footprint.

  • CW Training now keeps your setup. Your speed ranges, pitch, volume, answer voice, practice set — down to individually chosen characters — and prompt shape used to go back to their defaults each time you reloaded or reopened Hamtrax. They now save to your account as you change them and follow you to your other devices, where a change shows up the next time you open CW Training. A new Reset to defaults button at the bottom of the panel puts every setting back to its default after you confirm, on all your devices. See Saved Settings and Reset.

  • Frequency fields now take a comma as the decimal point. Phones set to a region that writes decimals with a comma offer only a comma on the decimal keypad, which Start Activation and Spot Yourself used to ignore; every frequency field you log, start, or spot with — and a radio's Power on its equipment-picker card — now turns 14,250 into 14.250 as you type. Activation fields also no longer silently refuse a fifth decimal place or a value above 2,000 MHz: Max 4 decimal places or Frequency too high flags it (on Start Activation, once you tap Start), and a flagged frequency still can't start, log, or spot. See Starting an Activation.

  • Signed out, My Station names your area. On the Hunt, DX, and Repeaters tabs, Location under My Station showed only a country guessed from your browser language. It now shows your approximate area, estimated from your internet connection, and falls back to that country when no area can be found. Nothing is saved, and signed-in accounts still use their own location. See Setting Where You're Hunting From.

  • Signed out, narrow hunt cards no longer spend a line on Spot. When a hunting-list tray, activation details, or a map popup ran out of room, Spot on POTA.app took its own line above No Luck, Later, and Contact — even signed out, where it only opened the account prompt. Signed out, it's now hidden at that width and the three buttons have the line to themselves; signed in, nothing changes. See Finding Live Activations.

  • Home's sign-up buttons now say Get Started. The hero's Import My Contacts button and the closing Create Account button both read Get Started, and still open account creation. See Home.

  • Home's connected services now open account creation. The QRZ, POTA.app, LoTW, Reverse Beacon Network, and PSK Reporter names under Connect to used to be plain text. Choosing any of them now starts sign-up. See Home.

  • The Xiegu X6100 joins Remote Control. Connect its built-in WFSERVER and your phone to the same router with Local network, then follow the radio-specific guide for live frequency and mode readings and one-tap tuning. The guide names the radio's buttons and knobs, explains where to find network values, and supplies the WFSERVER defaults and save/start instructions. Because APP V1.1.8 needs an address entered on the radio, Suggest an address checks your Wi-Fi for an address that does not reply and fills the next Radio IP step. The suggestion is not reserved and may be used by an offline device or assigned later; router reservation is optional reliability advice. The iPhone guide also explains touch and hold → Copy for the router address. Hamtrax's waterfall is unavailable on this model. See Supported radios.

  • Android radio control is temporarily paused in the upcoming app update. Live radio connections, readings, tuning, and the waterfall are unavailable on Android. Saved radio and antenna profiles and normal contact logging remain available, and iOS radio control continues to work. See Remote Control.

  • Sign-up moves on the moment you tap. Continue and Create Account used to hold you while Hamtrax created your account, looked up your callsign, and saved your profile — and when the lookup stalled, Continue never unlocked. Each step now advances right away while that work finishes in the background — even if you close Hamtrax or lose signal right after, it finishes when you're back — and Create Account opens Hamtrax immediately. If your email is already registered or your callsign isn't found, Hamtrax brings you back to that step to fix it, and an account whose setup was cut off is repaired the next time you sign in. See Creating Your Account.

  • A POTA activation's details and a DX spot's country details now use the same contact buttons as their list rows. Activation details had their own set — a full-width Heard, then Tried, Try Later, and Contacted — and country details kept Tried, Try Later, and Contacted in a bottom bar. Both closed as soon as you logged the contact and offered only Share Contact afterward. They now show the row's No Luck, Later, and Contact group, plus Spot on POTA, with Tune above when your connected radio can tune the spot; on country details they sit directly under the station, and the bottom bar is gone. Saving with Contact keeps the details open, with the green Contacted divider above Remove contact, Share Contact, and Edit Contact, and they stay open behind the Remove contact confirmation. See Finding Live Activations and The country detail view.

  • A radio's bands and modes now appear on your Showcase, and picking a known model fills in its specs. The bands and modes you checked on a radio never showed up on its Showcase equipment card, under a folder's Equipment used, or on your shared Showcase, and a new radio listed SSB and CW as its modes no matter what you checked. Saving a radio now carries its choices to all of them; a radio saved earlier catches up the next time you save it. Picking a known model from the Model list fills in a radio's rig type, Max Power (W), and supported modes and bands, or an antenna's type, pattern, bands, polarization, and impedance, leaving alone anything you have already changed in the form. Modes & bands now offers DMR, D-STAR, and C4FM. The Manufacturer and Model suggestions were rechecked against the makers' own specifications and use each maker's spelling, such as SOTABEAMS, FTDX10, and IC-7300MK2. Quansheng joins the radio makers, and MyAntennas, Chelegance, Elecraft, Super Antenna, Gabil, and Ed Fong join the antenna makers. A radio sold in several band versions, like the QRP Labs QMX, is listed once per version, and GMRS-only radios, masts, and tuners are no longer suggested. See Picking a known model.

  • Extra Hamtrax tabs no longer slow your saves. With Hamtrax open in more than one tab or window, the first one you opened did all the syncing, even after it had sat in the background, where browsers slow it down. A contact saved in the tab you were using could take half a minute or more to reach the cloud and your other devices, and Start could sit on Starting... that long, then post no start spot. Now the tab you're looking at takes over syncing, so there's no need to close the others. Start and Finish also act on the cloud's answer the moment it arrives, so your start spot and Auto-close on POTA.app notice go out as soon as the cloud accepts, and a stalled sync retries on its own every 15 seconds instead of waiting for your next change.

  • DX country details lead with the station. Recent spots starts collapsed, and an available description follows the photo and its credit directly before the facts on phones, tablets, and desktop. See The country detail view.

  • Park Explorer keeps search and nearby parks together. The search field comes first, followed by the browse location and a compact park count. Desktop gives the park list more room; tablets now show the list beside the map instead of over it, and phones retain the collapsible panel. Park rows, paging, map controls, and park details work as before. See The panel.

  • The Activate tab puts your next step first. An activation still In Progress now comes first, then New Activation with Import a past activation and Go to logbook beside it on wider screens or below it on a phone.

  • Logging a contact by hand now starts from search. The Manually log contact card is gone from the top of the POTA, DX Chasing, and Repeaters hunt panels, along with each repeater row's Log button and the Log Contact button on a repeater's map pin. To log a contact you made before opening Hamtrax, type the callsign into the Callsigns, Parks search — captioned Search to manually log contact — select it under Callsigns, and tap Log Contact. The full Add Contact form opens with the callsign filled in, plus the frequency, mode, and POTA park from a live spot; for a repeater contact, choose the repeater in its Their Repeater card, or tap + Add Contact on the repeater's row to open the form with it already chosen — on the signed-out Repeaters tab, that button asks you to create an account first. The search's Activators tab still adds a station that's on the air right now in one tap. The Logbook's own Add Contact and monthly-folder quick-add cards, one-tap Contact on live spots, and automatic filing into monthly and activation folders are unchanged. See Search and Logging a repeater contact.

  • Settings opens with a clear title and a compact profile row. Your avatar, callsign, and name sit together under Settings, bringing the six destination rows higher on the page. Tap that profile row to open Account. The shared Get Started checklist stays above them. See Accessing Settings.

  • Settings keeps each heading with its controls. Account brings your photo, callsign, and username into one Profile section, with Plan and Security beside each other on wide screens and stacked on smaller screens. Preferences and Help use the same flat sections. Help's Docs section now opens with Open docs and groups its guides under Logbook and setup and POTA, with Feedback beside it on wide screens and below it on smaller screens. See Settings.

  • The POTA connection page puts setup first. When setup is needed, the authorization-code explanation and Let’s find my code lead, with Automatically sync POTA contacts beside them on a wide screen or below them on tablet and phone. The switch remains available before connecting and starts On. On a phone, How did you create your POTA account? uses a compact heading above the three choices. See POTA connection.

  • Your own Showcase brings identity and social links together. Social links and their editing and visibility controls now sit inside the header card with your sharing actions. On a wide screen, Equipment sits beside the first program card, with later programs full width below; narrower screens keep Equipment first in a single column. See Your Showcase.

  • Band Plan shows your saved license at the top. A card names your license class over its band plan — or just the plan, for plans without license classes — above the Band dropdown and its chart, with About this band plan last, and the chart always shows that saved plan. The tool's own Agency and License dropdowns and its Settings button are gone: tap the card to change your plan or license class under Settings → Preferences → Station → Band plan. See Choosing Your Band Plan.

  • Ending an activation is instant, even with no signal. Confirming End activation on the hunt panel's green You're activating card, ⋯ → Finish in the Activate tab's In Progress list, or Finish Activation could leave the activation open for half a minute or more — and with no signal it stayed open, so hunted contacts kept filing into it and a new activation couldn't start. Now the activation ends the moment you confirm: the card goes, hunts return to monthly filing, and you can start the next park right away. In the rare case the cloud can't accept a close while the activation is still open there, Activation reopened brings it back so you can end it again. If you'd already started your next park, Activation not started asks you to finish the reopened one, then start again. See Hunting From a Park and Ending an Activation.

  • Confirmations close the moment you confirm. Ending, finishing, deleting, disconnecting, and signing out no longer hold the dialog open while the action runs; anything slow reports back in a notification.

  • Reverse Beacon checks and the nearby Repeaters starting area now work in the Android app. In the Android app, Tools → Reverse Beacon couldn't complete a check, a callsign dossier's RBN receptions never loaded, and the signed-out Repeaters tab always opened on the Chicago, IL fallback instead of a nearby area. All three now work as they do on the web and in the iOS app, with no app update needed. See Reverse Beacon Network and Choosing the browse area.

  • Share Contact keeps the card visible while you choose Options. The full card preview opens directly below the header. Open Options beside the title to adjust QRP or wattage below the preview on phones, tablets, and desktop. Generate applies your changes; Back discards them; either one returns you to Download and Share in the footer. See Share Contact.

  • Search results are easier to compare. The query and category tabs stay visible while you scroll flat result rows. Park and activator actions sit beside their details on larger screens and beneath them on phones. Find Callsigns, Parks in the top status bar on wide screens, immediately to the right of the Hamtrax/Pro symbol; on narrower screens, search stays at the top of the sidebar. See Search.

  • Park details keep the park name visible while you browse. The name stays in the header as you scroll. On wider screens, available photos sit beside the park's reference, type, region, coordinates, distance, weather, and two stacked Activations and QSOs count cards. Those cards sit to the right of the location and weather when there is room, otherwise below them. On a phone, photos follow the summary beneath the header. See geography and Recent activations open beneath them at full width. The activation count replaces the old success-rate bar and shows successful activations, total attempts, and of yours when you've activated it. That personal count comes from your Logbook's activation folders, even when your activations are absent from POTA's recent history. Tap Activations to open Recent activations. A park no one has attempted yet shows 0 Activations and Be the first on the air from here. Images and Activate Here stay in the bottom bar. See Park Detail.

  • Get Started now separates progress from task actions. The animated Home-palette origami percentage bar sits above Setup (account, radio, and QRZ connection) and Contacts (import, a hunted POTA contact, and sharing a contact map). The two groups sit beside each other on wider screens and stack on a phone. The first unfinished task appears above them with a short explanation and does not repeat in its group. Each task row opens the same short instructions and destination action, and completed rows stay marked in their group; tasks can still be completed in any order. In Settings, the task list starts closed for every account, with the completion count and percentage bar visible. While tasks remain, Next step below the bar names the first unfinished task and opens its instructions; expanding replaces that compact preview with the full task groups. The preview disappears once all six tasks are complete. The floating banner's top-right X permanently hides only that banner. The final completion celebration finishes before the visible banner yields or an expanded Settings task list collapses, with an immediate transition under Reduce Motion. Task instructions keep their plain window, neutral numbered steps, and compact Completed badge. Connect QRZ opens QRZ's connection page when setup is needed and immediately advances both checklists when the connection is saved; existing connections count on load, and importing contacts remains a separate milestone. Creating a radio advances its milestone as soon as the profile is saved. See Finish Setting Up Hamtrax.

  • Home puts the logging promise and import action first. The origami forest scene fills the opening, with the copy and Import My Contacts over its lower-left on desktop and upper-left on tablets and phones. Desktop uses a larger headline, supporting copy, import button, and download links. Shading follows the copy to keep it readable. Quiet section numbers and dividers carry the product tour to the parks pledge, explainers, downloads, and legal links. The five screenshot positions, three benefits, and existing actions keep their behavior. See Home.

1.1.44 — October 5, 2026​

  • A folder's DX summary puts worked states first. Each keeps its contact count; states not yet worked are tucked into a collapsed Not yet worked list. See Folder DX summary.

  • Signal-report arrows are larger and easier to tap. Each up/down arrow now uses the same controls as other Hamtrax icon actions.

  • The Answer CQ POTA CW guide now shows numbered steps. Answer CQ, Send report, and Optional close follow a connected 1–2–3 sequence. The suggested transmissions, hints, and Morse codes are unchanged.

  • The Library's Morse reference uses flat character-and-code rows. Dots and dashes appear without glow in both the reference and the POTA CW guide.

  • Band group checkboxes now show partial selections. In radio and antenna profiles, an All MF/HF/VHF/UHF/SHF checkbox shows a dash when only some of that group's bands are selected. Tapping it selects the whole group; tapping a fully checked group clears it.

  • All map markers now share one size setting. Choose Small, Medium, or Large under Settings → Preferences → Map → Map marker size; it applies across Hunt, Activate, Park Explorer, Logbook, park details, World Coverage, and signal-report maps. Separate POTA and contact size controls have been replaced. See Marker sizes.

  • Contact Map Options keeps Radio and Antenna labels visible when you select equipment.

  • Folder details now fit the content and the screen. Logbook details groups photos, notes, and links below the folder name on phones, tablets, and desktop. Empty sections keep visible Add photos, Add note, and Add link actions without blank photo slots. Most used equipment shows the radio and antenna used by the most contacts, counted independently across the whole folder, and a row no contact has equipment for reads No contacts yet; tap Radio or Antenna for the explanation. Equipment stays on contacts rather than being selected for the folder. The details panel steps out during Bulk Edit while the folder name stays visible. The notes editor shows its character count and save status at the bottom, beside a Done button. Showcase folder windows put saved notes and video links immediately after the photos, before equipment and contacts, with more room for their content. See Folder media and Folder equipment.

  • The Solar panel's band conditions are easier to compare on phones. Each band is one row with D (day) and N (night) columns and a small colored dot beside each rating. Wider screens keep the four band cards. See Band Conditions.

  • The Library's Phonetic tab is easier to read on phones. Each letter sits beside its spelling word in two columns, and the pronunciation hints have been removed. Wider screens keep the letter-over-word grid.

  • Library filters are easier to recognize. Frequencies, Q-Codes, and Etiquette now use the same rounded input as other Hamtrax fields, with a search icon beside the filter hint. In Etiquette, Clear filter appears beside a typed query; it restores all etiquette guidance and leaves the field ready for another search.

  • Feedback now opens as its own page. Write in the labeled Feedback message box, tap Add screenshots below it if needed, then Send. The larger message area keeps writing first; optional screenshots stay below it on every screen, with Send after the attachments. Back returns to where you opened Feedback, or Settings → Help after a direct link. Unfinished text and screenshots remain available while the app is open; a successful Send clears the submitted draft. See Feedback.

  • Radio Control is now named Remote Control in Settings.

  • Panels you can minimize now behave like every other window. Band Plan, Solar, CW Training, Library, Hamtrax CLI, Rig Manager, and Add Contact ignored Escape, let Tab wander onto the page behind them, and flew into the sidebar whether you minimized or closed them. Escape now minimizes them, the same as clicking or tapping outside, and Tab stays inside. ✕ now simply fades a panel away, so only a minimized one flies into its sidebar row — on a narrow screen, the menu button pulses to show where it went. Minimizing still keeps your Add Contact draft and folder choice, and CW Training keeps playing. Panels are also centered on wide screens and keep the same side margins as other windows on a phone, and two tall ones open together — Rig Manager over Add Contact, say — now scroll as one instead of running off the bottom of the screen.

  • Notifications now work while a window is open. A notification that arrived while a window was open couldn't be used: its buttons did nothing, screen readers didn't announce it, and tapping it went straight through and closed the window behind it. Now its buttons work, screen readers read it out, and tapping it leaves the window open.

  • Home's list of connected services now opens with a heading. The step naming QRZ, POTA.app, LoTW, Reverse Beacon Network, and PSK Reporter had only its Connects to label; it now opens under Don’t start over, and the label reads Connect to.

  • A spot's detail window now opens and closes smoothly. The window's fade in and out was being cancelled by a shared hover rule, so it appeared and vanished in a cut; it now fades as designed. Pointing at a live POTA or DX row, or moving keyboard focus onto it, now warms up the window's code in the background, so opening it from that row no longer pauses while it downloads. Closing the window is also one motion now: it used to drop the operator's looked-up name and location the instant you closed it, so the window shrank a frame before it faded; the name now stays until the window is gone.

  • Hunting panels now meet the map at a clean edge on wide screens. On POTA, DX, Repeaters, and Activate, the map starts exactly where the panel ends, so the panel never overlaps the map or fades into it. The panel also keeps its own color when the detailed street map appears. The list keeps scrolling normally and map controls stay usable.

  • Windows now wear a restrained metallic edge. Detail windows for a live POTA or DX spot—or a park in Park Explorer—and the app's other windows now share the same 1.5px metallic bezel instead of a plain hairline.

  • Hunt lists now read as clean rows under a flat panel top. The top of the POTA, DX, Repeaters, and Park Explorer panels now sits directly on the panel's own surface, lined up with the rows, with a divider between it and the list, and each panel's name now starts at its left edge in a larger heading rather than sitting beside a round program badge. Signed in, Manually log contact is now the last box in that top section instead of a separate raised card between it and the list. The lists beneath are flat rows separated by thin divider lines, always in one column — medium-width screens no longer split them into two. A live POTA or DX row reads left to right: the segmented Frequency; the callsign and operator name, a flag with the park reference (POTA) or country name (DX), and plain Mode text; then spot age and spot count, with your status beneath them in the same color as the map pin. At the far right, See details opens the detail window, and a chevron below it — or a tap anywhere else on the row, or, with a mouse or trackpad, the pointer resting on it for a moment — opens a tray with the park name and region (POTA) or DX Code and region (DX), the place photo, Tune when your connected radio can tune the spot, and the status buttons; Share Contact and Edit Contact join them after Contacted. Tapping a row no longer opens the detail window, and place photos load only when you open a row. Share Contact now wears a standard share icon, since the arrow-out-of-a-box now means See details. Repeater rows drop the favorite star, put Mode before the callsign on one line, leave a small gap before a borderless Receive / Transmit row with matching compact segmented readouts, center the offset beneath it and any access tone immediately below, mark the bottom-left locality with a small location pin, and close with Log at bottom-right; both frequencies keep the same bright neutral text without coloring either by mode. Park Explorer also drops the favorite star and starts each row 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-1, 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; Activated appears only when the Logbook contains a validated activation for that park. Unworked repeaters likewise stay unbadged; Worked appears only after the Logbook proves a repeater contact. When present, Popular Park starts the footer, Activated sits immediately to its right, and distance stays pinned at the far right. Informational list markers now share the same bright neutral color as the row headings: Repeater Worked and User-added badges; Park Explorer Popular Park and Activated badges; and POTA's Popular star. Mode now uses the same text-only treatment across spot rows, contact rows, pickers, and station details, with no raster artwork. Every frequency value and unit throughout Hamtrax now uses the same bright neutral text as the main headings, independent of operating mode; Mode alone remains yellow for voice, CW, and unknown modes and turns blue for recognized digital modes, while warnings and status actions keep their semantic colors. Every live POTA and DX spot uses the same No Luck / Later / Contact buttons — one visual language whether you're scanning an activator or a country. The list's status buttons keep their height when selected. Tap the active status button again to undo it; the separate × button is gone. The signed-out site's logo, account actions, and navigation tabs now sit on one continuous top surface instead of splitting the header and tab strip into separate finishes. The POTA and DX live-count cards now show three centered rolling digit reels before the first count is ready instead of a leaf, and the card no longer carries a pulsing green Live marker in its corner — the count and its label already say it is live. Once any number appears — including 0 — it stays visible while refreshes continue.

  • Hunting panels clearly separate your station from the stations to hunt. Parks on the Air Hunting, DX Chasing, and Repeaters start with one shared My Station band joined to the panel's top edge. When you open a hunting program while signed in, it defaults to expanded if Location, Radio, or Antenna is not set, and collapsed when all three are set; signed out, it always starts collapsed, with a handwritten note beneath it: we'll save these details for each contact you log. Tap its header to expand or collapse it. Expanded, Used when you log a contact appears above the three controls when you're signed in, with radio power below its name; collapsed, it keeps your avatar, the My Station label, and the current values visible. The You're activating notice sits inside My Station below Radio and Antenna, staying visible beneath their compact summary when collapsed; it shows the park once instead of a separate Location control and value. The program heading and signed-in save destination follow beneath the group. Automatic POTA hunter spotting moves to Respot activators on contact under Settings → Preferences → Hunting: it stays on by default and saves your choice to your account. The Spot button still spots on demand, and Activate keeps its separate Spot on start control. POTA's Hunting from a park? shortcut remains beneath the three choices inside My Location, with the same close-scroll-slide handoff into park selection. Filters is a compact button at the right end of the program heading's row, moving beneath the heading only when there isn't room. Its controls open inline below the heading, and applied Band/Mode values stay visible above the live count, with Clear beside them. The count reads just the result, even with filters on — 86 Activators — and keeps Refresh right beside it, with Expanded view or Collapsed view at the right end of that row. See Hunting. Start Activation drops the Back control that sat beside its title — Activate in the sidebar already opens the tab's own page — and keeps that title, now left-aligned at the panel edge in a larger heading for everyone, above its default-collapsed public explainer when signed out, together with its numbered park, Frequency, and Mode steps, equipment, and Spot on start rows, Start, and, signed in, the folder notice now folded behind a Where will my contacts be saved? row beneath Start. The form sits flat on the panel, keeping park and operating details before the supporting equipment and spotting controls. Until a park is selected, the Suggested Park card sits beneath it.

  • Profile avatars use your initials when you haven't uploaded a photo. Hamtrax shows uppercase initials from the first and last words of your profile name, or the first two characters of your callsign when a full name isn't available. The origami beaver is the final fallback when neither is available. Your uploaded photo still takes priority; use Remove photo under Settings → Account → Profile to return to the default avatar. See Your Photo.

  • Selected rows no longer fill with gold. Ticking a contact in Logbook Bulk Edit used to wash its whole row in flat gold beside its checkbox. Every list now keeps its rows flat: Bulk Edit's checkboxes show what you picked, and a park you pick on a Hunt map is marked by its pin.

  • CW Training now separates listening and settings into five focused cards. Play and Stop sit beside the listening status at the top, with Farnsworth speed, Sound, Practice set, and Prompt shape grouped below.

1.1.43 — September 24, 2026​

  • Hunting panels now simply say your contacts go to your logbook. The button under the panel's title that named this month's folder is gone, along with its No contacts hunted yet notice. Signed in, that spot now reads Contacts will be saved to logbook, and contacts still file into the month's folder automatically — open it from your Logbook.

  • Deleting a folder now tells you whether it worked. Sliding Delete Permanently on a folder that couldn't be deleted — most often because you were offline — did nothing you could see: the confirmation stayed open, its slider stuck at the far end, and trying again meant closing it and starting over. Offline or during a sync error, the confirmation now reads Needs a connection above a greyed-out slider, and a folder over the cloud's 250-contact limit reads Too many contacts to delete at once (limit 250). Otherwise it closes as soon as you slide, the folder stays until the cloud confirms, and Folder deleted appears — returning you to the folder tree if that folder is still open. If the deletion can't finish, Delete failed asks you to check your connection and try again. See Folder operations.

  • Radio setup now walks you through one step at a time. In the iOS app, tap Add a connection, choose your radio and connection type, follow the radio and phone settings, allow Local Network access, then connect. With Local network, record Radio IP once at the radio-address step; Connect reuses it and offers Change. Progress runs Radio, iPhone, then Connect, with Previous and Next step pinned to the bottom of the screen. Skip to connect jumps to that last step, and saved setups open there automatically. A failed connection leads with the one likeliest fix, marks what already worked, and folds the rest under Recheck these settings; a detected model mismatch offers Switch to … with the saved login. Setup no longer asks you to turn off Limit IP Address Tracking; it's suggested only if the radio doesn't answer over Wi-Fi. The Remote Control page opens on your radio's connection status with a one-tap reconnect, and the navbar shows connecting, live frequency, or Radio lost · tap to reconnect. Waterfall preferences appear after the radio connects. See Remote Control.

  • The Icom IC-7300MK2 joins Remote Control. Use Local network through your router, or Ethernet cable with a USB-C Ethernet adapter and a cable from the phone to the radio. Both use the same live readings, tune action, waterfall, and background connection controls. The model also has an equipment preset covering 160 m through 6 m at 100 W. See Supported radios for connection methods and tune coverage.

  • The IC-705 can connect through your home router. Local network uses the radio's 2.4 GHz Station mode, alongside its existing Direct Wi-Fi hotspot method. Each keeps its own address and login, while waterfall preferences belong to the radio and carry over. Auto-connect chooses a saved method on the phone's current network, using the real subnet size for larger home networks too. The form also reports Ethernet interfaces for wired connections. See Supported radios.

  • Remote Control waits for a confirmed frequency before showing success. A successful login alone no longer makes the radio look connected. The frequency, mode, and transmit readings follow front-panel changes within about a second even with CI-V Transceive off. Errors distinguish a phone that isn't on the radio's network, Local Network access that iOS blocked, an unreachable radio, rejected login, busy session, and a radio that never answers after login. See Connecting your radio.

  • The waterfall now collapses out of the way, and its settings open in a window. The waterfall docked along the bottom of the screen kept its full height on every page for as long as Show waterfall was on. A small tab with a chevron now sticks up from its top-right corner: tap it to collapse the waterfall to a thin strip and give that space back to the page, and tap it again to bring it back. The waterfall keeps running while collapsed — the radio stays connected and nothing resets — and it stays collapsed until you close the app or turn off Show waterfall. Controls, at the waterfall's bottom left, now opens a Waterfall window in place of its pop-up panel, with the same settings in three groups: span, filter bandwidth, and frequency step; sensitivity and noise floor; then the color settings. See Waterfall.

  • You can now connect up to five QRZ logbooks. Hamtrax held a single QRZ connection, so an operator with more than one callsign could keep only one QRZ logbook in step. Settings → Integrations → QRZ Logbook now shows a Logbooks section with a count, such as 2 / 5. Each connected logbook is a row that opens its own page. Automatically sync with QRZ, Sync now, Review issues, and Excluded contacts come first, with the logbook's callsign and QRZ totals beside them on tablet and desktop or below them on phones. Replace API key and Disconnect stay below the cards for a connection ready to sync. The last row, Add logbook, connects your first logbook and every one after it, each with its own API key and automatic-sync choice. On Add a QRZ logbook, the key, sync choice, and Connect logbook appear in that order; callsign routing and key-security details sit alongside on desktop and below on tablet and phone. Automatic sync starts On for a new logbook; turn it Off before connecting if you want to sync manually. Existing logbooks keep their saved choices. Hamtrax connects one logbook per callsign, and a contact syncs only with the logbook whose callsign matches the contact's station callsign; a contact without a matching station callsign is never sent to QRZ, though one saved with no station callsign links when a QRZ record matches it exactly. Disconnecting a logbook removes only its key and keeps its matching history for a later reconnect, and deletions you make in Hamtrax are remembered for every logbook, including one you connect later. A logbook connected before this update, or one whose key QRZ rejects, reads Revalidation required in both the list and its own page. The sync card asks for that logbook's key with Validate API key before it can sync; an older connection can reuse its existing valid key. See API-key revalidation and QRZ sync rules.

  • Tune now works on repeaters, and appears only for stations your radio can tune. With a radio connected in the iOS app, each repeater row in the Repeaters list, and its map pin's card, now carries the same tune button as POTA and DX spots. It puts the radio on the repeater's output frequency — in FM when the machine carries FM, or in D-STAR when it carries D-STAR instead — so you can listen straight away; it doesn't set the offset or the tone, so set those on the radio before you transmit. A repeater that runs only DMR, C4FM, P25, NXDN, packet, or ATV gets no button, since your radio can't set those modes, and a DMR or C4FM spot now gets none either, where it used to tune its frequency alone; a spot with no mode, or a mode Hamtrax doesn't recognize, still tunes just the frequency. On every hunt tab the button now also needs a frequency the radio can receive: the IC-705 can't receive 222, 902, or 1296 MHz, so those repeaters and spots show none, and a 23 cm spot can no longer send the radio to about 1.3 MHz. JS8, Q65, FST4, WSPR, MSK144, MFSK, and Olivia spots now select USB data mode, as FT8 always has. See Tuning your radio to a station and Tuning your radio to a repeater.

  • The radio's mode readout now says D-STAR, not DV. The live mode beside the frequency in Remote Control and beneath the waterfall's frequency now reads D-STAR when your radio is in D-STAR, and a mode Hamtrax can't name, such as the IC-705's broadcast WFM, no longer shows up as a raw code like 0x06.

  • FT8 Auto-Hunt has been removed. The card that called FT8 activators, completed the exchange, and logged the contact for you is gone from the hunting list, and there is no automated FT8 operating in Hamtrax. Unattended, automated QSOs are against the spirit and the rules of Parks on the Air — an activation is meant to be two operators at their radios, not two computers — so the feature should not have existed, and keeping it would have put the contacts it made in question. Nothing else about hunting changed: your radio still connects under Remote Control, the tune action on a spot still puts the rig on that activator's frequency in one tap, and you still work them and tap Contact yourself. The listen-only FT8 Decoder, which never transmits, is unaffected. Contacts already logged by Auto-Hunt stay in your logbook — review them, and remove any you are not comfortable claiming.

  • Every warning is now the same orange. Warnings came in three colors: yellow on warning notifications and Needs Filing badges, gold on form-field warnings and setup notices such as offline spotting, and orange on the band-plan triangle, which turned gold when you hovered over it. All of them now use one orange, and the triangle keeps its color when you hover over it. The frequency-change ≠ and contacts flagged in the activation logger stay red, and yellow still marks parks, focus, and selection.

  • The repeater you worked through now has its own card in the contact form. The full Add Contact and Edit Contact form had one Their Park field, which relabeled itself Their Repeater only if you typed a complete repeater reference into it — nothing on screen said a repeater could go there. Their location or park now ends with two cards: the green Their Park, and Their Repeater, which searches the repeater directory by callsign, frequency, or town. A contact holds one or the other. While a park is set — theirs, or your own under From Park — Their Repeater dims and is disabled with the reason beneath it, and choosing a park clears a repeater you had entered. A reference pasted into the wrong card says which card it belongs in, and Save waits until it moves. A monthly folder's form shows only its own program's card. Two fixes come with it: switching My Location or Park away from From Park now clears the park you picked, which used to stay hidden and still file the contact into that park's activation, and picking the suggestion that matches a reference you already typed no longer wipes their City, State, and Grid. See Manual Logging.

  • A contact you add by hand to an activation that ran past midnight UTC now saves. An evening outing west of UTC crosses 0000 UTC almost every time, and importing such a session has always kept it whole — but adding one of its contacts later by hand did not. Set your park, date the contact on the second UTC day, leave Folder on Auto-organize, and the card correctly named that activation; Save then refused it for not matching the day, and because the global Add Contact form closes the moment you save, the contact you had just typed went with it. The form and the importer now resolve an activation the same way, so it files into the very folder the card promised. Choosing the folder yourself always worked and is unchanged. See Adding a Past Activation.

  • QRZ contact sync now has one workspace and a per-logbook sync choice. Automatically sync with QRZ is available before connecting; Sync now checks both directions once, including eligible existing contacts and file/POTA imports, without turning automatic sync on. Precise matches share one counterpart, folder rules still decide admission, and changed or uncertain records wait in Review issues. Hamtrax creates eligible new QRZ records but never rewrites or deletes existing ones. Deleting in Hamtrax leaves QRZ intact and remembers known counterparts under Excluded contacts for explicit restore. The former QRZ import shortcut now opens this workspace without transferring anything. See QRZ sync rules.

  • Custom folders now refuse a contact that belongs to a program — at every door. The importer has always kept POTA, DX, and repeater contacts out of your custom folders, but the contact form, a custom folder's quick-add card, the CLI, edits, Move, and Merge each judged that for themselves, so a park-to-park contact or a foreign station could be hand-filed into "Field Day" and disappear from the folder its program keeps. One rule now decides everywhere. The moment a park, a repeater, or a foreign country makes a contact POTA's, Repeaters', or DX Chasing's, the full form greys out every custom folder with the reason beneath its row — POTA contacts are filed in their monthly Hunting folder. — and disables New beside Folder for the same reason; if the custom folder you had already chosen stops qualifying, Auto-organize takes over and the card names the program's folder the contact will be saved in, with a line beneath saying which folder the contact moved out of and why, returning to your folder if you remove that detail. A custom folder's quick-add card refuses such a save with the same message, Move and Merge are greyed out with a reason whenever such a contact is involved, and the cloud checks the rule once more before accepting anything. Moving an activation contact into a custom folder, which an edit used to allow, is therefore no longer possible; a program contact an older version already filed in a custom folder stays editable there until it moves, and contacts no program claims go wherever you like. A rejected contact's Choose folder re-file in Needs Filing now offers Auto-organize as well, since a claimed contact whose month doesn't exist yet has nowhere else to go. See Logbook Hygiene Rules.

  • The contact form's time-format options now stay out of the way until you need them. Inside Date & Time (UTC), the date and time fields come first, and the two dropdowns that choose UTC or local entry and a 12- or 24-hour clock sit beneath them in a collapsed Time format options row. Most contacts keep the pre-filled UTC values, so the group opens on the fields you actually fill in; tap the row to change how you enter the time, and your choice stays in effect after you collapse it. See Date and time entry.

  • Window titles now sit beside the close button instead of under it. Every Hamtrax window drew its close button alone on the top line and started the title on the line below, so each one opened with an empty band above its heading. The title now shares that top row with the close button — a long park or folder name wraps beside it — and whatever sits beneath the title, such as a park's reference and weather or a window's description, runs the full width of the window. The radio and antenna pickers keep their large centered heading, with the close button level beside it. Screen readers now announce a window's title as it opens; most windows used to open without a name. Close and Minimize now match Hamtrax's other icon buttons, with a larger tap target and a full-size icon.

  • Sign-up and sign-in now share the same layout. On web and Android, the email and password form comes first, with Continue with Google below. Creating an account asks for your password once before callsign and profile setup, and every password field in the app has an eye at its right edge to show or hide what you typed.

  • Home now has one clear account action. The separate Sign up with Google shortcut is gone from the hero, leaving Import My Contacts as the single account button. Google signup remains available inside the signup form, where new accounts continue through callsign and profile setup.

  • Connecting POTA can now bring your contact history into Hamtrax automatically. Automatically sync POTA contacts is visible before you connect and starts On. Leave it on to import available hunter and activation history immediately, then check daily. Proven returning contacts keep their local details, a later park-to-park counterpart can add its missing park to the same contact, and deleted contacts and old contact identities you corrected stay excluded from automatic re-import. Ambiguous page overlap stays incomplete and retryable. The connection page shows progress and outcome counts; activation uploads remain a separate choice. See Automatic POTA contact sync.

  • Large activations can finish and upload without stopping at 250 contacts. Finish and direct POTA uploads now support up to 1,000 contacts, while the 2 MiB upload limit remains. The full saved activation is checked, and late or changed contacts cannot silently turn a reviewed log into a partial upload. A lost submission response still never triggers a blind resend. See POTA upload protections and limits.

  • Competing contact saves now share a final duplicate check in the cloud. Simultaneous imports and manual saves cannot both create a contact that the existing duplicate rules reject. Valid repeats and the more permissive manual activation/custom-folder behavior remain available. See Logbook Hygiene Rules for the protection and older-mobile boundary.

  • A folder's name now opens Folder options. Tap the folder-name card in any open Logbook folder to choose Rename Folder for a custom folder, Change Park for an activation, or About this folder for a monthly or other read-only folder. The menu also holds Merge for a custom folder that has contacts, and Delete Folder, which opens the same Delete Permanently slide confirmation; both are hidden during Bulk Edit. The separate Delete button at the top of the folder is gone, and a running activation still has Wrong park? under its park line. See Folder operations and Fixing the Wrong Park.

  • The home page title now names what Hamtrax does with your logbook, and on phones it arrives with the scene. The hero heading led with the hobby and stopped at the programs — HAM radio logging above POTA, DX, REPEATERS — so the thing that actually separates Hamtrax from another logbook was something you only met further down the page. The programs now lead in the large type, and the thought closes beneath them on every screen: HAM radio logging with automatic logbook organization, in every language Hamtrax ships. That sentence sits on one line wherever the column is wide enough for it, and where it isn't it breaks after with rather than mid-phrase. Screen readers hear the whole heading in the order it appears. The heading was also sitting finished in place the moment the page painted, while the forest behind it eased up out of the dark; on a phone it now slides in from the left as that scene lights up, so what you read first is part of the opening rather than a label that was always there. Tablet and desktop keep the arrival they had, and if your device asks for reduced motion the heading is simply there, at rest, with no slide. See Automatic folders.

  • Valid POTA and DX contacts on different bands or modes are kept. POTA hunting incorrectly treated the same station and park as a duplicate for the entire UTC day. Hunt logging, editing, and imports now keep another band or mode, including distinct POTA submodes and recorded park regions. A program-tagged hunt keeps its program's rule even in a custom folder; an unknown program gets exact import matching without an assumed daily limit. Exact imports also preserve submode and recorded contacted activity-region differences. Existing contacts are not merged or deleted. See Duplicate hunted contacts.

1.1.42 — September 23, 2026​

  • Added support for up to five QRZ logbooks, with separate sync controls and issue review for each callsign.

  • Added POTA history sync and support for larger activation uploads with stronger import and folder safeguards.

  • Improved contact, folder, integration, and radio controls, with updated help throughout.

  • Improved live admin metrics and prepared native radio and mobile reliability updates for their corresponding app-store releases.

  • The approximate-coordinate line on a repeater no longer names a grid square. A repeater whose published position came from a grid locator read "Approximate — grid square IO93bl" — a locator most operators would have to look up before it meant anything, and one that described where the coordinate came from rather than what it means for finding the repeater. That line and the town-center one now both read Approximate location, which is what either of them was ever telling you. A coordinate published to a decimal place or two still reads Approximate — rounded to about a mile, because that one names a distance you can act on. Nothing about which repeaters carry a line changed, no coordinate was moved, and a repeater with a clean coordinate still carries no line at all. See How precise the coordinates are.

  • Upgrading in the Android app now unlocks Pro the moment you come back. The Android app takes payment on Stripe's page in its in-app browser, and after you paid and closed that browser Hamtrax could keep showing Free — no Welcome to Hamtrax Pro! message, Upgrade to Pro still waiting to be tapped — until you fully closed and reopened the app. If you had upgraded because you reached the 200-contact limit, logging could stay blocked for that stretch too, and tapping Upgrade to Pro again answered Subscription Error even though your payment had gone through. You were never charged twice; Hamtrax refuses a second purchase. Hamtrax now checks on your purchase as soon as you return to the app, so the plan unlocks within moments, welcome message and all, with no restart. This arrives with the next Android app update; until then, fully close and reopen Hamtrax after paying if it still shows Free. See Plans.

  • Backing out of Stripe's payment page no longer claims your payment was received. If you opened Stripe's checkout page and left without paying, Hamtrax announced Subscription activating about a minute later — "Your payment was received" — even though nothing had been charged and nothing ever updated. In the Android app the same message waited and appeared a minute into the next time you opened it. Hamtrax now asks Stripe whether a payment exists before it says anything: if you backed out, or the checkout expired, it says nothing, you stay on Free, and Upgrade to Pro works as before. The one message that remains, for a purchase Hamtrax can't confirm yet, now reads Still confirming your plan — "If you completed checkout, your plan will update shortly. Refresh if it doesn't." — and never claims a payment. See Plans.

  • Tried and Try Later marks now belong to your account. Both marks live in the browser you make them in, and every account signing in on that browser shared one set of them — so a mark left by whoever used the computer last showed up on your spot list, and yours showed up on theirs. Each mark now belongs to the account that made it, and a mark made on the signed-out hunt page stays with that visit instead of following you into an account when you sign in. Nothing else about them changed: still about ten hours, still only on that one browser, still never synced between devices. The marks already sitting on your device were cleared when this shipped, since there was no way to tell whose they were and they would have expired the same day anyway. See Logging a Hunt Contact.

  • Google sign-in in the Play Store app has the correct Google registration now. Fixed the configuration that could show “Developer console is not set up correctly” when tapping Google. The correction applies to the installed app without an app update.

  • The park field in the full contact form now says where the park is. The reference beneath Their Park used to read only CZ-0131; once Hamtrax finds the park it now adds the park's US state, or its country anywhere else — US-1234 · Colorado, CZ-0131 · Czechia — the same place the collapsed Their location or park row shows beside the park name. Nothing saved on the contact changes. See Manual Logging.

  • The Hamtrax CLI's contact-limit refusal reports your count again. When a free account reaches its 200-contact limit, the refusal's details carry current — the contacts counted on your account — beside limit, as the CLI docs show. Since early August it had sent limit alone, so a script or agent reading current got nothing. The message, exit code 6, and the limit itself are unchanged. See Exit 6: QSO cap reached.

  • The sidebar's Parks search now understands place names. Open Parks and enter a location such as Chicago to see up to ten active POTA parks within 50 miles, ordered nearest first with the distance to each one, beneath a line reading Nearest to Chicago, Illinois, United States that names the full place Hamtrax found. The lookup uses the place you typed without asking for GPS or changing My Location. Exact park references and names still use the park catalog, and ordinary sidebar searches do not send a place lookup while another category is open. See Search.

  • A contact you logged from the hunt list can now be edited right there. Once you'd marked a POTA or DX spot Contacted, correcting that contact — adding a report, fixing a frequency — meant leaving the hunt for your Logbook and finding the contact in its folder. Open the spot's row and Edit Contact now sits beside Share Contact. It opens the same Edit Contact form the Logbook uses, on the same contact Share Contact shares — your newest one with that station at that park or country — so you can change it and tap Update Contact, or Delete it. When the row can't fit them on one line, the two buttons drop their icons first, then shorten to Share and Edit, and only then wrap onto a second line. See Finding Live Activations.

  • FT8 and its relatives now log a dB signal report instead of a fictional 59. Signal reports came in two shapes — 59 for phone, 599 for CW and the other RST modes — so a mode that reports in decibels got one of those anyway, and Pre-fill perfect signal reports stamped a perfect 59 onto FT8 contacts that never exchanged anything of the kind. The WSJT-X family (FT8, FT4, JS8, JT65, JT9, MSK144, Q65, FST4) now has a shape of its own: a signal-to-noise report spelled the way WSJT-X spells it, -15 or +05, with the picker's readability and strength digits replaced by a signed tens digit and a ones digit, and the report reading as one number. Because no dB report is perfect, there is nothing to pre-fill, so these modes start unset — dim dashes — everywhere you log by hand, whatever that setting says: the full contact form, the live activation Add Contact panel, each program's Manually log contact card, and the one-tap Contact button on an FT8 spot, which now saves no report rather than a 59 you never sent. Every other mode keeps the switch exactly as it was. Change an SSB contact's mode to FT8 and its 59 clears, having no dB equivalent; change an FT8 contact to SSB and the dB report you copied is left alone. Imports follow the same logic — a WSJT-X, LoTW, or QRZ record keeps the dB report in the file, while a dB-mode record with no report stays unset instead of arriving at 59. See Manual Logging and Pre-fill perfect signal reports.

  • FT8 contacts take the frequency you actually worked. Choosing FT8 in the full contact form used to turn the Frequency field into a row of band buttons, one per standard FT8 calling frequency, and Save stayed blocked until the contact sat exactly on one of them. Real FT8 contacts happen a few kHz around those frequencies, so editing a contact worked at 7.041 MHz meant inventing 7.074 just to save it. The field is now the same typing box as every other mode, and any frequency saves as typed. Typing a frequency near the 60m or 2m FT8 calling frequency also suggests FT8 now, as the other bands already did. See Manual Logging.

  • Parks near me emails use your saved Location settings when they are prepared. The three park suggestions now follow the same Manual, Device, or Callsign location choice as the app. Device mode uses its last saved reading, and an unresolved location keeps the email waiting for a later check. See Email notifications.

  • Chased summits and WWFF areas are now suggested by month, the way POTA hunts are filed. A suggestion for a program Hamtrax doesn't run itself pooled every reference you ever chased into one folder — a THEIR SOTA holding a decade of summits — while the same import gave each of your own activations a folder per summit and day, and POTA hunting a folder per month. The suggestion still ranks as one story, so a lifetime of chasing competes for a slot as a whole; accepting it now files one folder per UTC month — SOTA Chasing - 2026-06, SOTA Chasing - 2026-07 — each with its own name and choice, like a contest's years. A month's folder is found again on the next import whatever summits that month adds, and no folder is named after a single reference it would stop holding alone the moment another arrived. A folder an earlier import created as THEIR SOTA keeps its contacts: type its name on a month's card and that month joins it, or leave the card as it is and the month gets a folder of its own. See Contextual custom-folder suggestions.

  • Web upgrades now open checkout inside Hamtrax, and managing your billing no longer opens a second tab. Tapping Upgrade to Pro, buying Lifetime, or opening Manage subscription on the web handed you off to Stripe in a new browser tab. Hamtrax has to ask its own server for that Stripe address first, so the tab opened a moment after your tap rather than during it — which is exactly what a browser's popup blocker stops. Operators tapped, watched nothing happen, and had no way to tell anything had gone wrong. Upgrade to Pro and Get Lifetime now open a Secure checkout panel on the page you are already on, holding Stripe's own payment form — your card details go straight to Stripe, and Hamtrax never sees them. If the panel can't load, Hamtrax opens Stripe's checkout page instead. Once checkout completes the panel reads Payment received. Activating Pro… and closes itself, and the Welcome to Hamtrax Pro! message follows. Closing the panel before you pay charges nothing; select the button again whenever you're ready. Manage subscription, View receipts & billing, and Switch to Free still open Stripe's billing portal outside Hamtrax, but on the page you are already on rather than a second tab, and Stripe brings you back to Settings → Plans when you're done. The two notes on the Plans tab that promised a new tab simply say the billing portal opens. The Android app still opens Stripe in its own built-in browser, and App Store purchases on iPhone are untouched. Nothing about pricing, trials, or cancellation changed. See Plans.

  • LoTW now connects once with your existing login. Enter your LoTW username and password, select Connect LoTW, and Hamtrax validates them before saving them encrypted on its server. The connection works across devices signed in to the same Hamtrax account, with no separate vault passphrase, hint, or unlock step. Sync Confirmations remains manual and updates only exact matching contacts; unmatched confirmations stay on the syncing device for later retry. Manage connection lets you validate an updated login or disconnect. If you used the old vault, enter your LoTW credentials once more; a confirmed connection removes that device's old credential copy, and the next sync reads your confirmation history again. Import from connection continues to offer QRZ and LoTW; QRZ opens its separate per-logbook sync workspace, while the retired N1MM settings shell and HamQTH upload vault stay removed. LoTW uploads still use TQSL, and HamQTH remains a manual ADIF upload. See LoTW Confirmation Sync.

1.1.41 — September 12, 2026​

  • A summit or WWFF reference in its own ADIF field now sorts like one tagged with SIG. SOTAdata, WWFF exports, and most desktop loggers write a summit in SOTA_REF or MY_SOTA_REF and a WWFF area in WWFF_REF or MY_WWFF_REF, with no SIG / SIG_INFO pair beside it. Hamtrax read only the pair, so those contacts arrived with no activity at all: they went to Custom Folders — Unrecognized with nothing to suggest, or were filed as a DX chase on their DXCC number alone, while the very same contact tagged SIG=SOTA was pooled into a THEIR SOTA or MY SOTA suggestion. A record whose SIG pair is blank now takes its program and reference from the dedicated field, so a lifetime of summit chases or activations reaches the same review, the same suggestions, and the same duplicate check either way. When both spellings are present, the SIG pair decides; a record naming both a summit and a WWFF area is read as the summit; and the dedicated field still travels with the contact and comes back out on export. POTA_REF and IOTA are deliberately untouched. See Supported files.

1.1.40 — September 11, 2026​

  • Import Review separates activity programs and custom-folder decisions. Activations, POTA hunting, DX chasing, and Repeaters each have their own stage marked Auto-organized. Custom Folders — Manually organized shows one editable row per suggestion, including each contest year or activation session. Each starts on Create this folder; I'll folder these myself (next) sends its contacts to Custom Folders — Unrecognized without excluding them. That warning-marked stage now opens with the count of unfoldered contacts, then See Contacts — a read-only list of the contacts Hamtrax could not file — and an import-or-exclude choice offered as two cards, each with an icon and a line saying what it does. Exclude from import leaves out these contacts and opens Review's Finalize stage; Back then I'll folder these brings the whole stage back at once. Whichever card you chose stays marked as the chosen one, so Back shows the decision you already made. I'll folder these steps that pair aside: the two decision cards slide off to the left while Group together and Multiple Folders slide in from the right into the space they leave, as two more cards of the same kind. The second choice replaces the first rather than stacking underneath it, and only one pair is on screen at a time. A chevron in the card's top-left corner returns you one pair at a time once you have stepped, and the review's own Back beside the title steps aside while it is there. Multiple Folders stays marked there, with the month, year, band, and mode buttons for splitting below it. Group together steps on once more, to a New folder / Existing folder pair of the same cards — replacing the small toggle buttons that used to sit further down the card — shown only when you already have a saved custom folder to choose between, with Existing folder revealing the dropdown of them beneath the pair, opening on Choose a folder with nothing picked so neither side inherits the other's answer. Group together no longer puts a Folder name box on that card either — the one folder it creates is named on the folder card itself, using the same edit folder name control the suggestion rows have, and clearing the name now brings the previous one back instead of committing an empty name the importer silently replaced behind your back. A split keeps its shared Folder name prefix field on the card, because every folder it makes carries that one name. Folder previews and Next appear only once the stage has a destination — a split dimension, New folder, or an Existing folder actually picked from its dropdown — and those folder rows are where each contact's ✕ and restore controls live. Destination rows show their new/existing status and full visible Logbook path, and contact tables scroll sideways on narrow screens. Suggested folders highlight the source clues behind their grouping. Nothing is created until you confirm. See How Imported Contacts Are Filed.

  • Import Review can now sort proposed folders. When a Review stage contains more than one folder, its folder-order dropdown starts with Latest folder first and can switch to Oldest folder first, Contact count: decreasing, or Contact count: increasing. Each card shows its latest included contact as YYYY-MM-DD UTC at the top right, with the count in Show N contacts at the bottom left. Excluding or restoring a contact updates the count, date, and order immediately, without changing the folder Hamtrax chose for it. See How Imported Contacts Are Filed.

  • The sidebar now says what each group of rows is for. Its rows ran as one list broken by two faint rules, so working out which row to reach for meant reading all of them. Three small headings now title those groups: Manage Contacts over Import and My Logbook, Make New Contacts over Parks on the Air, DX Chasing, and Repeaters, and More over Showcase, Tools, Feedback, and Settings. Nothing moved and nothing was renamed — the headings are labels, not buttons. See A Quick Tour.

  • Add/Edit Contact now starts with a compact Folder dropdown. Expand parent rows to choose a compatible folder, or leave it on Auto-organize and the card names the predicted destination with its program beneath it, such as Auto-organized · Parks on the Air / Hunting, as soon as Hamtrax knows it. Choose a folder first to constrain its defining fields, or enter details first to see which folders accept them. Incompatible choices stay visible with a reason. Monthly dates stay editable within their UTC month, activation dates preserve compatible overnight days, and Update Contact can move one contact to a compatible folder without rewriting its recorded facts. See Manual Logging.

  • The guided Hunting walkthrough has been removed, including its practice activator and Settings replay. The Get Started checklist remains available for account setup.

  • A contact row's buttons shed their boxes, and Share Contact now reads Share. Tapping a contact in your Logbook opened its actions as outlined buttons, with Delete in a red-outlined box. They are plain icon-and-label buttons now, Delete is a red trash icon with no box around it, and Share Contact reads Share, since the row it sits on already is the contact. With a mouse, they now appear once the pointer rests on the row for a moment, and a click no longer holds them open. The contact rows inside your Showcase folders are the same row and changed with it. Spot cards and the detail views they open still say Share Contact, because there the spot, not a contact, is what you're looking at — only a spot card too narrow for the full label shortens it to Share. See Share Contact.

  • The Repeaters panel now shows where your contacts will be saved and what they'll be saved with. Every repeater contact has always been saved with your current location, radio, and antenna, but the Repeaters panel never showed any of them. The top of the panel now opens the way POTA and DX hunting do: My Station groups Location, Radio, and Antenna above the program heading, which is followed by Contacts will be saved to logbook when signed in. You can change the station controls right there before you log. There's no Spot row, because nobody spots a repeater. The browse area, Search by area, and the repeater count follow beneath them as before. See The repeaters near you.

  • Your radio now carries its own power, and you change it where you pick the radio. Watts lived in three places at once: a Power (Watts) box beside the radio on the contact form, another inside the live activation logger's Radio / Antenna disclosure, and a Power & efficiency section in Rig Manager holding nominal and maximum watts, TX and RX current, supply voltage, power source, battery capacity, and a duty-cycle limit, plus a calculated efficiency readout — nine fields describing a radio, none of which decided what a contact recorded. So the power saved on a QSO had nothing to do with the radio named beside it, and moving from the 100 W rig to the 5 W handheld meant retyping the number on every surface that asked for it. A radio now has one Max Power (W) field, under Operating capabilities, and it is sticky: whatever it says is the power saved on every contact you log with that radio — by hand, from a hunt, or through an activation — until you change it. Pick a known model from the list and Hamtrax fills it in with that model's rated maximum. The contact form and the activation logger no longer ask for watts at all; the Radio row simply shows the ones you are running. Changing them takes one stop: open My Radios and the selected radio's row carries a small Power … W field with its equipment details. Type a value, leave the field, and it saves — to the radio and to the contact you have open. A checkbox at the top right selects a profile, in place of the Select / Deselect button, and Edit now reads Configure. Hunted contacts record power for the first time, so a QSO logged with one tap from a spot row exports and prints its watts like any other; hunt spot comments are unchanged and still name the radio without them. See Power.

  • One switch now decides the signal report on every contact you log by hand. Pre-fill perfect signal reports only ever reached your activations, so turning it off changed the live activation logger and nothing else. Everywhere else Hamtrax went on stamping a perfect 59: the quick-add cards on custom and monthly folders, the hunt tab's Manually log contact card — where even a report you deliberately cleared came back as 59 at save time — and the one-tap Contact button on a spot row, a map popup, or a detail modal. The full QSO form ignored the setting entirely and always opened at 59/599. All of it now answers to that one switch. Leave it on and every hand-logged contact starts at the mode's default report (59 or 599 for RST modes; FT8-family dB modes stay unset), the full form and its Clear button included. Turn it off and every one of them starts unset — dim dashes — and saves with no report unless you enter one, including a blank you leave in a manual card and a Contact tap that had no report to record. Imports are deliberately untouched: an ADIF, CSV, QRZ, or POTA record keeps the report in the file, and one that carries none receives the mode-appropriate fallback, with FT8-family dB reports left unset. Editing an existing contact still shows the report that contact actually holds. The switch also moved — out of My Activations and into Logbook, directly beneath Show my local time — because it is no longer an activation setting. It is still on by default, and nobody's saved choice changed. See Logbook preferences.

  • Custom folders can now be renamed, merged, and split, without re-logging a single contact. A custom folder used to be a one-way trip. Name one badly, or watch one quietly become two different things, and the only way out was to delete it and log the contacts again. Open a custom folder now, tap its folder-name card, and choose Rename Folder from Folder options — refusing an empty name or one a sibling folder already uses, and saving straight away whether or not you have a connection. The same menu carries Merge: pick another custom folder, and every contact moves there before the emptied folder goes, taking its notes, photos, and stream links with it; you land on the destination with a count of what moved. Single contacts move too — Move on a contact's row, or Move to folder in Bulk Edit beside Set equipment for a selection spanning pages — and creating a destination in either dialog and confirming Move is how you split one folder into two. Deleting a custom folder that still holds contacts now says the quiet part out loud: "Want to keep the contacts? Cancel and choose Merge instead." These dedicated Move/Merge commands stay custom-only, need a connection, carry at most 250 contacts at a time, and either finish completely or change nothing at all. The full contact edit form separately supports compatible single-contact folder changes through its normal local-save queue. See Moving contacts between custom folders.

  • A folder an import suggestion built is found again next time — even after you rename it. Accepting a suggestion like THEIR SOTA created a folder, and the next import reused it only when the name it suggested matched that folder's name character for character. So renaming it "Summit Chasing" meant the following import quietly built a second THEIR SOTA beside it — and so did a suggestion that read a little differently this time, like THEIR SOTA · W0C/FR-001 where the last one said just THEIR SOTA, or a contest named for one year where before it spanned several. Hamtrax now remembers the clue that made a folder, separately from whatever the folder ends up being called. A later import still prefers a custom folder whose name matches the card exactly — type the name of a different folder and that folder still wins, so what the card says is what happens — and failing that it goes to the folder that same clue already filled, under any name. Activator-side rows now use your Hamtrax callsign and the familiar CALLSIGN@REFERENCE-YYYYMMDD activation name; that visible-name change leaves the remembered reference/day clue unchanged, so later imports still find an accepted folder. The card reads Existing folder, then shows its real path — for example Custom folders → Summit Chasing — so renamed and nested reuse is visible. Merge hands a folder's clue to the folder it went into, so later imports follow the contacts rather than the empty space they left. Contacts you move between folders change nothing here, because duplicates are judged one contact at a time. Folders your suggestions created before today carry no clue yet and go on matching by name alone. See Contextual custom-folder suggestions.

  • The repeater and park directories now search 20 miles, and the count is the real number. The Repeaters tab and Park Explorer looked 50 miles out, which in a city buried the machines you can actually hit under dozens you can't — and the total they printed stopped at 100, so a busy area read "100 repeaters" whether there were 100 or 400. Both search 20 miles now, and the count below the search field names everything the radius truly holds. The list still opens on the nearest hundred, nearest first, twenty to a page, and Search 150 miles is still there for a quiet corner of the world.

  • An empty folder no longer offers an upload or a download that cannot work. Selecting a POTA activation folder with nothing in it still offered Upload to POTA, and pressing it opened the whole review dialog before POTA's own check refused the log for having no contacts — a round trip to be told what the screen already said. Upload to POTA, Download ADIF, and Share map are now all greyed out while the folder holds none, and hovering over any of them reads No contacts in this folder, the same sentence the folder itself shows. None of them greys out while contacts are still arriving, so a folder that is merely loading no longer flickers as though it were empty, and the English-only reasons Download ADIF and Share map gave before now match that message in every language Hamtrax speaks. Nothing changed for a folder that has contacts. See Downloading a folder.

  • Recenter moved into the zoom controls, and the zoom percentage is gone. The floating pill at the bottom of the map showed a live percentage between − and + telling you how far through the zoom range you were. It sat in the pill's widest, most prominent slot while answering a question the map itself already answers, and it was the one control there that did nothing when you pressed it. That slot now belongs to Recenter, which used to be a separate round button off to the left: one pill holding zoom out, recenter, and zoom in. The target still jumps the view back to the current map anchor and is still greyed out when you are already centred on it, and the zoom buttons still step one increment at a time. See Map Controls Pill.

  • The contact form no longer asks for everything at once. Opening Add Contact used to lay out every field Hamtrax records in one column — callsign, frequency, mode and report, your radio and antenna, then the other station's city, state, country, grid and park, then the date and time, the notes box, and the whole My Location picker with its four sources. Most contacts are the first few of those and the rest is occasional, so the form was long out of all proportion to how much of it anyone actually filled in. The body now keeps callsign, frequency, mode, signal report, and your radio and antenna. Below them sit four rows — Their location or park, Date & Time (UTC), Notes, and My Location or Park — each showing a concise summary, most of them with a hint of what belongs there while they are empty. Their location or park shows only the resolved park's name and where it is — its US state, or its country anywhere else — or the station's town and county when there is no park. My Location or Park keeps to a single line: the park you are activating, or the town you are in. Tap one and the form steps sideways into just those fields, while the group's name, with the arrow reversed, stands in for the window's title at the top; tap it to step back. Nothing was added or removed and nothing is stored differently — the same fields save the same values. Save, Clear, and Delete stay only on the main form; they step aside with its Folder dropdown while a group is open, then return when you step back, with every value retained. If a save is refused because a field is wrong, the group holding that field reads Needs attention, so you know which row to open instead of hunting through all four. See Manual Logging.

  • Stepping into a panel no longer leaves you staring at a blank one. Several places in Hamtrax step sideways between two views — the contact form and its field groups, the Logbook's add-contact card, the Hunt panel's park quick start, the import method picker, and the CLI key form. The view you were leaving had to finish sliding away before the one you asked for was allowed to appear, so tapping a second time while the first step was still moving could cancel that hand-off and leave the panel empty, with nothing to do but close the whole thing and start again. The two views now cross instead of queueing: the one you asked for is there from the moment you tap, whether or not the one leaving has finished. The step reads the same otherwise — each view still has a home side, so it still says “you stepped into this” rather than fading between two peers. Each surface keeps its existing state rule: QSO field-group values remain part of the contact form when you tap Back, while temporary picker or setup inputs still reset where they did before. See Manual Logging.

  • A folder that lost its name now reads Unnamed folder instead of a blank row. If a folder's first save was lost while a later change to that same folder still went through, the folder arrived in your Logbook with everything except its name -- the contacts inside it, the count beside it, all correct -- and the row where its name belongs was simply empty. An empty row reads as a rendering fault or an empty folder, and it was neither. Every place the Logbook shows a folder's name now falls back to Unnamed folder: the folder tree and its Custom folders card, the folder's own header, the contact form's Folder dropdown, and the move and delete confirmations. The label is only what you see -- it is never what Hamtrax stores, submits, or names a download by -- so giving the folder a real name from its Logbook header works exactly as it does on any custom folder. Hamtrax keeps these folders rather than removing them, because deleting one would strand the contacts inside. See Folders.

  • Import suggestions group recurring contests and unsupported activity programs before proposing folders. Hamtrax ranks up to eight groups by the contacts they would actually keep, so a lifetime of SOTA chases or Field Day contacts can qualify together instead of competing as small fragments. Those groups then become individual folder rows: one per contest year, one per activated reference and UTC day, or one per UTC month of chasing. Each resulting folder has its own name and choice. Satellite contacts group by satellite; shared nets and portable sessions compete on their size, while a shared band and mode waits behind other clues. No contact's activity tags are changed. See Contextual custom-folder suggestions.

  • The Logbook now explains automatic and manual organization. Small, centered Auto-organized and Manually organized by you accordions sit above their respective folder cards. Open them to read about automatic filing for POTA, DX, and repeater imports or custom-folder suggestions and manual organization. The explanations start closed, while the folder cards stay visible and expand separately. Learn more remains centered at the bottom of the folder page. Favorites, Unrecognized program, and Other folders remain outside these groups. See Folders.

  • Five Home tour screens now share one carousel. An untitled screenshot carousel replaces the separate Anatomy of Hamtrax chapters with one section directly after the opening hero. Browse the phone screenshots and captions with horizontal swipes or two centered arrows below them on desktop, tablet, and mobile; the feature-card carousel uses the same arrows below its cards. Vertical scrolling continues to the three benefits, auto-sorting, connections, and National Parks without requiring all five screenshots. Arrow, Page, and Space navigation starts even before anything inside Home has focus, then carries keyboard focus into each section. See Home.

  • Activation submission identity stays separate from its display label. An activation folder with a custom label and a saved identity keeps the correct submission name for ADIF downloads, its place under its program, and the matching rules for new contacts. A label alone never corrects a park: tap the folder-name card in the Logbook and choose Change Park from Folder options to change the park and every contact together. See Fixing the wrong park.

  • The origami figure above the Home screenshots is gone. Its artwork no longer downloads when you visit hamtrax.com.

1.1.39 — September 10, 2026​

  • A connection's status now reads Checking… instead of sitting blank. Under Settings → Integrations, the three rows — Logbook of The World, QRZ Logbook, and POTA activation uploads — showed nothing at all on the right while Hamtrax worked out whether each account was connected, then filled in Not Set Up, Credentials Saved, or Verified once the answers came back. All three arrive together, and the POTA check is the slow one — the server may quietly renew your POTA session while answering it — so on a weak connection the whole column could sit empty for several seconds and then change all at once. Each row now reads Checking… from the moment the card appears and swaps in its real state when it lands, so a blank column is never mistaken for an answer and nothing changes under you after you have read it. The states themselves are unchanged. See Integrations.

  • The hunting, Repeaters, and Park Explorer lists now show 20 rows per page. Fifty spots a page made a long scroll to reach the previous and next controls at the bottom, and every automatic refresh had fifty live rows to redraw. A page holds twenty now: the same spots in the same frequency order, just fewer at a time, with the paging controls in the same place below the last row. The Repeaters directory and Park Explorer's nearby-park list share one panel, and it used to put all hundred rows on screen at once; both page the same way now — twenty at a time, nearest first, with those same controls below the last row and the range you're reading between them. The count above each list is unaffected, still naming everything within the radius rather than what's on the page, and anything that runs the lookup again — a new area, Use my location, a flight back to your own location, widening to 150 miles — puts you back on the first page. Your Logbook's folder and contact lists, at 25 folders and 50 contacts a page, are unchanged. See Layout and The repeaters near you.

  • The artwork on a Logbook folder is now the icon you tap to get there. Folder rows and headers each carried a small painted crest — one badge for Hunting, another for Activations, a globe-and-signal emblem for DX Chasing, a tower for Repeaters — that appeared nowhere else in Hamtrax. So the picture on a DX month had nothing to do with the DX tab that filled it, and four pieces of art had to be redrawn every time a program was added. Every one of them is now that program's own icon: the magnifier from Hunt, the pine from Activate, the globe from DX, the tower from Repeaters — the same drawings in the sidebar and across the top of the signed-out site. They also take the colour of the row they sit in, so a selected folder's emblem brightens with its title instead of sitting at full colour against it, and they are drawn rather than loaded, so nothing waits on an image. See Folders.

  • Import has its own row in the sidebar now. Bringing an existing logbook into Hamtrax meant opening Log first and spotting Import Contacts above the folder tree — a step you only found once you already knew it was there. Import now sits at the top of the sidebar, first under Manage Contacts, subtitled Sort your past contacts, and opens the same Import Contacts page in one tap. Every other way in still works, including the Logbook's own button, Import a past activation on Activate, and the former Import from QRZ action on the connected QRZ page (now replaced by the single QRZ sync workspace). The row it used to hide behind is now titled My Logbook, and it moved up from below Repeaters to sit directly beneath Import, so the importer and the Logbook it fills are side by side. See Getting to the importer.

  • Repeaters and parks that share a coordinate now open as one pin with a stack of cards. A club runs its 2m and its 70cm machine off the same tower, so both publish the same latitude and longitude — and 28.5% of the repeater directory used to render exactly beneath a neighbour's pin, unreachable at any zoom. Hamtrax answered that by fanning: pins that landed on top of each other were pushed out onto a small ring around the point they shared, each trailing a thin line back to where it really was — reachable, but no longer standing where the directory put it. Nothing moves now. Everything published at one coordinate stays on that coordinate as a single pin wearing a small number, and hovering over it or tapping it opens a scrollable stack — one card per repeater or park, each with its own frequency and mode, callsign, offset and tone, town, and its own button. It is the same answer the hunting map has always given several activators at one park. Logbook maps still fan, because a contact and the You pin that worked it have to stay separately visible. See When Pins Land on the Same Spot.

  • You can sign in to POTA now, and the connection stays connected. Connecting POTA used to mean one thing: open your browser's developer tools, find the Authorization header on a request to POTA, and paste the token out of it. That token is good for 24 hours, so the whole ritual came back the next day, and forgetting it meant an activation sitting unsent. The connection page now shows Let’s find my code — select it to open a dedicated Step 1 page titled How did you create your POTA account?, choose the Email and password row, then enter the ones you already use on the Sign in with your pota.app account page, and that's it. The sign-in happens in your own browser, straight to the service POTA uses; your password never reaches Hamtrax and is never stored. What Hamtrax keeps is encrypted on the server, never handed back to the app, and renewed automatically before it can lapse, so the page reads Stays connected instead of counting down to an expiry date and uploads keep working without you doing anything. Signed in to POTA through Google, Facebook, or Amazon? Those accounts can't sign in here, so the second row — Amazon, Facebook, or Google — opens a page that hands you a Connect Hamtrax bookmark in place of the developer-tools hunt. It works out what you're on — Chrome, Edge, Brave, Firefox, or Safari on a computer, Safari on iPhone or iPad, Chrome on Android, or the Hamtrax app — and shows the steps for saving that bookmark there one at a time, with a dropdown to correct it if it guessed wrong. Each instruction stands on its own beneath its position, such as 2 / 5, and Previous and Next step move between them. On a phone or in the app, Copy bookmark link changes to Copied and advances after one second instead of opening a success toast. On iPhone or iPad, the bookmark step uses Safari's bottom-right three-dot menu and Add to Bookmarks. A setup that runs to five steps therefore reads as five short lines instead of one intimidating list — and the POTA session box you paste into is the last step, so the sequence ends where the job does. Select the bookmark while signed in at pota.app, and paste what it copies. If your device asks for reduced motion, the steps fade rather than slide. That paste renews itself too, so it also reads Stays connected rather than counting down — and if you're on an old pasted token today, the setup prompt stays on the connection page so you can switch over whenever you like. Not sure which way you signed up? The third row, I don't know, steps the same way to a picture of POTA's own sign-in panel — the social buttons on the left, the email and password form on the right — so you can see which side you use, then go Back and pick that row. Disconnecting removes everything Hamtrax stored. Uploading itself is unchanged: same review, same status, same duplicate protection. See POTA activation uploads.

  • Map pins no longer sit in a smudge or a glow. Zoomed in far enough for the street map, every pin rested on a large, soft dark disc meant to lift it off the map. Against pale street tiles it read as a grey bruise instead, and because each pin drew its own, a crowded area stacked dozens of them into a single dark blob heavy enough to hide the streets underneath — exactly where the map mattered most. The discs are gone. A pin now carries only the small shadow built into the pin itself, and cluster bubbles have dropped the soft halo they wore on the street map, so they look the same at every zoom. Resting pins have also stopped giving off their own colored light: each one sat in a faint halo tinted to its own color, which on a busy map merged into a golden wash across whole regions and blurred the line between one pin and the next. Color now appears as light only on the pin you point at or select.

  • Pro's one promise now counts its way there. Open Settings → Plans and the Pro card's contact line starts at zero and races upward through hundreds of millions, slowing as it climbs. It never arrives: on the way up, its digits start giving up their places one at a time — a scattered position here, another there — each turning into a letter of Unlimited, until the word has assembled itself out of the counter just as the climb runs out. As it does, blue light fades in behind the words — resting in clear space at its centre while the glow spreads out around the line. The word contacts stays beside the counter the whole way, at the same size, so the line always reads as a sentence rather than a bare number; in languages that put unlimited after the noun, the noun simply comes first. It plays once each time you open the tab. If your device asks for reduced motion, the line is simply there, at rest, with no roll, and a screen reader reads Unlimited contacts either way rather than a spinning number.

  • The Plans tab now says plainly what Pro is for. Both plan cards advertised things that were never behind Pro: the Free card crossed out Custom folders & labels and Advanced ADIF/CSV export as though you had to pay for them, and the Pro card sold those same two — plus Logbook integrations (LoTW, QRZ) — as what a subscription buys. All three work on every account and always have, so a free operator reading those cards was being told to pay for what they were already using. That Pro list is gone, Priority support off it along with the other three. Pro now leads with the one thing a subscription actually changes — It's simple. If you're going to log more than 200 contacts, you'll want Pro. — and carries a single line, Unlimited contacts, which Free shows crossed out against the 200 contacts every free account can log directly in Hamtrax. Free's own list of what it already includes is unchanged. No entitlement moved either: everything you could do before, on either plan, you can still do, and no price, trial, or billing behavior changed.

  • Your plan, its renewal date, and Manage subscription now sit on the plan card itself. The Plans tab opened with a separate banner that named your plan, its status, and its renewal date and carried Manage subscription — while the Pro card immediately beneath it said Current plan and You're on Pro Monthly over again. That banner is gone, and the Pro card carries all of it: a badge reading Current plan, Trial, or Action needed, the line saying whether it renews or cancels and on what date, and the Manage subscription button — Manage or Cancel Subscription on iOS, with the same cancellation note beneath it. The golden Pro halo moved with it, so an active subscription still shows itself, and a billing problem still turns the card red. Lifetime reads the same way: the Pro card says For Life, explains what that covers, and offers View receipts & billing — and the lifetime offer beneath the Pro card, which a lifetime holder can't buy again, is no longer shown to them. Nothing about billing, pricing, or cancellation changed. See Plans.

  • The Activate tab stops suggesting parks you have already activated. The Suggested Park card drew from the ten nearest parks around you whether or not you had already run every one of them, so an operator working through their local parks kept being handed back a trip they had already taken. It now leaves out every park your Logbook holds an activation for and draws from the ten nearest of whatever is left within 50 miles, still preferring one that carries photos — so the card is a shortlist of places you haven't been on the air. It reads the same signal as Park Explorer's Activated badge: open, finished, and imported activations all count, including one you never logged a contact in, while hunting a station at a park does not, since you were never there. Nothing about the card got slower — it reads activation folders Hamtrax already has open, and still measures from the location it already holds rather than asking your device for a fresh fix. Only when both are true — fewer than ten never-activated parks sit within 50 miles and none of those few has photos — does it reach past that radius to the ten nearest anywhere, which leave out your activated parks the same way; a short list alone doesn't widen it, and missing photos alone don't either. It offers a park you have already run only if nowhere it can reach is left unactivated, so the card always has something to show. Signed out there is no logbook to check, so Yellowstone National Park still stands in as before. See The park card below setup.

  • Showcase equipment cards now make their action clear and open reliably. A quiet chevron marks each saved radio and antenna as a full-card action. Select one on your own Showcase to open its editable Rig Manager profile; select one from a shared short link to inspect the same specifications in a read-only window. Shared Showcases that include the DX world map now keep loading while their public summary arrives instead of stopping on an error page.

1.1.38 — September 7, 2026​

  • The signed-out header now says your language in full. The language button at the top of hamtrax.com read EN, ES, or PT on a phone, and only widened to English, Español, or Português (Brasil) on a larger screen — so the one control that tells a visitor Hamtrax speaks their language was a two-letter code exactly where most people first arrive. It now reads the full name at every width, and a name too long for a narrow phone trims at the end rather than pushing Sign In and Sign Up off the edge. The room comes from Docs, which no longer appears in that header on a phone — it is still there on tablets and desktop, the documentation is always at docs.hamtrax.com, and Settings → Help → Open docs reaches it once you have an account. The controls beside it are evenly spaced now: Docs, the language button, and the account buttons sit the same distance apart, with Sign In and Sign Up tight against each other so the two read as one pair rather than two separate stops.

  • The Activate tab suggests a different park each time. The Suggested Park card beneath the setup form used to show the single closest park that had photos, which in practice meant the same park every session until you physically moved somewhere else — a card you stopped reading. It now picks at random between the ten nearest parks within 50 miles, still preferring one that carries photos, so the parks a short drive away get their turn and the card is worth a glance again. Photos stay a preference rather than a requirement, so where none of those ten carries any it still suggests one of them. Everything else is unchanged: it measures from the location Hamtrax already has rather than asking your device for a fresh fix, it never fills the My park field until you tap Activate here, and a park you've already typed in still takes over the card. See The park card below setup.

  • Browsing Activate without an account now shows a real park suggestion. The Suggested Park card beneath the setup form used to tell a signed-out visitor to set a location and get a nearby suggestion — but a visitor without an account has no account location to set, so the card was asking for something that could never arrive. It now suggests a park near your approximate area, estimated from your internet connection, chosen the same way as a signed-in suggestion. When no area can be found, it shows one featured park instead: Yellowstone National Park (US-0070), presented like any other suggestion, with its activation total across all operators, whatever photos and park facts it carries, and Activate here to fill it into the form. Signed in with no location set, the card still asks for your location, because that is a step you can actually take. See The park card below setup.

  • A profile photo that fails to upload no longer costs you the one you already had. Changing your picture used to clear the old file out of storage first and upload the new one second, so an upload that dropped out part-way — a lost signal, a closed tab — took the previous photo with it and left a broken image everywhere your picture appears. Nothing is removed now until the new photo is stored and saved to your profile, so a failed upload simply leaves the old photo where it was. If you hadn't set a photo yet, the card returns to your default avatar instead of sitting on a dead preview until you reload. Opening Hamtrax on a slow connection could also bring back a photo you had already replaced: a profile read that ran out of time fell through to a copy of your details frozen when your account was migrated, pointing at a file that no longer exists. A read that doesn't finish now keeps what Hamtrax already knew about you rather than guessing. And wherever a picture can't be drawn, Hamtrax uses the usual avatar fallback rather than a broken-image icon — including the Profile image card under Settings → Account, which was the last place still showing one. See Your Photo.

  • Hamtrax opens faster when you're already signed in. Returning to the site used to happen in two waits, one after the other: first Hamtrax confirmed your session with Firebase, and only then did it begin downloading the signed-in app itself — discovering that app one piece at a time, each piece waiting on the one before it. The download now starts the moment Hamtrax sees a session on this device, so it happens while the session is being confirmed rather than after, and the pieces arrive together. Confirming your session also used to wait on a second download, the code that fetches your full profile from the cloud, even though drawing the app only needs the copy already on your device; that download now runs in the background as well. The loading screen shows for as long as the slower of the two takes instead of both added end to end. A first sign-in is unchanged: it already started this download when you tapped the sign-in button.

  • Your profile photo in the top bar shows its full highlight again. Hover over the photo in the top-right corner and Hamtrax draws a thin gold ring around it; reach it with the keyboard and it takes a focus outline instead. Both were being shaved off at the edges, because the slot the photo sits in was trimmed to exactly the photo's size. That slot now lets the ring and the outline paint just outside the photo, and still slides it aside when the solar or connected-radio pill expands.

  • A park suggestion that can't finish now says so instead of reading Finding… forever. The Suggested Park card beneath the Activate setup form had one failure with no way out of it: if the park catalog was still arriving, the nearby-park lookup never came back, or a single park's photo record stalled mid-check, the card sat on Finding… with no error, no timeout, and nothing to tap. It now escalates. After a few seconds it admits the wait, reading Still looking — this can take a moment on a slow connection; after about thirty it stops claiming to be working, says it couldn't finish finding a nearby park, and offers Try Again. The No park suggestion is available right now message gets that same button. Nothing is cancelled behind the scenes, so an answer that arrives late still replaces the message on its own. Three deadlines underneath make that possible. Any nearest lookup now gives up after twenty seconds rather than hanging, so the next tap is a real retry instead of joining a request that already died. Find Nearest on the Activate setup form lands on its existing took too long · Search again state when that happens, while the same button in the Hunt tab's park quick start simply becomes tappable again. The nearby lists behind Park Explorer and the Repeaters directory say Directory unavailable and offer Try again, rather than loading indefinitely. A park's photo record gives up after eight, so one stalled read can no longer leave that park photo-less for the rest of the session. And the scan that checks nearby parks for one with a photo stops after ten — a photo is a preference, not worth a longer wait than that. A scan that runs out of time counts as we don't know, not there are none: the card says it couldn't finish rather than quietly picking a random park, because a check that never completed can't prove no nearby park has photos. The card also no longer flashes its set your location message while your location settings are still loading. See The park card below setup.

  • Band plan warnings now sit with the band plan itself, as Warn when outside. The switch used to live under Settings → Preferences → Hunting, a whole section away from the agency and license class that decide what it flags — so its own description had to end by pointing you back to Station to pick a plan. It now sits in the Station → Band plan card, directly beneath the summary row that sets your plan, and that pointer is gone because the plan is the line above it. The card carries a Band plan heading of its own, which does two things: the summary row underneath it stops repeating the words and simply reads the plan you're on — FCC – United States · Amateur Extra — with the whole row tapping through to its editor, and the switch, no longer needing to say which plan it means, is now labelled Warn when outside. The section the switch left held only the per-program Mode and Band pairs after that, which was never enough to be a section of its own — so it isn't one any more. Those pairs are now a Filters card inside Map, sitting directly beneath the card that already holds your marker sizes and Hunt map behavior, and Preferences is one section shorter for it. Nothing about the warnings themselves changed: still on by default, still an orange triangle on any spot outside your band plan wherever that spot appears, still saved the moment you switch them — and the switch now prints that same orange triangle beside its own name, so you can see the marker you're turning on without leaving Settings. See Band Plan and Filters.

  • The callsign number row moved in with your activation settings. The Callsign number row switch had a Preferences section to itself, Contact Entry, whose name suggested it applied anywhere you type a contact — it doesn't. The 0–9 strip appears only in the live activation Add Contact panel, so the switch now sits under My Activations, beside Auto-detect Park to Park, and the section it had to itself is gone. Nothing about the row changed: on by default, still only in the live activation logger, still saved the moment you switch it. See My Activations.

  • Set your POTA spot comments once, and choose exactly what they carry. Settings → Integrations → POTA has separate Hunt spot comment and Activation spot comment rows, each summarizing what that comment sends. Tapping a row opens a focused editor for just that comment: a full-width field for your own words, and beneath it a row of pills that picks what Hamtrax puts ahead of them. The link pill swaps between the bare hamtrax.com and your My showcase link; Radio and Antenna add the gear you're currently using, and on an activation the radio brings the power you're running with it. Your equipment used to appear only if you left the field empty, and typing anything replaced it — the text and the equipment are now separate choices, so a spot can carry both. Every spot still keeps your Hamtrax link first and stays within 60 characters including the link, so the counter beside the field now shrinks as you add pills and grows as you remove them, and a name too long for its share drops its leading words rather than its model — Chelegance MC-750 goes out as MC-750. A finished comment reads hamtrax.com/103 | Radio: IC-705 10W Antenna: River Coil. Save applies the selected default and Cancel discards edits. Comments you had already set keep behaving as they did: one you left blank arrives with Radio and Antenna already on, and one you had typed arrives with your text and both pills off. See POTA Spot Comments.

  • A Spot button lets you spot a POTA activator without logging a contact. It appears on hunting-list rows, live map popups, and activation details for any station you haven't worked yet, and pauses for five minutes after a successful Hamtrax spot for that station at that park, including automatic spots from Contacted. Marking a station Contacted takes Spot off that row entirely, everywhere it appeared — the contact does its own spotting when Respot activators on contact is on, so a second claim on a station you already worked would only repeat it, and you no longer sit looking at a greyed-out button while that five-minute wait runs. Undoing Contacted brings Spot back, still honoring whatever is left of the wait. Spotting needs an account and a valid callsign, and each is now asked for in its own place: a signed-out visitor gets the ordinary Hamtrax account prompt reading Sign in to spot an activator, while a signed-in operator missing a callsign gets the callsign prompt, which takes the callsign right there. See Spotting an activator.

  • Livestream previews no longer jolt the rows around them into place. A stream link's preview picture is only fetched once you scroll to it, and until its bytes arrived the browser had no way to know how tall it would be — so the row was drawn flat and then snapped to full height the instant the picture appeared, nudging whatever sat below it. That was visible in a folder's detail window and in the activation Showcase tab's livestream list. Hamtrax now states each preview's shape up front, so the space is held open from the first paint and the picture simply fills it. Every other picture that waits for you to scroll to it — hunt-list park photos, Showcase folder covers, folder photos, equipment photos, and the P2P badge — now states its shape the same way; those already sat in fixed boxes, so they look exactly as they did. Nothing about when pictures load changed: they still wait until you reach them.

  • Popular Park and a park's write-up are now two separate things. They used to share one yellow Popular Park · See park facts pill, which meant a park could only be described if it was also marked popular. Popular Park is now a plain badge in the same bright neutral treatment as Activated, with nothing to open, and any park Hamtrax has written up carries its own See geography row instead — open it for one full-width illustrated Geography card, colorful artwork above a centered title on narrow screens and cropped into the left edge on wider ones, giving longer park stories room to breathe. A park may carry either, both, or neither, and geography is being written for every active US park rather than the popular set alone, so far more parks now have something to read. History and Did you know? are no longer shown. Activation setup's suggested-park card, which used to print the geography straight onto the card, now shows the same badge and collapsed row as the park detail views, and the sidebar's Parks search results wear the same Popular Park badge as everywhere else. See Popular Park and geography.

  • A rig photo that can't be fetched no longer breaks its frame. The photo on a radio or antenna profile — and the one attached to a homebrew modification — was drawn straight into the form, so a file that had been deleted, or a link that had gone stale, left the browser's own torn-page icon sitting in the middle of your equipment. Both now shimmer in place while they load and settle into a small neutral picture icon inside the same bordered box the photo would have filled, with the controls for changing or removing it still on top, so a picture that has gone missing can be swapped without leaving the form. Two nearby surfaces stop spilling as well: a schematic loading in the homebrew grid now shimmers inside its own square instead of washing over the filename and delete button beneath it, and an equipment photo that fails in a picker row or on your Showcase leaves its icon inside the small square thumbnail rather than stretching across the whole card.

  • Band plan settings now fit in one clear row. Settings → Preferences → Station summarizes your agency and applicable license class. Tapping that row opens a focused window with just the agency and dependent license dropdowns, including Not applicable when a plan has no license classes to choose from. Selections save automatically, and Done closes the window.

  • Location settings now use the same picker as Hunting. Settings → Preferences → Station → Location is headed by the same map pin the maps draw for you, with your profile photo inside it — off the map it carries a soft neutral halo instead of the map's downward shadow, so it reads as lit rather than floating on a panel, and the same lit pin heads the My Location row in the hunt panel. The row leads with your resolved location and country, then reads Method: Callsign Location, Method: Device location, or Method: Manual entry, and the whole row taps through to My Location with the same callsign, device GPS, and manual choices used in Hunting. Changes save automatically, Done closes the picker, and Clear override removes a saved manual location. Fallback warnings remain visible below the Settings summary.

  • Settings headings now sit with the card they describe. On a phone, every heading in Settings — Language and its Display language for the app., Station and its Choose location method and band plan — stood as far from its own card as it did from the next section entirely, so a label read as loose text floating above the page rather than the title of the thing underneath it. Each heading now sits close to its card, across every section of Account, Preferences, Integrations, and Help. The space between sections is unchanged, so the page still breaks into the same groups — they are just easier to tell apart while scrolling. On wide screens, each heading stays inside its section with its controls.

  • Headings now use one typeface, and zeros inside them are no longer slashed. Hamtrax's headings were split across two typefaces without ever saying so — page and card titles set in one, the small wide-spaced labels above them in another. Every heading now shares a single face, so a title and the label sitting over it finally read as one voice. Nothing else moved: contact rows, frequency readouts, the log, and every body and label line are exactly as they were. One thing did go with it, and it is worth knowing. Hamtrax draws a slash through the zero wherever it prints radio text, so a 0 can never be misread as an O — KF0NYG, never KFONYG. The new heading typeface has no slashed zero to draw, so a callsign or park reference that appears inside a heading — the reference on a Park Explorer row, for one — now shows a plain 0. Everywhere the digits carry real weight, in the contact list, the frequency readouts, the issue checker, and every field you type into, the slash is unchanged.

1.1.37 — September 4, 2026​

  • Opening Hunt, DX, or Repeaters no longer freezes while the panel drops into place. On a phone or an average laptop, the first open of a hunt tab — and the panel's drop-down right after it — could hitch for a second or more, and some of that hitch came back on every return to the tab. Three pieces of busywork were landing on exactly the frame the panel animates in. Every time a batch of spots arrived, the panel re-measured the whole freshly drawn list just to work out which element scrolls — the single largest cost, about a second per open under a mid-range-phone workload. The soft, banding-free shading behind the map was recomputed pixel by pixel at full screen resolution, on the same thread that draws the page, every time a map appeared. And the map redrew itself once for every batch of parks the catalog sent, dozens of times per load. The drop-down itself was also animated by changing the panel's height, which made the browser re-measure and repaint the entire panel on every frame of the slide — so even with nothing else going on it could not stay smooth. Now the panel is simply told which element scrolls, the shading is computed off to the side and remembered so a map size you have seen before paints instantly, the streaming catalog updates the map a few times a second instead of dozens, and the panel slides into place on the browser's graphics thread, the gold grab bar riding its edge, so the motion stays fluid even while the page is still busy behind it. Repeatedly raising and lowering the Repeaters panel also draws its frequency readouts with far less work, keeping the same segmented digits, Receive/Transmit values, and units. The back-to-top button, the shading, and the growing clusters behave exactly as before.

  • Tapping a pin on a phone now glides straight to its card. A tap used to start the map sliding to put the pin itself at the center, and then — the instant the card appeared — change its mind and slide again to center the card instead, so the map visibly swerved mid-motion. The map now moves once, after it knows where the card sits, so every tap is one smooth pan that ends with the card centered. Desktop clicks are unchanged.

  • Hunt lists now load into placeholders shaped like the real rows. While POTA and DX spots, the nearby repeater list, or Park Explorer's parks load, the pulsing placeholder rows mirror the layout of the rows that replace them — a spot's frequency, identity lines, and two buttons, the repeater row's offset and tone lines, and a park row's photo section — so the list no longer shifts or reflows the moment real rows arrive. + Add repeater is also available while the nearby list is still loading instead of appearing only with the rows.

  • A large import no longer piles up bookkeeping as it files. Every contact Hamtrax saves joins a queue on your device and is then filed with your logbook a few at a time. Two steps in that pipeline used to re-read the entire queue: once as each contact joined it, and again for every contact weighed in each round of filing. On a file with tens of thousands of contacts, that repeated re-reading grew right alongside the queue, so the bookkeeping — not the filing — became the slow part of a big import. A contact joining the queue now reads a single entry instead of all of them, and each round of filing reads the queue once instead of once per contact it considers; the larger the import, the more of that work disappears. Anything tracking an in-progress activation and Needs Filing also stop launching a fresh read for every contact that lands: an import's accepted contacts no longer signal them at all, and where signals do burst, the ones arriving behind a running read collapse into one follow-up read. Nothing about the import itself changes: the same contacts file into the same folders in the same order, with the same imported, refused by the cloud, and failed before filing counts.

  • Contacts now travel to your logbook in groups, so a large import files many times faster — and no longer holds up a contact you log by hand. Every contact used to be sent to your logbook on its own, one round trip to the cloud each, so a file with thousands of contacts spent most of its time waiting on the network rather than on anything you could see. The same contacts now travel in groups, which makes a large import file many times faster and leaves far more of it already accepted by your logbook by the time the finish screen appears. Every contact is still judged on its own: one contact your logbook refuses is the only one refused, the rest file normally, and the refused one still arrives under Needs Filing with the same plain reason and next step. Filing also hands the logbook back between groups instead of holding it for the whole run, so adding a contact by hand, correcting one, or logging a hunt while an import is still filing no longer waits for that import to finish. A device talking to a logbook service that hasn't picked up this change yet quietly goes back to sending contacts one at a time, so nothing breaks in between.

  • The folders a large import needs are now created in seconds instead of a minute. A file spanning years of activating and hunting can need well over a hundred folders, and each one used to make its own round trip to the cloud before the next was started — an import needing 173 folders sat on Creating folders for about a minute before a single contact was written. Hamtrax now creates them all on your device in one pass and sends them to your logbook in groups, the same way contacts already travel, so that step passes in seconds and more of a large import is already accepted by your logbook by the time the finish screen appears. Every folder is still judged on its own: one your logbook refuses is the only one refused, a folder that has to exist before the ones inside it still finishes first, and a contact whose destination folder was refused still names that folder. Contacts now also wait for their folder's answer before they are sent, so a folder that was merely slow — or a connection that dropped mid-import — no longer pushes the contacts behind it into Needs Filing. Each contact goes the instant your logbook accepts its folder, rather than some while afterwards; an import spread across dozens of folders used to be able to sit there filing nothing at all, and now it doesn't. A device talking to a logbook service that hasn't picked up this change yet quietly goes back to creating folders one at a time.

  • The Logbook's folder tree no longer re-downloads your whole folder list every time anything changes. Creating, renaming, moving, favoriting, or deleting a folder — and every group of contacts an import filed — used to make Hamtrax fetch your entire folder list back from the cloud before the tree redrew. During a large import that meant the tree reloading over and over, hundreds of times, behind the finish screen, almost always to draw exactly the same folders. A change made on this device now updates the tree straight from the copy Hamtrax already keeps on it, so the tree answers immediately and stays still while an import files. Hamtrax reads the cloud copy when you open or reload it and when you come back to the tab, plus the one folder a contact just went into once the cloud accepts that contact, so the folder's count and timestamps are the cloud's own. The difference worth knowing: a folder you create, rename, or delete on another device — or in another browser — now appears the next time you open Hamtrax or return to the tab, rather than whenever you happened to change a folder on this one. Hamtrax never watched the cloud for those changes live, so this narrows when they turn up rather than changing whether they do. A folder created or deleted in a second tab of the same browser still shows up there right away — a rename, move, or favorite made in another tab waits for the same tab return or reload — and nothing about which contacts are allowed into which folder changed.

  • Imports no longer go out to the internet to work out where your contacts were. When an imported contact arrives without a location, Hamtrax fills one in from what it already has on your device: the POTA park catalog first — a park always wins, because it is where the contact provably happened — and then the callsign data stored locally. It used to chase every unfamiliar callsign out to the online callbooks, a few at a time, which is why a file carrying a couple of hundred unrecognized stations could sit on the saving step for minutes with nothing visibly happening. That step is now a single read on your own device, so it no longer grows with the size of your file, and the finalize screen names the stage it is actually on — Saving contacts — instead of leaving Creating folders on screen. A contact that already carries a grid square is left alone, because a grid square already places it: maps, shared maps, and QSL cards turn it into a point when they draw, and an export carries it through unchanged. The trade is worth knowing: a station the local callsign data doesn't list — most stations outside the US, and very new licensees — is now stored without coordinates of its own unless its record carried a grid square, so it has no pin of its own on the map until something can say where it was. Nothing else about those contacts changes, including the folder they file into and what they export.

  • A first import on a brand-new device can no longer file a second copy of your logbook. Skipping duplicates means comparing your file against the copy of your logbook on the device you're importing from. On a device that had never finished loading that copy — a fresh browser or phone, or one whose site data was cleared — it read as an empty logbook, so every contact in the file looked new and an import could re-file contacts your logbook already held. Hamtrax now settles that question before it plans: it loads your logbook first, and if it still can't confirm it has all of it the import stops before the review step with "This device has not finished loading your logbook, so duplicates cannot be checked yet. Check your connection, then retry." and a Retry. Your parsed file is kept, so retrying once you're connected picks the run back up instead of starting over. The moment contacts are written asks the same question, so the answer can't be lost between review and filing. Devices that have loaded your logbook before are unaffected — including offline ADIF and CSV imports on them — and logging a contact by hand never waits on this.

  • Integrations now has its own Settings tab between Preferences and Plans. QRZ, LoTW, and the offline POTA database are easier to find without changing their dedicated URLs. A connector opened from Settings — or loaded directly — returns to Integrations, while one opened from Import Contacts still returns to Import Contacts.

  • Public Hunt maps now get a real head start before you open them. Once Home has settled, Hamtrax finishes the POTA map offscreen and reveals that exact map and canvas when you open Hunt instead of constructing another one after navigation. Map preparation uses the map's own graphics check and a lower drawing resolution while hidden, then restores full device resolution on the same canvas when Hunt opens. It lets the map settle before adding markers, waits to build the list until Hunt is visible, and loads Hunt before Activate. This keeps its head start with less work competing against the Home tour. That retained handoff belongs to Home → POTA; DX and Repeaters still open in their own correctly initialized maps and frames. POTA goes straight to its highlighted CLICK to hunt contacts marker in one pan-and-zoom instead of detouring through the overview.

  • QRZ and LoTW connections now get their own focused setup pages. (The QRZ importer, Auto-Push controls, and card arrangement described in this earlier entry are superseded by the QRZ sync and five-logbook entries under Next.) Settings → Integrations is now a short status summary instead of a stack of expandable setup cards. Select either connection to open a dedicated page with only that provider's controls; Connect and Manage from Import Contacts open the same destination directly. Back returns to the screen that opened the page, so setup started from Import Contacts returns there instead of dropping into Settings. On the connected QRZ page, Import from QRZ opens Import Contacts and immediately starts fetching and routing the logbook, skipping the two extra selections while preserving Review and Finalize. Both pages now use a prominent title followed by only a plain Connected or gray Not connected line; the small green shield and connection details appear only when connected. Setup forms remain directly on their pages; connected QRZ instead groups its left-anchored status and statistics in one neutral card and its Import/Auto-Push controls in a second, leaving maintenance outside. Both pages clearly separate active work, maintenance, and supporting detail while keeping each heading/help/field/action cluster tight, keep supporting detail behind neutral dividers and quiet disclosures, and reserve color for real connection state, errors, and the primary action. Credential fields on both pages use a simple neutral outline, keeping their boundaries clear without adding another colored treatment. QRZ's Disconnect confirmation now closes immediately while removal finishes; QRZ actions, including Import from QRZ, pause until it settles, and a toast confirms whether the key was removed or the connection remains.

  • The public Repeaters page now opens ready to browse nearby. Signed-out visitors get a useful nearby starting area when one is available, with Chicago, IL as the fallback, plus a default-collapsed What are repeaters? explainer under the title. The top of the panel puts the active area above Search by area, a quiet centered Use my location action beneath the field; + Add repeater now sits at the right end of the repeater count, just above the list. Search and location still replace that starting point across the nearby list, center label, and map without changing any saved account location.

  • 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.

  • 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. The closing CTA now says Create Account instead of Get on the Air, and the redundant documentation-link row beside it is gone. The App Store and Google Play download badges also appear in this closing group — beside the explainers on desktop and below them on tablets and phones — so visitors who finish the tour can install Hamtrax without scrolling back to the hero.

  • 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's shaped like a contact card: the operator's country flag, the callsign with a quiet copy callsign button beneath it, their name, and their city and country, with any QSL manager beneath. Successful copying briefly shows Copied on that button; the callsign stays visible. Any postal code a callbook folds into the city is now left out, here and in map popups and activation and country detail views. Log Contact opens the contact form with the callsign filled in—plus the frequency, mode, and POTA park from a live spot—and the tune button joins it when your connected radio can tune that spot. A highlighted On air now card appears only while they have a live POTA or DX spot, and a row of stats shows only what's known: Local Time, Grid, License Class (marked Expired once lapsed), and Hunter QSOs. POTA history (recent park contacts) and Heard recently (RBN and PSK Reporter receptions from the last hour) are collapsed rows that open on tap; a Public data only info tip lists the sources. Empty sections simply don't appear, and a lookup that fails with nothing to show offers one Retry. 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 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.

  • Hunting map hover points to the matching list item again. On wide screens, the recent Hunt-card redesign could leave a hovered marker's matching card unlit, while an earlier scroll regression could also leave that card off-screen even with Auto-scroll activator list enabled. Hovering a marker now brings the card into view and, once the list has finished scrolling, lights a soft glow along that card's map-facing edge — brightest level with the card's middle and fading out over the map — together with a faint wash across the card's own face (hovering the card itself lights it at once). Both fade back out when you look away. Turn off Auto-scroll activator list to keep the list still without losing the visual pairing; Reduce Motion keeps the same cue with a shorter fade.

  • 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. The contact form now uses the same equal-width coordinate layout. 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.

  • The top-bar solar preview now fits cleanly on narrow screens and gets out of the way with one tap. Its right edge could be clipped, and the four band sections looked darker than the card around them. The preview now stays fully visible, uses one consistent surface color, and closes when you tap the sun, a band reading, or the card's empty space; Open Solar Conditions still opens the full dashboard.

  • 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 a folder link in an activation-routing card selected the right folder but left the Logbook showing its top-level program cards. It now opens directly on that exact 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.

  • 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 → 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.

  • 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 share one row directly beneath that heading with Upload to POTA (on a POTA activation) and Download ADIF, which moved down from the small toolbar at the top of the folder; the List / Map / DX switch sits just below that row. In that row, Add Contact and Bulk Edit show only on the List tab, because Map and DX have no row to add to or select, while the upload and download stay. On a narrow screen the row stays on one line, shortening its labels to POTA, ADIF, Add, and Edit, then to icons. Share moved to the top right of the folder, just under Back on phones and tablets, as a gold button that says what it shares: Share map.

  • 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 a live POTA or DX spot shows one small place photo in the tray that opens beneath its row. Every row remains complete when no freely licensed photo exists. The thumbnails stay lightweight — Park Explorer's load only when their row nears the viewport, and a live spot's only when you open its row; repeated views of the same subject are filtered out; tapping a Park Explorer 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 show the place's photo set as a small stack at the card's right edge, with every visible layer showing a different tiny thumbnail. A pinned card loads the photos itself, while a hover preview shows only photos that have already loaded; 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. The photo, its title, and the available controls stay vertically centered as one group instead of floating at opposite screen edges. Previous and next stay together in a centered row immediately below multi-photo previews on every screen size. Tap anywhere in the surrounding space to close the enlarged view; the photo and its controls stay safely interactive. 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 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.

  • Hostile import files and broken local queues now fail at the door. ADIF and CSV files above 64 MiB are refused before the browser reads them into memory. Both parsers now accept only complete current DXCC entity numbers, so values such as 9A, scientific notation, zero, or an unknown number cannot be half-read into the wrong country. Ham2K PoLo Full ADIF operation events can no longer contaminate or swallow the following QSO, even when an event payload is larger than a contact field may be. If a contact reaches local storage but its durable cloud command cannot be queued, Hamtrax rolls that row back, reports it as failed before filing, and does not inflate either the imported or refused by the cloud count.

  • Map details now share one clear card language. Every map card that carries a frequency — live POTA and DX spots, Logbook contacts, and repeaters — leads with the callsign, beside the operator's first name when there is one, then its place; below a divider sit the segmented frequency digits and, to their right, the mode, yellow by default and blue for digital modes. DX stations show only the canonical entity title as their place, prefixed by its parent-country flag when available, and a grouped DX marker shows that title once above its station cards. Every other floating frequency — sidebar activator results, reference suggestions, the activation frequency warning, and the waterfall tune preview — now uses the smallest segmented readout, while Mode and repeater offsets keep their existing treatments. Catalog parks use the same straight 300px card and left hierarchy. The see details link is gone from every card that opens details: tap anywhere on the card, or the small, dim icon in its top-right corner — a box with an arrow leaving it, which turns yellow when you hover over it — while the card's buttons keep their own jobs. Repeaters follow the same order, with no corner icon because there is no repeater detail view, while spotter and your-location popups, which carry no frequency, follow the same headline-first rhythm. Divider lines set the frequency and mode apart; the status buttons keep their own darker footer. 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. Those connection arcs also keep their role colors at every zoom; they used to turn near-black over street detail.

  • 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.

1.1.36 — August 26, 2026​

  • 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 imported/refused/failed 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 separate numbers at the end for imported, duplicates skipped, ignored, refused, and any contact that failed before filing. Import complete now means the whole file came in. An import holding a contact your logbook turned away, or one that failed before it could be sent, says Import complete — some contacts need attention in the title instead of getting a green tick over the top of it. A contact that is simply still on its way is not one of those: it asks nothing of you and resolves itself, so it counts as imported and leaves the title alone. Each of those counts names an outcome rather than the step that noticed it: a contact you already have counts as a duplicate skipped whether Review caught it or the save did, and failed before filing means only that something genuinely went wrong on this device. Re-importing a 1,000-contact file you already had used to read 3 imported · 774 duplicates skipped · 19 unreadable · 204 failed before filing under the attention title; it now reads 978 duplicates, no failures, and a plain Import complete — nothing came in, but nothing needs you either. Review sees those repeats earlier too: a DX contact another logger recorded by country name or DXCC number alone gets its DX identity when Hamtrax files it, so a re-import was comparing two different spellings of the same contact and slipped it past Review — Review now checks both, and the duplicates appear before you confirm. 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. Before Review, Select now pauses on a dedicated We found X contacts step: the plain centered heading and centered status rows use softened green dots for records read and contacts ready to import, and softened red dots for unreadable, duplicate, rejected, or excluded records; Next then opens the routed review. And offline, where your logbook cannot answer at all, nothing can be refused and nothing needs you — the contacts count as imported and travel the moment you reconnect. Review now ends on a Finalize stage that actually summarizes. It used to be a title and the import button over an empty screen — after walking through every folder one stage at a time, the stage that asked you to commit told you nothing about what you were committing to. It now answers the whole import in four counts: how many contacts were found, how many are to import, how many won't be imported, and how many new folders it is about to create. All four are shown even at zero, because "0 won't be imported" is worth reading; when something is being left out, a line underneath breaks it into duplicates, rejected, and excluded. That stage ends on Import, sitting in the same slot beside the title that every stage's Next uses, at every screen width — so the button you press to move forward never moves. When there is nothing to import at all, that slot is empty instead of holding a button you cannot press: an orange warning triangle and Nothing to import lead the counts, and the reason — everything was already in your logbook, everything was turned away, or you excluded it all — is spelled out beneath them. It no longer spells out the count it is about to import; the To Import tile above it already does. Review navigation saves nothing. See Duplicates and the Import Summary.

  • "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, and Settings now renders the very same field rather than its own copy of it. On the main Add Contact form it also stops a lost contact: that form used to close on Save and only then say Contact not logged, taking the contact you had just typed with it. It now asks before it closes, and your contact waits in the form until you tap Save again. The prompt is also purely a signed-in one now — a signed-out tap is handed to Hamtrax's account prompt instead, so it carries neither a sign-in path nor a Not now button of its own.

  • 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 My 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 log contact card leaves as well, while the top of the panel shows the same green You're activating card as POTA and DX, 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 a repeater tower. 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. Signed in, the tab opens on the directory within 20 miles of your saved location; signed out, the public tab starts from Chicago until you search or choose your location. In either case the list is closest first, each row carrying the callsign and output frequency, the town it covers behind a small location pin, 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 carries no status badge; 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 duplicate detection includes the QSO time — 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 a quiet + Add repeater action sits at the right end of the count above the rows and reappears 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 emblem, 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. Radio photo, nickname, type, manufacturer, and model sit together at the top, with Manufacturer and Model stacking into full-width rows on narrow screens instead of squeezing side by side. Antenna forms start with Nickname: wider screens put Antenna profile beside the photo and Operating capabilities full width below; narrow screens put the photo after the details. Feedline and Deployment notes remain adjacent. On a new profile, leaving Nickname blank and moving out of Model now copies the model into Nickname automatically; a nickname you entered yourself is left alone. Radio 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. Creating a radio or antenna from any equipment picker now brings you straight back with the saved profile visible and selected, instead of waiting for a later refresh.

  • 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.

  • 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.

  • 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. 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.

  • 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 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 labelled buttons. Same three actions, two things to learn, and the icons were the version you met first. The popup now ends with the list row's own buttons inside one straight-sided card, instead of growing temporary tabs from its sides: Tune on its own row when your connected radio can tune the spot, then the outlined No Luck, Later, and Contact group, with Spot beside it on POTA. Pick a status and the unselected buttons still collapse away, but the card no longer jumps narrower under your pointer. After a saved contact, the green Contacted divider sits above Remove contact, Share Contact, and Edit Contact, so you can share or fix it without leaving the map. The callsign, frequency row, and color-coded mode text give that wider card a clear top-to-bottom reading order, while a radio-instrument chassis, crisp metallic bezel, and restrained depth lift the panel off a busy map. That same material now frames the site's owned help hints, warning tips, and guided action prompts without changing how any of them open or dismiss. Every map tooltip still 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.34 — August 19, 2026​

  • 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.

  • 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, with the introduction tucked behind a default-collapsed What is DX chasing? explainer. Logging a contact is still the moment Hamtrax asks you to create an account. 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 park's geography when Hamtrax has written it up. 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 the park-correction tool 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 its folder-name card, choose Change Park from Folder options, and pick the real park. 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.

  • 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, 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 globe to the left. That same icon 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, 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. Opening a DX spot's details — with See details on its row, or from 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 status buttons 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 minimalist carved-ice 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 rows, 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 rows, 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 your 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 My Location row, 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 beneath the heading and its row of folder buttons, 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 Logbook details panel 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, is now on every platform, and sits last in Preferences, below My Activations. 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 the park-correction action 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.

  • 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 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 dropdown keeps program and category headings as expandable, nonselectable groups and greys out incompatible contact folders with their reasons 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, and cloud auto-push 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 its program's canonical Hunt write key too, 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. 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 Innlandet, Norway. 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.

  • 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; 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. The switch keeps a short UTC note beneath it, with the full explanation under How local time works. Display only, either way: stored dates, folder names, exports, and the hygiene guardrails stay UTC.

  • 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 while Pro is still an offer. Pro's Unlimited contacts line now comes before the price, and the Lifetime offer sits directly beneath Pro, so both paid options stay together. Free is quieter but still visible, beside them on wider screens and below them on phones, and prices and billing behavior are unchanged. See Plans.

  • 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 the popup's buttons 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. Hamtrax now fetches that code quietly a couple of seconds after the public site settles, so the dialog is usually just there on the first tap. If your tap beats it, the page dims and a sketched card appears while the rest arrives — and there is far less to wait for, because the sign-in and sign-up forms are no longer packed into the card that only asks which one you want; each is fetched as the dialog opens, so choosing one is normally instant too. Browsers set to save data, and devices on slow 2G or 3G connections, skip the background fetch. 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 the folder equipment summary 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. (Historical auto-push behavior, superseded by the QRZ sync entry under Next; current sync never rewrites or deletes QRZ records.) 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 → 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 connection page 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.)

  • 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, and park picker 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 four 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. And whenever a tap sent the map gliding to a park, every gem's screen position was worked out again on every frame of the glide, to answer a hover question no finger was asking. 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 four 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, a resting gem is now a crisp shape over a cached shadow image shared by every gem of the same size, and a glide no longer recomputes hover positions until a pointer actually arrives. Two more went on phones with the list tucked away: the browser was still checking every card in the hidden list against the finger on every movement of a drag — the single biggest cost of panning with the panel collapsed — and hiding the gems for a drag was itself redrawing every gem twice per gesture. The tucked-away list now steps out of the browser's way entirely, the gems hide with one switch instead of one redraw each, and a flick keeps the gems tucked until the map actually stops. Zooming a busy map is markedly smoother and easier on the battery, and the glow a gem shows when you point at it follows its live color. That same lighter updating now covers the Repeaters directory and catalog parks: hovering one pin no longer redraws every neighboring pin, and pins skip unnecessary work when they first appear. Their positions, shadows, popups, and list highlights stay the same. 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 tapping the folder-name card in the Logbook opens Folder options, where Change Park corrects the activation, while Wrong park? remains under the park line in the live activation header. That Logbook row shows the first-contact date as compact MM/DD/YY, followed by the park reference on every screen size, and tapping the card opens its menu; empty folders omit only the date. 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 above 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 My Location pill in the hunt panel, since the activation already fixes your operating location — and ending it returns hunts to monthly filing. Starting begins at the bottom of the Hunt panel's My Location picker: tap Hunting from a park?, let the picker close, and the top of the Hunt panel 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 filled the map while it loaded. The shimmer now spins the same way for a fraction of the work, and the flashing loading glyphs are gone. The setup map now does essentially no drawing at all while it waits for you. Switching between POTA, DX, and Repeaters now lets the shared map settle too, instead of leaving it redrawing continuously while stationary.

  • The Hunt panel can now open on the band and mode you actually hunt. The Filters card under Settings → Preferences → Map shows each program's current Mode/Band in a compact row. Tapping that row opens only that program's two dropdowns, choices save automatically, and Done closes the editor. A row spells out only what you pinned — Mode: FM, Band: 2m, or Mode: FM · Band: 2m — and a program with neither set reads No default filters, making the absence of saved defaults explicit. Each program keeps its own pair: Parks on the Air and DX Chasing start unset, while Repeaters arrives reading Mode: FM · Band: 2m. A Mode or Band you had already saved carries over as your Parks on the Air default. The Parks on the Air and DX Chasing pairs seed their live Hunt filters whenever you open those programs; changing them under Filters in the Hunt panel itself, or using Clear there, still leaves your saved defaults intact. Repeaters stores its pair without filtering the nearby directory.

  • 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 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 (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.

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 could finish to reconcile remote IDs (historical behavior, since replaced by the QRZ sync workspace)

  • 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. (The import/export controls in this historical entry are superseded by the QRZ sync entry under Next.) 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 a per-install push token alongside broad topic delivery — groundwork for future per-device notifications
  • 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