SkateSpots Drop #003
issue-3
Skate Spots
Skate Spots ContextVM Server: https://contextvm.org/s/940bf0e4fbc64b6c0f09d48c3264723c524a31b5ad0d1aaec361263731689d95 Skate Spots Nostr Relay: wss://relay.skate-spots.org/
7 min read
It's a WEEKLY newsletter and we ship whenever the f*** we want — cope. This drop we went to war with a single Android phone across a dozen builds until it finally admitted where it was standing on Earth. We won. Then we gave you a pin, taught the map to snitch on dead spots, fixed the camera, unstuck your keys, and let you bury your own bad crews. It's a fat one. Strap in.
What shipped
The 'Near Me' button stopped assassinating the app
Android
Tap Near Me → grant location → the ENTIRE app instantly dies and yeets you back to the app store. Adorable. The native geolocation plugin was compiled against a newer Kotlin than our build could read — a NoClassDefFoundError detonating on Android's main thread, the exact kind of crash no JavaScript try/catch on this green Earth can catch. We hauled the whole Android build up to Kotlin 2.1 — plugin classpath, forced stdlib, coroutines, all of it — and put a bullet in it. Dead. Not coming back.
GPS that actually finds you — zero Google required
Map
Once it stopped crashing it did something almost ruder: nothing. It'd beg the sky for one flawless satellite fix, wait a few seconds, then quietly give up. Useless indoors, extra useless on de-Googled phones (hi GrapheneOS) with no fused-location cheat code. So we rebuilt it from scratch: run high- AND low-accuracy location watches in PARALLEL, grab the very first real fix that comes back, and give a cold GPS chip a proper 60 seconds to lock instead of rage-quitting after five. That's the trick that makes Google Maps feel instant — and we do it with no Google in the building.
'Locating you…' — because a dead spinner is psychological warfare
Map
A cold GPS lock can genuinely take up to a minute. So instead of a silent spinner that has you wondering if the app died AGAIN, you now get a 'Locating you…' banner while it hunts and a clean 'Found you' when it snaps in. Telling the user what's happening: groundbreaking, apparently.
You finally have a pin — with main-character energy
Map
Near Me used to just slide the map over and leave you squinting at a pile of markers going 'wait, which blob is me?'. Now there's a proper 'you are here': the SkateSpots logo in a circular badge with a pulsing halo, planted exactly where you're standing, floating on top of every other pin. Google's sad little blue dot could never.
Native geolocation is now crash-proof, permanently
Android
We didn't just defuse the Kotlin bomb — we bricked up the whole hallway. The app now checks the geolocation plugin is GENUINELY registered before it dares touch it, falls back gracefully instead of self-destructing, ignores garbage 0°/0° 'null island' readings, and prints the real underlying error straight to your screen when something's off — so we never debug blind again. Belt, suspenders, and a second belt bolted over the first.
'No location provider' now says so, like an adult
Android
Privacy-hardened phone with no network-location provider? Instead of a vague 'it timed out lol', the app now correctly detects the actual problem and tells you exactly what to do — flip on Network Location, or get GPS a look at the sky. Honest errors beat mystery errors every single time.
Spot Status Reports — rat out the knobbed ones
Community
Spots die. Ledges get knobbed, plazas get bulldozed, mellow spots go full bust overnight — and the person who mapped it is basically NEVER the one who finds out. So now ANYONE can slap a status on any spot: 🟢 Active, 🟡 Bust, 🟠 Skate-stopped, ⚪ Closed, or 🔴 Gone — with an optional note like 'new knobs on the ledge' or 'guard boots you after 6pm'. Brand new event kind, fully documented, 100% Nostr-native.
Consensus that can't be gamed
Trust
One salty local can't nuke a good spot out of spite. Reports blend into a single verdict weighted by how FRESH they are (30-day half-life, so a rebuilt spot heals itself over time) and how TRUSTED the reporter is (your web-of-trust score). Only your latest report counts — no ballot-stuffing — and anything older than six months is ignored. It's democracy, but for curbs.
Status badges everywhere you look
Map
The verdict shows up as a color-coded badge on the spot page AND on every spot card, with a tooltip telling you how many skaters chimed in and how recently. Tap 'Report Status' on any spot, pick a state, drop a note, done. The pulse of the streets, live on the map.
Demolished spots ghost the map
Map
When the crowd agrees a spot is 🔴 Gone, it vanishes from the map markers so you're not bombing 20 minutes across town to skate a fresh parking lot. It stays (dimmed, wearing its Gone badge) in the list — because Nostr never forgets and neither should the history books. Pour one out for the fallen.
Quick Snap goes camera-first
Camera
Quick Snap kept fumbling open your gallery on native when you clearly wanted to, you know, take a damn photo. Now it fires the actual camera through the native plugin on the app, and a clean file picker on web. Snap a spot in the wild without spelunking through menus.
Snap → straight to Add Spot
Camera
Take the shot and you land instantly on the Add Spot form — the photo uploads in the background while you fill in the details. No awkward 'now wait for the upload' purgatory staring at your screen in a parking lot.
Amber signing no longer hangs into the void
Keys
Signing through Amber (the external key-holder app) could just… hang. Silently. Forever. With zero feedback. We added a timeout and a one-time package handshake so a stuck signer surfaces as an actual error you can see and retry — instead of a frozen screen and a quiet prayer. Your keys stay in Amber; your sanity stays with you.
'Capacitor Amber plugin not available' — exorcised
Keys
Uploads and signing on the native app would sometimes whine 'Amber plugin not available' and bail. Fixed the plugin wiring so the signer is reliably present when you upload or publish. Fewer gremlins standing between you and posting a clip.
You can finally bury your own crews & Lab profiles
Community
Made a crew you regret at 2am? Set up a Lab profile you no longer vibe with? You can now properly dissolve a crew or delete a Lab profile (builder, photographer, filmer, editor, coach) via NIP-09 — instead of it haunting the map until the heat death of the universe. Clean up your own mess. The delete button is yours.
Android builds that don't fight us
Android
A mountain of unglamorous but load-bearing native-build plumbing: externalized the plugins that kept blowing up the compile, sorted the JSR package registry, and tamed the Capacitor sync so the APK ships to ZapStore clean. The boring stuff that's the only reason the fun stuff ever reaches your phone.
Community
This hit ZapStore roughly a dozen times this week, because apparently 'just bump the version number' is an extreme sport. If Near Me still can't pin you on a de-Googled phone: flip on Network Location in your OS settings, or give GPS a peek at the sky — satellites get shy indoors. Everything syncs through wss://goskatespots.nostr1.com. Keep mapping, keep reporting, keep skating.
Read every drop at https://skate-spots.org/#/newsletter
Help keep these ideas circulating
This is an independent project. If you'd like to help support it, you can make a contribution. But there's no obligation at all. Reading, sharing, and coming back is already a form of support.
Read also
1
Short Summary

2
When "normie" communities teach Bitcoiners a lesson

3
Security stack, clustering, and a DM warning that'll save someone's keys.
Want to publish here too? No sign-up, and the text stays yours. Learn how to start
Replies (0)
Loading…