Here is one lesson I had to learn the hard way: **Everyone needs a status page.** ---------------------------------------------------------------------------------  Senior Lamb Data Analyst. (Original photo by [Robin Vet](https://stocksnap.io/author/46145) on [Stocksnap](https://stocksnap.io/photo/CX48VQ5EU7)) Yesterday my app went down. My PaaS provider had decided to update their platform late that evening. This caused an obscure bug which kept my Docker containers from spinning up again. The consequence was devastating: My [app](https://hackernoon.com/tagged/app) was offline for hours. I had no way of fixing a bug over which I had no control. **Worse yet: I had no good way of letting my users know what was going on.** I could only email everyone and apologize in person. ### Why Monitoring Is Not Enough  Here’s an email you don’t want to get at 11:24 PM Of course I had set up automatic monitoring of my app’s web page and API endpoints. But it’s not enough if _you_ know that your server is down — unless you’re the only one using it! If anyone else is depending on your service, **you need to have a communication channel _when_ (not if!) something goes wrong.** A status page can be an important element in your relationship with your users. It helps you achieve the following goals: 1. **Transparency** Be open about what’s gone wrong and what you’re doing to fix it 2. **Fast crisis response** Publish information and updates about service interruptions right as they happen 3. **Building user trust** Being transparent and responsive is the best way to show your users that they can trust you. They see that they can rely on your service even when things go bad. ### Why Set Up Your Own Page There are plenty of status-page-as-a-service providers around. One prominent example is [Atlassian Statuspage](https://www.statuspage.io/) which powers the status pages of sites like [Vimeo](http://www.vimeostatus.com/), [Dropbox](https://status.dropbox.com/) or [Reddit](https://reddit.statuspage.io/). Similarly well-known is [Status.io](https://status.io/) which is behind the status pages of [Twitter](https://status.twitterstat.us/), [Docker](https://status.docker.com/) and [Let’s Encrypt](https://letsencrypt.status.io/). Other commercial alternatives include [Sorry](https://www.sorryapp.com/), [Statusy](https://statusy.co/) and [AdminLabs](https://www.adminlabs.com/). None of them come cheap; Statuspage’s smallest plan (which doesn’t include SMS notifications) comes in at USD 348/year; Status.io’s Basic plan (again, no SMS notifications, and this time even without HTTPS encryption) is available for no less than USD 948/year. **I’m sure this pricing makes perfect sense for VC-backed Silicon Valley companies — but not for bootstrapped startups or freelancers like myself.** This is why I decided to set up my own status page. ### What Do We Want? There are really three boxes that a good status page needs to check: 1. ☐ **Automatic updates from monitoring services** The status page needs to be able to display monitoring and/or performance data from external sources 2. ☐ **Communication of current status and planned maintenance** The main purpose of a status page: Communicating the availability of your services to your users 3. ☐ **It needs to look good** Well, obviously! ### The Solution? Fortunately, there is an open-source (Apache-2.0-licensed) status page that fulfills all my requirements: [LambStatus](http://lambstatus.github.io/). **LambStatus is a status page you can install on AWS with one click**.  [The LambStatus website](https://lambstatus.github.io) Even though its name evokes cuddly, woolly sheep babies, LambStatus is actually named for Amazon’s [serverless](https://en.wikipedia.org/wiki/Serverless_computing) platform [AWS Lambda](https://aws.amazon.com/lambda/). LambStatus is essentially a bunch of node.js functions, glued together by some [AWS](https://hackernoon.com/tagged/aws) configuration. The functions are stored in AWS Lambda and only executed on request. This means: Other than a few additional resources (such as a handful of files on S3), **there are almost no operating costs for running LambStatus.** How low are the operating costs? Here’s an estimate from the LambStatus website: > A status page only occasionally gets huge traffic. The system takes $1 per 30,000 visitors and almost $0 if no visitors. Let’s recap our requirements: #### ☑ **Automatic updates from monitoring services** LambStatus can display data from AWS CloudWatch which automatically monitors many AWS resources. It can also receive data from [external monitoring services](https://lambstatus.github.io/integrate-with-other-monitoring-systems) via an API. On top of that, you can also set up your own monitoring for custom HTTP(S) endpoints. I’ve written an guide about that here: [**Serverless Monitoring of Apps & Websites with AWS Lambda** _Could this be the easiest, cheapest, most reliable way to monitor websites and API endpoints?_medium.com](https://medium.com/@pentacent/serverless-monitoring-of-apps-websites-with-aws-lambda-5431e6713a66 "https://medium.com/@pentacent/serverless-monitoring-of-apps-websites-with-aws-lambda-5431e6713a66")[](https://medium.com/@pentacent/serverless-monitoring-of-apps-websites-with-aws-lambda-5431e6713a66) #### ☑ **Communication of current status and planned maintenance** With LambStatus, your users can subscribe to incidents via RSS or email. You can announce planned maintenances and provide updates for incidents as they happen. #### ☑ **It needs to look good** You can take a look at the minimalist beauty of LambStatus on the [demo status page](https://demo-status.lambstatus.org/) and the [demo admin page](https://demo-admin.lambstatus.org/). Or just take it from this screenshot:  Clean, clear, minimalist. What more can you want from a status page? ### Getting Started with LambStatus I’m planning to write a step-by-step guide with some personal tips for setting up LambStatus. **_Make sure to subscribe to my newsletter so you don’t miss the next article!_** Are you interested in best practices for application deployment? Make sure to subscribe to my newsletter! If you don’t want to wait: Getting started with LambStatus is really simple. The only think you need is an AWS account. Thanks to LambStatus’ CloudFormation template, you can set it up in a matter of only a few clicks. Take a look at the official [Getting Started guide](https://lambstatus.github.io/get-started)!