Skip to main content

Release Notes

Platform updates, new features, and improvements.

Notable

Signup Grace for Membership Lapse

If your membership expires while you're signed up for a members-only trip, you keep access to the trip details.

Rope's only as good as the knot. But we don't cut it while you're still on rappel.

If you signed up for a members-only trip and your membership expired before the trip date, the site locked you out of the trip detail page — even though you were still on the roster. You couldn't see the meeting location, sign your permit, or cancel your own signup.

What Changed

The membership gate now checks whether you have an active signup before locking the trip. If you're already signed up, you keep full access to the trip details regardless of your current membership status.

  • Existing signups — you can still view the trip, see the meeting location, sign permits, manage gear, and cancel if needed.
  • New signups — still require an active membership. The gate only relaxes for people already on the roster.

Who This Affects

Anyone whose annual membership lapses between signing up for a trip and the trip date. Previously you'd see a locked card with no way to interact. Now you see the full trip page as expected.

Notable

See Who's Going on a Trip

Authorized viewers can expand the trip roster to see everyone signed up by name, not just the headcount.

Used to be you'd squint at the paper signup sheet to figure out who else was fool enough to come. Now it's a button — and it won't let just anybody read it.

The roster section on a trip page used to show only a ring with counts. Now, if you're allowed to see it, you can expand that ring into the full list of who's coming.

Show who's going

  • A Show who's going button sits under the roster ring. Tap it and the participants fan out into a list; Hide roster folds it back up.
  • If you've asked your device to reduce motion, the list simply appears without the flourish.

Who can see the roster

Names are only shown to people who have a reason to see them:

  • The trip leader and any accepted co-leaders
  • Trip managers and above
  • Anyone signed up to that trip

Everyone else still sees just the headcount ring — participant names stay private.

What each row shows

  • The participant's name
  • Whether they signed up with a member account or as a guest
  • Their signup status — confirmed, pending permit, awaiting approval, or waitlisted

Behind the scenes

The list is assembled on the server and trimmed to name, role, and status before it ever reaches your browser. Contact details and emergency information are never sent to this view.

Minor

Membership Gate Copy Fix

Locked-content messages now consistently reference the $15/year membership instead of the retired vouching system.

Several surfaces that gate content behind membership still referenced the old recognition/vouching path that was retired on May 14. These now consistently describe the actual gate: membership at $15/year, with a link to the join page.

  • Blurred media placeholder (trip reports, photos) — previously said "available to recognized members" and pointed to the trips page. Now says membership is required and links to /join.
  • Locked detail prompt — previously said "log in and keep an active membership" without naming the price. Now includes the $15/year price point.
  • Member tools access card — previously said "join to unlock member tools" without context. Now names the membership price.
Notable

Inline Confirmations for Mobile

Destructive-action buttons now use inline confirm/cancel instead of browser popups that fail on mobile.

Used to be you tapped "Cancel Signup" on your phone and nothing happened. Reckon that's fixed now.

Every destructive action on the site — canceling a signup, declining a permit, deleting a trip — used the browser's built-in confirmation popup. That popup silently fails on many mobile browsers, WebViews, and PWA standalone mode. The button would do nothing, with no error message.

What Changed

All confirmation prompts now render as inline confirm/cancel buttons directly on the page. No browser popup, no platform dependency. You tap the action, the button expands to show "Confirm" and "Cancel" right where you're looking.

This affects every surface with a destructive action:

  • Trip signup — cancel signup, decline co-leader invite
  • Trip management — delete trip, approve/decline signups, confirm/bounce/decline permits
  • Gear rentals — return gear, cancel rental
  • Calendar events — delete event
  • Admin tools — permit verification queue actions

Why It Matters

If you've been managing trips or gear from your phone, some buttons may have appeared broken. They weren't — the browser was swallowing the confirmation dialog. This fix makes every action work reliably regardless of device or browser.

Notable

Anti-Scraping Protections

Trip and report content is now blocked from AI training crawlers and search-engine indexing, with a honeypot for the bots that ignore robots.txt.

Conservation matters more than your photo album. Glad someone said it out loud.

Specific cave names, locations, and access details are the kind of thing that gets caves trashed when they leak. Now that public AI training crawlers will scrape any unprotected web page for model training data, leaving trip and report pages open meant a cave name mentioned in a report could end up in a chatbot's answer to anyone who asked. That's done.

