I’ve been pretty quiet on this blog, but I’ve been busy behind the scenes. One of the projects I’ve worked on is https://www.ispecookay.com/, my first major project built in Serverless!
Thanks to COVID, I was made a remote employee, which now means most days I’m in my apartment building about 23 hours a day. This means that if power is lost in the middle of the day, I’ll notice it. If PECO has to do maintenance in the middle of the day, I’ll notice it. If a storm takes out power for several hours, I’ll definitely notice it.
While sitting around in the dark and refreshing PECO’s status page, I found that I really only cared about two values:
- How many customers are without power?
- Is that number moving up or down?
If the number is moving up, that means things are getting worse and I shouldn’t expect power back for awhile. If the number is moving down, it means that restorations are happening, and I should expect power back sooner. And that is largely why I built https://www.ispecookay.com/.
I also want to state that I am throwing absolutely NO shade on PECO, I found that their existing outage page did not meet my needs, because it is very content and Javascript heavy, and when there is a power outage going on, I would like to conserve my phone’s battery. CNN does a great job at this with CNN Lite and it was one of my inspirations for “Is PECO Okay?”.
Technologies Used in Building IsPecoOkay
So what technologies did I use to build the website? Here’s the list:
- AWS S3 – Static file hosting
- AWS Lamba and API Gateway – Execution of my Python scripts to retrieve outage data from PECO, store it in DynamoDB, and retrieve it from DynamoDB.
- AWS DynamoDB – Data Storage
- AWS CloudFront – HTTPS termination.
- AWS Certificate Manager – SSL Certificates
- AWS Route 53 – DNS
- Hugo – Static site content generator.
- Serverless – Code Deployment and DyanmoDB Schema Management
- Github – Hosting and Issue tracking
- Workflowy – Managing my personal TODO list and brainstorming
Some of these technologies I knew, such as S3 and CloudFront. But there were some such as Serverless, Lambda, and DnyamoDB that I didn’t know at all. So there were a handful of evenings and weekends spent diving into each of those technologies, learning what is possible with each of them and how to use it.
The Total Cost
DNS costs me 50 cents per domain per month, so that’s the most expensive part of this project. Everything else currently comes up to less than 50 cents per month, which means my total cost to run this website is less than a dollar a month. Pretty neat!
What Comes Next?
I think I did as much as I can with PECO, and now that I’m more comfortable with Serverless, I’m going to look into other data sources that I can crawl and process with Serverless-based websites. NJ Transit is one that I am closely looking at. If you have suggestions for others, feel free to drop them in the comments!
My source code, if you’d like to see it, can be found at https://github.com/dmuth/is-peco-okay