The YoYo (player) map

I struggled with whether I should share this, but then decided: why not? At the very least, I’ve tried to be security conscious and transparent. The big takeaway is that I built something that, from what I can tell, works and it even has some basic privacy considerations built in.

So here it is: the Yo‑Yo Map, where throwers can show their general location and help identify pockets of yo‑yoers close enough for meetups and events.

The focus was honestly very Mid‑Atlantic / East Coast US, and the platform is very slow because I went with the “everything is free and low‑resource” approach to deploying a web app. However, technically the platform should be globally available, and it’s GDPR‑compliant, regionally compliant, and COPPA‑compliant.

It does tie back to the DMV Throwers main website because it’s easier to keep everything linked and living together.

As with any silly project I do, I’m as transparent as possible; so the GitHub repo is public. You’re welcome to submit a PR if you have a tweak you’re interested in adding (pending my review). All the details, including how it’s hosted and built, are there… plus some junk I need to clean up, but I’m too lazy to do that right now because it’ll break stuff.

If anyone has suggestions, questions, or concerns, feel free to message me, drop them here, or complain on the GitHub repo itself. You don’t have to be technical; feel free to share an idea even if you have no clue how it could be implemented.

Note: I’m not a developer. I had to use Claude to integrate the map because while I can build a basic website, do a little self‑taught Node.js, set up a database, handle hosting, and configure DNS, once it got to “make this map function actually work,” I was spinning my wheels.

Also, feature updates won’t be instant especially if it’s a request without a clear implementation path. It might take me a while to figure it out.

The only thing I won’t give you are the environment variables for the various API keys, which I had to rotate today out of an abundance of caution after @omissionfromgod forwarded me a security bulletin for my hosting platform. (My cybersecurity senses must be off because they weren’t tingling.) Either way, that’s posted on the site now and already addressed, but feel free to read it if you want:

V2 features I’m hoping to eventually add:

• Build a naughty‑word filter to keep people from adding garbage
• Optimize the database so entries load faster
• Optimize the codebase so the page is less sluggish
• Create a club overlay + submission feature so folks can find a club near them
• Create a yo‑yo store overlay + submission feature so folks can find in‑person shops
• Retire from IT and somehow live off yo‑yos and never look at a system security plan again (yeah, right)

Enjoy it, roast it, whatever — I’m good either way.

25 Likes

This is awesome! Great work @Captrogers. I am on the map!

2 Likes

Great work @Captrogers. Added myself as well. Hello from Europe!

1 Like

For my non US folks I’m curious how the web apps running, does it feel slow or clunky at all. I have no Concept of how well it’ll work on a global scale

This is great! Thanks @Captrogers

The last map that came out, sorry I forget who published it, you weren’t able to see the username. I like this.

1 Like

I intentionally made it display name because I don’t want to correlate real names to other data cause that gets deep into PII territory and my goal for this was be as anonymous or open as you like. all we have on file is an email and city and maybe some socials if you feel like sharing them.

I can’t stop people from sharing their real names and I shared mine but it’s intentionally vague for compliance and audit purposes

1 Like

Hell yeah! Added myself :smiley:

1 Like

I made an entry, and there was a hiccup. But I reported myself…you’ll see it. Either way, good work! This is nice to see.

1 Like

So I want to flag this and thank you for the feedback. It opens a discussion a bit.
Right now the map works by taking your pin dropping it center of the city you enter then a random direction generator fires off and bumps your map pin 10 miles in a random direction. The idea being so no one can use the map maliciously and the data is more showing clusters of people and less accurate with the end goal of overlaying a club level layer and showing people local clubs, shops or lack there of in their region.

My fear is some cities have massive jurisdiction and others are tiny and can basically pin your home within a few miles so 10 mile bump can make for some wild inaccuracy but protects those in tiny towns that otherwise would be showing where they live within a few miles.

It’s not perfect and I could reduce the jitter to like 5 miles or something less. I chose 10 as just an easy round number.

Anyone have thoughts or feedback? I also need to look at the couple if reports and see if they are jitter related or actual map inaccurately finding your city.

5 Likes

Fantastic project, I just registered directly from Brazil!

1 Like

Popped my name in, ngl though I’m a little sad to be the only one in the Midwest :cry:

1 Like

Super cool idea! I made an entry but don’t see myself on the map. It’s possible I messed it up, though. Can anyone else see my pin? (I’m in Arkansas)

1 Like

I think you have to wait a bit. I had to after putting my name in

2 Likes

It took a minute for my pin to appear. I’m a registered yo-yo offender now. Oh my

8 Likes

Hopefully it’ll populate a bit more over time

I sure hope so!

1 Like

The database I think only updates every 120 minutes on the map or something silly and there’s some other delayed polling to prevent spam and to keep my limited memory from being over taxed so it’s a tad slow and clunky on the backend to update. V1.5 I’ll try to optimize the backend a bit as I know there’s a bunch of bad practices in the database end that I couldn’t be bothered doing this time around and decided to ship it as is but would be better than the current result of massive table lookups every call but I will hopefully get to those.

I’m also open to anyone going into the repo saying this app is trash and refactoring my entire codebase from scratch and pushing a massive PR :wink:

2 Likes

Super cool. Great job!

1 Like

Thanks for the clarification!

2 Likes

Broke it a tad but it’s back now. Was trying to fix a bad index and ended up breaking everything. Also pushed club entity cause it’s already cone up a bit