What's blocked

On the trip, event, report, and calendar pages:

  • AI training crawlers — GPTBot, ClaudeBot, anthropic-ai, Google-Extended, PerplexityBot, CCBot, Bytespider, Applebot-Extended, Diffbot, FacebookBot, Amazonbot, and others get a 403.
  • Search-engine indexing — every response carries x-robots-tag: noindex, nofollow, noai, noimageai, asking search engines not to index, follow links from, or use the content for AI features.
  • robots.txt — politely asks the same bots to stay out of the same paths, which the well-behaved ones honor.

What's still open

  • Marketing pages — home, about, join, permits, and the recognition page stay indexable. These are where new members find us.
  • Real visitors and members — the block only triggers on user-agent. If you load /trips from a normal browser, nothing changes.
  • Conventional search engines (Google, Bing) — they can still index the public marketing pages so people searching for "Chattanooga grotto" or "Chattanooga caving club" can find us.

Honeypot for bots that ignore the rules

A new route at /cave-database looks like an attractive cave catalog but is entirely fake — fictional caves with plausible-but-wrong coordinates, all hand-written. The route is linked only from places real users won't click (hidden footer text), so any traffic to it is a bot ignoring noindex. Hits are logged with the visiting IP for later review.

Why this matters

Caves are physically fragile, biologically sensitive, and a real conservation problem when crowds find them. Cave locations are guarded for that reason — the National Speleological Society's Cave Conservancy guidelines are explicit about not publishing coordinates. AI training data ends up in models that confidently regurgitate it later. The block draws a clear line: marketing for the grotto stays open, cave content goes through membership.

Notable

Recognition becomes a social feature

Recognition is now a social vouching feature — leave a short note on another member's profile to recognize the caving experience you shared.

What changed

The "Recognized Member" badge is now a purely social feature. There is no longer a status threshold, no admin-managed recognition, and no permission gate tied to the badge. Recognition is just members vouching for each other — leaving short notes on profiles about their caving experience together.

The only thing gated behind anything on this site is membership ($15/year).

How it works now

  • From another member's profile, click Vouch for {name} to leave a recognition. An optional 280-character note explains why.
  • Recognitions are visible on the recipient's profile, attributed to the author.
  • You can edit or remove a recognition you wrote from the recipient's profile.

Bat tiers

The badge is derived from the number of recognitions a member has received. Each tier earns one more bat. Tiers are computed live — no admin grant, no manual promotion.

BatsThreshold
1 bat1+
2 bats3+
3 bats8+
4 bats20+
5 bats50+

Crossing a tier triggers a notification to the recipient.

What was removed

  • Auto-grant pipeline that fired on every login (2 trips + 1 vouch, or 2 vouches)
  • Admin Grant/Revoke Recognition controls
  • The trust-level launch announcement modal
  • All "trust level" permission gates (these had already been replaced with membership gates in a prior change; this release deletes the now-dead code)
Notable

Permits Pending Banner and Leader Actions

A persistent in-app nudge for unsigned permits, a nav badge with the count, and a copy-link card for trip leaders.

Used to be you signed the landowner's clipboard with a golf pencil five minutes before the trip. The banner won't let you forget anymore.

If you signed up for a trip that needs a landowner permit, you might forget to actually sign it until the day-of. The system used to email you and call it good. Now it nudges harder as the trip approaches, and gives leaders the tools they need to keep things moving.

Pending permit banner

A banner above the main page nudges you about unsigned permits. It escalates with the trip date:

  • More than 14 days out — silent (just the Permits nav badge).
  • 14 days or closer — amber banner with a "sign now" call to action.
  • 48 hours or closer — red, non-dismissible banner.

Each row shows the trip name and a button to sign. The banner clears as soon as you sign each pending permit.

Permits navigation badge

Whenever you have at least one unsigned permit, a Permits (N) link appears in the top nav with the count. Clicking it takes you to a new page at /member/permits/pending that lists every permit you still need to handle.

Sign right after you sign up

After signing up for a permit-required trip, the success page now embeds the permit signature card directly. You can sign on the spot instead of digging through email to find the link.

Leader actions on the manage panel

Trip leaders, accepted co-leaders, and permit-bypass staff (trip managers, moderators, admins) now see Confirm, Bounce, and Decline buttons next to each signup on the manage panel — same audience that could already act on permits, just with a cleaner surface for doing it.

