Shindig: An event discovery app built with Meteor.js, React.js, and Neo4j
When I first moved to Los Angeles in 2013, I had no friends in the area and subsequently spent many evenings at home by myself. After living in LA for a year, I came to the realization that there were so many fun things to do, but I didn’t know about them! It is really hard to discover fun things to do unless you have friends who somehow know everything thats going on.
Most of my friends discover events by word of mouth. Some friends will go to a couple venue websites when they’re bored at work and find some cool things that way. Some subscribe to bunch of email lists like Thrillist and skim through them. LA Weekly actually has a pretty good selection of events. And no body I know ever used Eventful.
These resources are a good start, but none of these solutions work terribly well especially for someone new in town. LA Weekly has a good selection, but they’re all pretty vanilla and family-friendly which makes sense for their audience. Eventful is just a firehose of events, throwing so much at you at once that nothing looks particularly interesting. And any recommendations tend to be pretty generic like the Taylor Swift concert at the Staple’s Center and I’m looking for events like the Brew HaHa drinking game comedy show in some random guy’s back yard.
The problem with these resources is that they’re all curated for a wide audience and rarely publish more obscure events that not everybody is interested in.
Shindig fills in this gap. It’s just like Instagram or Twitter except instead of hipster photos and status updates, users post events. When you star an event, it shows up on your profile much like a bookmark so you can come back to it later. Anyone who follows you will see this event in their feed, given the event fits their time and place search criteria.
This app relies heavily on Facebook — its basically just a better way of consuming public Facebook events. You have to login through Facebook and to get an event into the app, you have to post a public event on Facebook. Facebook is really good for organizing a BBQ with friends, but its not very good at discovering public events that you may be interested in. Now you can use Shindig!
Shindig is currently available online, in the App Store, and on Google Play. And if you’re a programmer and want to learn about how I built this app, the rest of this article series will detail some of the technical aspects of this project.
This app was a much larger technical challenge than I had anticipated and involved trekking through some uncharted territory. I’m writing these articles because I really wish someone would have written them prior to me building this app! I hope they’re useful to someone.
- Shindig: Integrating Neo4j with Meteor
- Shindig: Reactive Meteor Publish/Subscribe with Any Database
- Shindig: Subscription Caching and Latency Compensation
- Shindig: React.js + Coffeescript
- Shindig: React Component Instances
- Shindig: React Tab View Controller
- Shindig: React Proxy Component
- Shindig: React Nav View Controller
- Shindig: React Transitions with Stylus
- Shindig: React Data Component
- Shindig: Patterns and Best Practices
- Shindig: Deployment and DevOps