I like the nightlife. Living in LA, there’s no shortage of good night time spots. But finding the best spots isn’t easy. Even after 3 years of actively scouting and accumulating great recommendations, I felt like I barely scratched the surface because LA is a huge city.
So I made an app for it. The app is called Dank Nights. The app itself is rather simple. It just shows a bunch of markers on a map with colors to indicate how active a spot is on a given night. The red spots are the most active, while the orange spots are less active and gray spots even less.
There are currently 1000+ spots to choose from, filtered by day of the week to only show spots that are considered to be “dank” spots. What makes a spot “dank”? Ultimately, it’s a combination of how active the spot is on a given night (specified by the filter) and the rating of the spot. This app is strictly about night spots, so the venue must be active between 9pm and 2am.
The native app is built with React Native, but for the backend I decided not to use Node.js, which would normally be my default choice.
I’m using Golang for the backend REST API. The
go-chi framework is about as simple as Node’s Express framework for setting up a server. Since Golang is statically typed (or at least close enough to it), most of the scary runtime bugs that I’d normally run into with Node are no longer an issue. The Plush package brings back the familiar syntax of EJS/Handlebars templates.
Since the activity of a spot is drastically different depending on the day of the week (and some of us are crazy enough to hit the bar on Taco Tuesday), I’ve added filters for each day of the week. The default filter is for “weekends”, which is an aggregate of Friday and Saturday nights.
There’s a barely-working search engine to further find desired spots, but creating a good search engine is very very hard because you have to infer the “intent” of the user rather than just match strings.
At this point, the core functionality of the app is “done”. Nonetheless, Apple rejected the app, stating- in more fancy terms- that it wasn’t useful enough. It’s not unexpected. I’ve never had an app pass through the App Store review process without initial rejection. That’s just part of their quality control process. And if I do ever pass an initial review, I’ll probably have a difficult time sleeping on that night because of anxiety.
I guess I’ll add some kind of listview component just to get this thing into the App Store. Then I’ll move onto more impactful features, like cross-referencing instagram activity with venues to further separate the dank spots from the not-dank spots.
Edit 2/20/19: I had added some more visual spice as well as Yelp integration. Apple keeps rejecting the app for “lack of features/content”. I’ve pulled the plug on this project. It was fun building a new backend with Golang and scrubbing the rust off of my React Native skills, but Apple sucks nowadays.
R.I.P. “Dank Nights”