└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # SaaS Startup Checklist 2 | 3 | ## Development 4 | 5 | - [ ] Source Code Repository 6 | - [ ] Continuous Integration 7 | - [ ] [Cross Browser Testing](#cross-browser-testing) 8 | - [ ] [API](#api) 9 | 10 | ## Deployment 11 | 12 | - [ ] [Domain Name](#domain-name) 13 | - [ ] [Hosting](#hosting) 14 | - [ ] [Automated Deployment](#automated-deployment) 15 | - [ ] [Backups](#backup) 16 | - [ ] [Redundancy and Failover](#redundancy-and-failover) 17 | - [ ] [Alert and Monitoring](#alert-and-monitoring) 18 | - [ ] [Transport Layer Security](#ssl-certificate) 19 | - [ ] [Content Delivery Network](#content-delivery-network) 20 | - [ ] [YSlow! Web Performance Best Practices and Rules](#yslow!-web-performance-best-practices-and-rules) 21 | - [ ] [Application Performance Monitoring](#application-performance-monitoring) 22 | - [ ] [Error Tracking](#error-tracking) 23 | - [ ] [Analytics](#analytics) 24 | - [ ] [Social Media](#social-media) 25 | - [ ] [Status Page](#status-page) 26 | - [ ] [Image Optimisation](#image-optimisation) 27 | - [ ] [Feedback Form](#feedback-form) 28 | 29 | ## Resources 30 | 31 | ### Cross Browser Testing 32 | 33 | * [BrowserSwarm](http://www.browserswarm.com/) 34 | * [Sauce Labs](https://saucelabs.com/) 35 | 36 | ### API 37 | 38 | #### Documentation 39 | 40 | * [API Blueprint](http://apiblueprint.org/) - _API Documentation with powerful tooling._ 41 | * [API Blueprint Language Specification](https://github.com/apiaryio/api-blueprint/blob/master/API%20Blueprint%20Specification.md) 42 | * [iglo](https://github.com/subosito/iglo) - _API Blueprint's formatter._ 43 | * [Apiary](http://apiary.io/) - _Build beautiful APIs with collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing._ 44 | 45 | ### Domain Name 46 | 47 | * [Namecheap](http://www.namecheap.com/) 48 | * [Gandi](https://www.gandi.net/) 49 | 50 | ### Hosting 51 | 52 | #### Virtual Private Server (VPS) 53 | 54 | * [Linode](https://www.linode.com/) 55 | 56 | #### Dedicated Server 57 | 58 | * [OVH](https://www.ovh.co.uk/dedicated_servers/) 59 | * [Digital Ocean](https://www.digitalocean.com/) 60 | * [Hetzner](http://www.hetzner.de/en/hosting/) 61 | 62 | #### Cloud 63 | 64 | * [Amazon EC2](http://aws.amazon.com/) 65 | * [Rackspace Cloud](http://www.rackspace.co.uk/cloud) 66 | 67 | ### Automated Deployment 68 | 69 | ### Backups 70 | 71 | Database replication and frequent, off-site backups. 72 | 73 | * [Amazon S3](http://aws.amazon.com/s3/) 74 | 75 | ### Redundancy and Failover 76 | 77 | Server redundancy and fail-over, load balancing. Multiple, redundant hosting providers to handle datacenter outages. 78 | 79 | ### Alert and Monitoring 80 | 81 | * [PagerDuty](http://www.pagerduty.com/) - _Provides SaaS IT on-call 82 | schedule management, alerting and incident tracking._ 83 | 84 | ### Transport Layer Security 85 | 86 | Keep your customer's data safe by using an encrypted connection with an SSL certificate. Mandatory for registration and login pages. 87 | 88 | ### Content Delivery Network 89 | 90 | Optimise delivery of web pages, block threats and limit abusive bots and crawlers. 91 | 92 | * [CloudFlare](https://www.cloudflare.com) 93 | 94 | ### YSlow! Web Performance Best Practices and Rules 95 | 96 | Yahoo!'s Exceptional Performance team has identified a number of [best practices for making web pages fast](http://developer.yahoo.com/performance/rules.html). 97 | 98 | 1. [Minimize HTTP Requests](http://developer.yahoo.com/performance/rules.html#num_http) 99 | 2. [Use a Content Delivery Network](http://developer.yahoo.com/performance/rules.html#cdn) 100 | 3. [Avoid empty src or href](http://developer.yahoo.com/performance/rules.html#emptysrc) 101 | 4. [Add an Expires or a Cache-Control Header](http://developer.yahoo.com/performance/rules.html#expires) 102 | 5. [Gzip Components](http://developer.yahoo.com/performance/rules.html#gzip) 103 | 6. [Put StyleSheets at the Top](http://developer.yahoo.com/performance/rules.html#css_top) 104 | 7. [Put Scripts at the Bottom](http://developer.yahoo.com/performance/rules.html#js_bottom) 105 | 8. [Avoid CSS Expressions](http://developer.yahoo.com/performance/rules.html#css_expressions) 106 | 9. [Make JavaScript and CSS External](http://developer.yahoo.com/performance/rules.html#external) 107 | 10. [Reduce DNS Lookups](http://developer.yahoo.com/performance/rules.html#dns_lookups) 108 | 11. [Minify JavaScript and CSS](http://developer.yahoo.com/performance/rules.html#minify) 109 | 12. [Avoid Redirects](http://developer.yahoo.com/performance/rules.html#redirects) 110 | 13. [Remove Duplicate Scripts](http://developer.yahoo.com/performance/rules.html#js_dupes) 111 | 14. [Configure ETags](http://developer.yahoo.com/performance/rules.html#etags) 112 | 15. [Make AJAX Cacheable](http://developer.yahoo.com/performance/rules.html#cacheajax) 113 | 16. [Use GET for AJAX Requests](http://developer.yahoo.com/performance/rules.html#ajax_get) 114 | 17. [Reduce the Number of DOM Elements](http://developer.yahoo.com/performance/rules.html#min_dom) 115 | 18. [No 404s](http://developer.yahoo.com/performance/rules.html#no404) 116 | 19. [Reduce Cookie Size](http://developer.yahoo.com/performance/rules.html#cookie_size) 117 | 20. [Use Cookie-Free Domains for Components](http://developer.yahoo.com/performance/rules.html#cookie_free) 118 | 21. [Avoid Filters](http://developer.yahoo.com/performance/rules.html#no_filters) 119 | 22. [Do Not Scale Images in HTML](http://developer.yahoo.com/performance/rules.html#no_scale) 120 | 23. [Make favicon.ico Small and Cacheable](http://developer.yahoo.com/performance/rules.html#favicon) 121 | 122 | ### Application Performance Monitoring 123 | 124 | Monitor application performance and track historical trends. 125 | Should include page load times, error rates, slow transactions, servers resource usage. Correlate performance metrics with deployments/releases. Alerting for severe performance degradation. 126 | 127 | * [NewRelic](http://newrelic.com/) - _A powerfully simple way to monitor your Web & Mobile applications._ 128 | 129 | ### Error Tracking 130 | 131 | Aggregate client and server errors, exceptions and failures. Should include stack traces, environment information, intelligent notifications, trend analysis. 132 | 133 | * [Sentry](https://getsentry.com/welcome/) - _Know immediately when things happen in your application. Engage users before they have a chance to report a problem._ 134 | * [Airbrake](http://airbrake.io/) - _With deploy tracking, logging, dupe detection and a dashboard to track your exceptions, managing and triaging errors has never been easier._ 135 | * [RayGun](http://raygun.io/) - _Real time error reporting you can set up in under 5 minutes!_ 136 | * [Exceptional](http://www.exceptional.io/) - _Tracks errors in web apps. It reports them in real-time and gathers the info you need to fix them fast._ 137 | * [Errbit](http://errbit.github.io/errbit/) - _The open source, self-hosted error catcher._ 138 | * [Google Stackdriver Error Reporting](https://cloud.google.com/error-reporting/) - _Real-time exception monitoring and alerting. No limits._ 139 | 140 | #### Analytics 141 | 142 | * [Google Analytics](https://www.google.co.uk/analytics/) 143 | * [Go Squared](https://www.gosquared.com) 144 | 145 | #### Client-side error tracking 146 | 147 | * [Errorception](http://errorception.com/) - _Simple and painless way to find out about JavaScript errors, as they occur in your users' browsers. All you need to do is insert a script tag on your page, and you will start recording errors as they happen in real-time._ 148 | * [QBaka](https://qbaka.com/) - _Cloud-based frontend error monitoring and analytics for web services & mobile HTML5._ 149 | * [JSLogger](http://jslogger.com/) - _Log Javascript errors and events in the cloud._ 150 | * [Muscula](http://www.muscula.com/) - _Log your JavaScript errors, so you can fix them._ 151 | * [BugSense](https://www.bugsense.com/) - _Get actionable reports on the health of your Javascript apps & websites!_ 152 | * [ExceptionHub](http://www.exceptionhub.com/) - _Easy Setup, drop in code and start collecting errors._ 153 | 154 | ### Social Media 155 | 156 | Register appropriate usernames/pages on social media sites. Configure alerts for mentions, complaints and praise. 157 | 158 | * [Twitter](https://twitter.com/) 159 | * [Facebook](http://www.facebook.com/) 160 | 161 | ### Status Page 162 | 163 | Externally hosted resource displaying real-time system availabilty, historical uptime, latency, past incidents. 164 | 165 | * [StatusPage.io](https://www.statuspage.io/) - _The best way to create a status page for your app or website._ 166 | 167 | ### Image Optimisation 168 | 169 | * [Tools for image optimization](http://addyosmani.com/blog/image-optimization-tools/) 170 | 171 | ### User Authentication 172 | 173 | * [LoginRadius](https://www.loginradius.com/) 174 | * [MojoAuth](https://www.mojoauth.com) 175 | * [Okta](https://www.okta.com/) 176 | 177 | --------------------------------------------------------------------------------