Hey everyone! In this blog post I'll be talking about how we built Rockstar Cafe from the ground up. I started building out Rockstar Cafe's Online Platform back in 2016 January, and it's come a long way since then!
Our Technology Stack
- React for our View layer
- Redux to manage our application and view state
- Stylus for CSS preprocessor
- Google's Firebase as our NoSQL persistence & real-time store (It's amazing!)
- Algolia powers our searching & filtering (We replicate & index our data from Firebase to enable <100ms search queries)
- NodeJS + ExpressJS for our backend. We primarily use this to serve our web app, rendering certain pages from the server-side for Facebook/LinkedIn/Twitter sharing, Google Drive Authentication and keeping Algolia in sync w/ Firebase)
- AWS S3 for saving images
Other technologies used
- Webpack is used for our development & bundling our assets
- Docker for consistent dev & production environments. Also makes it really easy to onboard new developers (Takes less than an hour to completely get a new dev up & running!)
- Nginx as a reverse proxy for customized onboarding routes. Some of our partners rather use
custom-name.rockstar-cafe.caas opposed to
experience.rockstar-cafe.ca/login?community=custom-name, this is super important for making it easy to onboard new users!
- Heroku is used for deploying our applications, one thing I absolutely love about Heroku is their Review Apps, basically you can spin up a new Pull Request and it'd create a completely new web app instance for you to share with your team. It's awesome for getting quick feedback in an extremely visual way. Highly recommend it!
- ZenHub for agile project management! ZenHub basically adds superpowers onto the github interface itself, via features such as kanban boards, epics, milestones, auto-burndown chart generation it's got everything that's needed to keep track of everything without having to context switch to Trello or something. (I was so inspired by ZenHub that I created KanHub which allows you to have real-time standups without ever leaving github)
- Mocha for testing, Sinon for mocking and expect.js for assertion library
- Travis CI for automatically running regressions/unit tests for each commit & pull request
I'm always super open to chatting about the tech stack :)