Permit link card for leaders

The trip detail page now shows a dedicated Permit link card for anyone who can act on permits. The card has a copy-to-clipboard button and an open-in-new-tab link so leaders can grab the URL without scrolling through a participant's signup view. If the trip needs a permit but no link is configured, the card flags it as a warning instead.

Three buttons where there used to be one. Reckon someone'll figure it out.

Notable

My Agenda Page and Dedicated Trip Edit

A new My Agenda page consolidates trips you're going on, trips you're leading, and event attendance. Editing a trip now opens a dedicated page instead of an inline panel.

Used to keep my trips on a paper clipboard pinned to the dashboard. Page is easier to update.

You had to look in two or three places to see your own caving life — a manage panel for trips you lead, the signups list for trips you joined, and the events page for what you said you'd attend. There's now one page that shows all of it.

My Agenda

A new page at My Agenda (linked from Tools) shows everything you're involved in:

  • Trips you're signed up for — with your current signup state (confirmed, waitlisted, pending permit, etc).
  • Trips you're leading — both published and draft.
  • Event attendance — grotto events you've RSVP'd to.

Two filter tabs let you narrow by window (upcoming / past) and scope (going / leading). The Leading filter only shows up if you actually lead anything, so it stays out of the way for everyone else.

Status pills

Trips on the agenda now wear pills that tell you their state at a glance:

  • DRAFT — a private trip you're leading that you haven't published yet. Reminds you it's not visible on the public board.
  • CANCELLED — an event occurrence that's been called off. Shows dimmed so it doesn't disappear silently.

Dedicated trip edit page

Editing a trip no longer happens in an inline form on the manage panel. Clicking edit on any trip you own opens a dedicated page at /member/trips/[id]/edit with the full redesigned trip form. Public trip detail pages now also show an Edit button for trips you can edit, so you can jump straight from the trip board to editing.

Major

Trip Form Redesign

One unified form for every trip — public, private, create, edit — with section navigation, new leader-contact controls, and proper permit handling on personal trips.

Used to be I'd squint at four different trip forms looking for the same field. Down to one now. About time.

If you've ever created or edited a trip on this site, you've used one of four different forms — grotto create, grotto edit, personal create, personal edit — each with its own quirks. That ended. Every trip flow now uses the same form, and you can tell where you are at a glance.

One form for every trip

Whether you're starting a new public trip, editing a draft, creating a personal trip with friends, or editing one you already have, you're filling out the same form. Section names and fields are identical across all four flows; only what's relevant for your trip type shows up.

Section navigation

The form is split into sections — Basics, Description, Location, Permit, Approval, Roster, Leaders, and (for grotto trips) Publish Status. The header is sticky and shows your progress as a dot line. Click any dot to jump straight to that section without scrolling.

New fields

  • Leader phone — an optional phone number, separate from the leader email. Useful for trips where last-minute coordination matters.
  • Show my email to signups — a leader-level toggle controlling whether confirmed signups see your email. Off by default — only on when you want it shared.

Permits on personal trips

Personal trips now have the same permit handling as official grotto trips. If your trip needs a permit, you can flag it, set the permit owner, and signups go through the permit-signature flow just like a grotto trip. Previously, permit handling was grotto-only.

Behind the scenes

The legacy free-text columns (leaderName, leaderContact, permitReference) are gone. Leader identity now comes from the user picker, and permit data comes from the assigned permit record. If you had old free-text values in those fields, they were migrated to the new structured fields before the columns were dropped.

Cleaner data underneath, fewer places for the same name to be spelled three different ways. Won't say I told you so. But I did.

Notable

PayPal Pending Payment Visibility

The post-payment page now tells you exactly what state your membership payment is in, with eCheck-specific copy for the slow ones.

Used to be we'd hand the treasurer a fistful of crumpled bills in the parking lot. At least now the slip says what's happening.

If you paid for membership and PayPal sent your payment as an eCheck, your account didn't activate immediately and you had no way to tell why. The signup page just said "thanks." Now the page knows the difference.

What you see after paying

The page you land on after PayPal sends you back now reflects the actual state of your payment:

  • Membership active — when PayPal has already confirmed payment, your account is already a member, and you can keep going.
  • Pending eCheck — your bank takes 3–5 business days to clear an eCheck. The page tells you that and what to expect.
  • Declined or failed — if PayPal rejects the payment, you see why instead of a silent failure.
  • Still waiting on PayPal — for the brief window between PayPal redirecting you back and PayPal's confirmation reaching the server, you see a "still waiting" message instead of a misleading success.

