I get asked a lot which technologies power RapPad and how I build new features. This post should answer all those questions.
Languages
RapPad is primarily a Ruby on Rails (RoR) application. Server-side code is written in the Ruby language. Client-side code is written in Slim (and compiled to HTML), CoffeeScript (compiled to Javascript), and SASS (compiled to CSS). Tests are written using RSpec.
Other Software
- Redis (faster database to store smaller bits of data)
- ElasticSearch (to power searching across the site)
- MySQL (database to store super hot lyrics)
Tools I Use
- I use a Retina 13" Macbook Pro.
- I use SublimeText to write up all of my code, as well as a handful of plugins.
- I use SequelPro for peeking into the database.
- I use iTerm as a shell replacement.
- I mainly use Google Chrome.
Hardware / Services
The RoR application was first hosted on a single 512MB DigitalOcean server that was setup by me.
As demand grew, I started buying more and more servers on Digital Ocean and setting up the load balancer, application server, redis, elasticsearch, and database myself. Setting them up to all work together was annoying, and error-prone so after a Redis crash in August 2015, I started using managed-hosting to secure critical components.
I moved over to RedisLabs for Redis hosting, and Amazon RDS for hosting the MySQL database.
Some other services that power the site.
- Filepicker.io (upload + file conversions)
- Muut (messaging / commenting across the site)
- Mandrill (sending emails)
- Mailchimp (sending fancier emails)
- Amazon S3 (file storage)
- Amazon Cloudfront (CDN)
How I Got Into Coding
I'm a huge advocate for learning how to code. If you'd ever like to talk about programming, send me an email at [email protected]. I taught myself how to program when I was around 14. I started off by making games and mods for games like Warcraft III. My favorite language is Ruby.