New accounts are added by invite only.
Firebase isn't configured yet — edit the firebaseConfig block near the top of the script and set up Firestore/Authentication. See the comment right above it for step-by-step instructions.
A measure of route volume and difficulty.
Everybody Punts
Last year
Pick Boulder, Sport, or Trad to filter by grade.
Coming soon... maybe.
This edits shared app data directly. It's hidden from other users in this UI, but Firestore rules still let any signed-in user write these same collections via the API — this isn't a security boundary, just a convenience view for you.
A measure of route volume and difficulty.
If any climb's crag doesn't match an area already in the database, it won't be imported right away. Instead, once the import finishes, your browser will automatically download a CSV containing just those climbs — with blank Country and State columns added.
Fill those in and re-upload that same file to bring the rest in. This keeps the database from filling up with guessed or unclassified areas.
Your browser just downloaded with those rows and blank Country/State columns added.
Open that file, fill in Country for each row (State/Province too, but only if the country is USA or Canada), save it, then import it again from the same "Import CSV" menu — those rows will come in this time, and everything else already imported stays as-is.
This permanently deletes every send in your log. It can't be undone.