For admins

A new page at /admin/paypal-ipn shows the last 100 PayPal events the site has received — every verified payment notification, whether or not it activated a membership. Use it when a member says "I paid but it doesn't show" — the raw event is preserved so you can see exactly what PayPal sent.

Behind the scenes

Every verified PayPal notification is now stored to a new PayPalIpnLog table, so payment debugging no longer requires grepping the live server logs. The logging is wrapped so a database failure can't block the 200 OK back to PayPal (which would trigger PayPal's 15-retry storm).

Notable

Trip Leaders Count Toward Capacity

Trip leaders and accepted co-leaders now occupy seats against a trip's group cap, so "spots left" reflects everyone actually going.

Back when we ran sign-ups on a paper clipboard, the leader's name was the first one written. We just forgot to count them. Math finally caught up.

Until now, the primary trip leader and any co-leaders sat outside a trip's max participants cap. A trip with a max of 20 and three leaders would still advertise "20 spots left" even though three people in the party were already going. That stops today.

How the count changed

Every trip's group cap now includes the people running the trip:

  • The primary leader counts as one of the seats. Always.
  • Each accepted co-leader counts as one more seat. Pending invites don't count until they're accepted.
  • Cancellations and waitlist movement still work the same way for participant signups — leaders simply hold their own seats alongside the rest of the roster.

A trip with a max of 20 and three leaders now reads as 3 / 20 going before any participant has signed up. Seventeen seats remain available for signups.

What you'll see

  • The roster ring on a trip's detail page now shows a "Leaders" row in the legend, in a new leather-bronze tone, distinct from the green "Confirmed" row. The center number includes leaders.
  • Trip cards on the trips list show a fraction that includes leaders. A trip with one leader and zero signups out of ten reads "1 / 10," not "0 / 10."
  • The "spots left" number in the action bar reflects the same math. If the trip is full once leaders are counted, registration shows as closed (or waitlist-open, if waitlist is enabled).
  • The activity feed shows the same leader-inclusive "spots left" everywhere a trip's availability appears.

Existing trips that are now full

If you set up a trip months ago expecting leaders not to count, that trip's effective signup capacity is now smaller by however many leaders you have. The system handles this gracefully — nothing breaks — but a few existing trips may now display as full or near-full when they weren't before. If that affects a trip you're running, raise the max in the trip settings.

Co-leader changes free seats

When an accepted co-leader is removed from a trip, their seat opens up immediately and the next eligible signup on the waitlist gets promoted automatically. Pending invites that get declined don't change anything because pending invites never held a seat.

Behind the scenes

Capacity math, the registration state on the trips list, the signup endpoint, and the waitlist promoter all subtract leader seats from the same shared count. There is one source of truth for "how many seats are leaders holding," and every screen reads from it.

Rope's only as good as the knot. Same goes for the math behind a trip roster.

Major

Trip Publication Workflow

Submit a private trip for publication and turn it into an official grotto trip. Reviewers can approve, request changes, or reject — and your trip keeps its history through the whole process.

Back in my day we promoted a trip by handing the leader a beer in the parking lot. This is more auditable.

Until now, "personal trips" lived in a separate world from the official grotto trip board. If you wanted a trip you led to count for reports, the path was confusing. That's been rebuilt.

Submit a private trip for publication

Every private trip you create now has a publication state, shown right on the trip card and in My Trips:

  • Private Trip — only you and people you invite can see it.
  • Pending Review — you've asked for it to be promoted; a trip manager is reviewing.
  • Changes Requested — a reviewer left feedback for you to address.
  • Rejected — the trip won't be promoted.
  • Published Trip — it's live on the public trip board like any officially-led trip.

When you're ready, hit Submit for publication on a private trip. Reviewers see it in the admin queue alongside report submissions.

Reviewer actions

Trip managers, moderators, and admins can:

  • Approve and publish — the trip flips to a Published Trip and shows up on the public board.
  • Request changes — leaves a note for the creator; they can edit and resubmit.
  • Reject — closes the submission with a reason.

You'll see the review history on the trip's submission page.

Notifications when promoted trips change

