Jolly Good Code is a boutique software consultancy in Singapore that specializes in Agile engineering with Ruby (and Rails).
We do a number of projects every year and Anchors of a project are responsible for going through this checklist whenever we start a project.
This checklist helps to ensure consistency in communication and practices across all projects, and more importantly ensure quality in our delivery.
However, depending on situations, it's ok to deviate from the checklist when required.
Firstly, decide on a codename for the project, then setup various services as follows, mainly for communication between JollyGoodCoders and the Client and to facilitate app development.
Details of the setup are also documented in our Guides (to be further updated).
- Chronicles.io
- PivotalTracker
- GitHub (with empty repo and copy Project Checklist to Issues)
- Slack and Integrations
- Heroku (Staging)
- Heroku (Production)
- Codeship
- deppbot
- Chronicles.io
- PivotalTracker
- GitHub
- Heroku
- Codeship
- CodeClimate
- HoundCI
As we start to build the project, we need to check the following:
- Latest version of Ruby and Rails defined in Gemfile
- Ensure all configuration and keys are stored in ENV variables
- Ensure all Model associations have the necessary
dependent: destroy
- Setup Attache + AWS S3 for storing user-generated content
- Optimize according to suggestions by Google's Pagespeed
- Use
heroku-deflater
- see blog
- Use
- Enable
bullet
andlol_dba
and check and optmize all SQL queries - Optimize all images with ImageOptim or Smusher
- Enable lazy loading of images if app is image heavy
- Ensure all/most emails are sent via background processes
- Ensure all/most images are processed via background processes, or use Attache
- Ensure Web Accessibility with WAVE
- Concurrent Server
- Puma recommended at 1-2 x
PUMA_WORKER
- Puma recommended at 1-2 x
- Start your Worker?
- Setup Database with (sizable) Memory
- Postgres DB on Standard 0 (Migrate from Dev DB)
- Set Connection Pool
- Setup Backup Strategy
heroku pg:backups schedule --at '03:00 Asia/Singapore' DATABASE_URL --app <app>
- Setup Logging Strategy
- logentries -
heroku addons:add logentries
- logentries -
- Setup Monitoring
- Skylight.io
- New Relic -
heroku addons:add newrelic && heroku config:add NEW_RELIC_APP_NAME=<app>
- UptimeRobot
- Notable
- Setup Errors Tracking
- Update DNS
- Add custom domains (www and root) to Heroku
- CNAME
www
to Heroku URL; Redirect 302root
towww
- Update DNS Entry for Mail Services
- Update Basement specific ENV in Heroku's config (e.g. WWW_HOSTNAME etc)
This checklist is ever evolving and we would love to have your inputs too.
Send us an issue! ❤️