Once a trip is published, edits and cancellations affect more people, so:

  • Edits to a published trip notify all trip managers.
  • Cancellations notify both the trip's signed-up participants and the manager group.

This makes it harder for a leader to silently change a trip out from under participants or other staff.

Reports tie to canonical trips

Trip reports now hang off the same canonical trip record — whether it started as a private trip you submitted or was created directly on the public board. There's only one source of truth for "did this trip happen, who led it, what got reported."

Private trip leadership

The leader of a private trip is locked to whoever created it. You can no longer reassign a private trip leader to someone else — that role is reserved for promoted/published trips and admin tools. This closes a small but real footgun where a private trip could end up "led" by someone who never agreed to lead it.

Won't say I told you so on the auto-notifications. But I did.

Behind the scenes

This is a substantial schema change: private trips and published trips share a single underlying record with an explicit publication status, instead of being shadow copies of each other. Existing personal trips and submissions were migrated automatically — nothing you've created in the past needs to be redone.

Minor

Simpler Trip Creation Form

Jurisdiction is now derived automatically from the state, and the separate land manager field is gone.

Two small cleanups to the trip create/edit form:

  • Jurisdiction is automatic. You no longer pick a jurisdiction by hand — it's derived from the state you select. Same data, one less field.
  • Land manager field removed. Permit owner already covers landowner contact, so the redundant land manager field has been retired.

No action needed for existing trips. The form is just shorter.

Notable

Mobile Trip Detail Polish

The trip detail page on mobile is tighter, the action bar stays compact, and the header no longer overlaps the sticky controls.

A pass over the mobile trip detail layout to fix several cramped or overlapping spots:

Compact mobile header

  • The trip header on mobile is shorter so more of the page is visible without scrolling.
  • The difficulty badge is now in the header itself, no longer hidden in the body.
  • The header stays sticky as you scroll without overlapping the action bar.

Action bar improvements

  • The sticky action bar matches the header row's width and doesn't push content under the site nav.
  • When your spot is pending a permit signature, the action bar links directly to the permit instead of a generic page.
  • Status row (signup state, spots remaining) is centered and readable at narrow widths.

Small stuff matters. A jammed zipper on your pack ruins the whole trip just as fast as a bad anchor.

These are pure layout fixes — no functional changes to how signups or actions work.

Major

Permit & Approval Workflow Rebuild

New approval modes, signup stage badges, an "I signed the permit" action for members, and admin tools to manage permit owners.

Used to be we'd just leave a note on the landowner's truck and hope for the best. More steps now, but at least nobody falls through the cracks.

Trips that need a landowner permit now have a clearer end-to-end workflow. You'll see exactly where your signup stands at every step, and trip leaders have better tools to move people through the process.

New signup stages

Your spot on a permit-required trip can now be in one of these states, shown as a badge on the trip page and in My Trips:

  • Pending leader approval — your application is waiting for the trip leader.
  • Permit signature required — the leader approved you; you need to sign the landowner permit.
  • Pending permit verification — you've signed; waiting for the leader to confirm.
  • Confirmed — you're set. Meeting location and map link are unlocked.

You'll also get email notifications at each transition, and signup confirmation emails now include the permit owner's name and a link to where you sign.

"I signed the permit" action

When you reach the Permit signature required stage, your signup card shows a one-click button to mark the permit as signed. The leader gets notified to verify on their end.

For trip leaders

When you create or edit a trip, the old "requires permit verification" checkbox is replaced with two cleaner controls:

  • Approval mode — auto-confirm members, or require explicit approval for everyone.
  • Permit owner — pick the landowner from a dropdown (or none, if the trip doesn't need one).

The participants page shows each signup's stage and gives you per-row actions: approve an application, confirm a signed permit, or decline with a reason.

You also no longer count as a signup seat on your own trip — the seat count reflects participants only.

For admins

Two new things:

  • The permit verification queue is split into Attested (members who marked the permit signed and need leader confirmation) and Stale signature (older entries that haven't moved). Easier to focus on what's blocking.
  • A new /admin/permit-owners page lets you add, retire, and restore permit owners that show up in the trip-creation dropdown.

Whole lot of stages for what used to be a handshake. Not saying it's wrong.

Behind the scenes

The data model now uses explicit approval modes and signup stages instead of overloaded boolean flags, which is what made these clearer surfaces possible. Existing trips were migrated automatically; nothing you've done previously needs to be redone.

Minor

Mobile Navigation Improvements

The mobile menu is easier to tap and no longer clips behind other elements.

A handful of fixes to the mobile hamburger menu:

  • Larger tap target so it's easier to hit on small screens
  • Menu items no longer clip behind the page content
  • Active page indicator is more visible
  • New overflow menu gives quick access to Members, Tools, My Trips, and Admin pages
Major

Member Profiles

Browse and search the member directory, view profile pages, and add a bio to your own profile.

We used to just know everybody. Grotto's getting big enough that a directory makes sense — won't say I like it, but I get it.

You can now find other members and see their profiles.

Member directory

Head to the new Members page (in the navigation menu) to browse the full member list. There's a search bar at the top — type a name and results filter instantly.

Profile pages

Click any member's name — in the directory, on a trip report, or in a signup list — to see their profile. Profiles show:

  • Name and avatar (auto-generated from your initials if you haven't set a photo)
  • Bio, if they've written one
  • Trip history and reports
  • Trust status and vouches

Add a bio

Go to your profile settings and you'll see a new Bio field. Write a few words about yourself — it shows up on your public profile page.

Vouching with notes

When you vouch for someone, you can now add an optional note explaining how you know them. Notes are visible on their profile alongside the vouch.

For non-members

Member profiles are only visible to other members. If you're not a member yet, you won't see the directory or profile pages.

Notable

Leader Approval for Non-Member Signups

Non-members signing up for trips now need the trip leader to approve their spot before they're confirmed.

Used to be you sized someone up in the parking lot by whether they brought their own helmet. A confirmation button is less personal, but harder to forget.

If you're not a current member and you sign up for a trip, the trip leader has to confirm your spot first.

How it works

  1. You sign up for a trip like normal.
  2. Your spot shows as "pending leader approval" — your seat is held while you wait.
  3. The trip leader gets notified and can approve or decline from the participants page.
  4. You get an email and notification either way.

Once approved, you'll see full trip details like the meeting location and map link. Until then, you'll only see the county and state.

If you're a member

Nothing changes. Members get confirmed instantly, same as before.

For trip leaders

You'll see a new "Pending leader approval" section on your participants page when non-member signups come in. You can approve with one click, or decline with an optional reason that gets sent to the person.

Leaders can also turn on approval for all signups (members included) on a per-trip basis if they want tighter control.

Major

Release Notes & Notifications

You can now see platform updates on the new Release Notes page, and get notified when major features ship.

Back in my day you found out about changes when someone brought it up at the campfire. At least now it's written down.

We're building a lot of new stuff. Now there's a place to keep up with it.

The Release Notes page shows every update we ship — new features, fixes, and improvements. You'll find a link in the footer.

When something big ships, you'll get a notification. Major features also send an email if you want one. You can turn that on or off from your notifications page.

Major

Trusted Members

Sensitive cave locations and trip report details are now protected. Earn trusted status by participating to see more details on trips and reports.

Conservation matters more than convenience. Glad the website finally acts like it.

We care about cave conservation. Some cave locations are sensitive, and sharing them openly can lead to damage or unsafe visits. So we built a trust system.

What changes

Trip leaders can now hide cave names on their trips. If they do, anyone who hasn't earned trust yet sees a general label like "Trip in Hamilton County, TN" instead of the real cave name.

Trip reports work the same way. If you're not trusted, photos and videos are blurred and exact cave locations are hidden. You can still see the report text and general area, just not the specifics.

How to become trusted

You earn trusted status by participating and getting vouched for by people who know you. There are two ways:

  • 2 completed trips + 1 vouch — go on at least two trips and have a trusted member vouch for you.
  • 2 vouches from trusted members — if two people who are already trusted vouch for you, that's enough on its own.

Once you qualify, it happens automatically on your next login.

Trip leaders and staff (trip managers, moderators, admins) are always trusted automatically.

What trusted members see

  • Real cave names on trips where the leader chose to hide them
  • Full photos and videos in trip reports

What everyone else sees

  • A placeholder name like "Trip in [County], [State]" for hidden caves
  • Blurred photos and no video embeds in reports
  • General area labels instead of exact locations

Trust used to mean the old hands knew your face. Two trips and a vouch isn't so different, when you think about it.

You'll get a notification when you earn trusted status.