Monitor your website's uptime and present results on a status page with GitHub Actions.
Tags: monitoring, slack, macos, zoom
Published: 2020-11-29 16:58:33

---
canonical_url: https://blog.natterstefan.me/monitor-your-websites-uptime-and-present-results-on-a-status-page-with-github-actions
---

Black Friday is over. Did your credit cards and bank accounts survive? As every year, retailers and online stores outdo each other in the price war on one of the most important trading days of the year. Apart from great bargains, I have some tempting links for you this week as well. Many of them with a 100% price discount, because they are open source (jk).

Have fun "shopping".

Feel free to share your feedback with me on [Twitter](https://twitter.com/intent/follow?screen_name=natterstefan) and don't forget to sign up for my [newsletter](https://newsletter.natterstefan.me/).

## upptime

![upptime](https://cdn.hashnode.com/res/hashnode/image/upload/v1606666495811/Lu106oc5s.png)

No matter if it's your own craft website, your customers' webshop, or your SaaS business, you should always have an eye on whether your site is online and accessible for your customers. Besides hosted services like [UptimeRobot](https://nttr.st/39oRZA7) or [StatusCake](https://nttr.st/3o3aePF), there are also open source solutions. This includes [upptime](https://nttr.st/3moVLwY). The Uptime Monitor with Status Page checks your websites at a set interval and creates an [issue on GitHub](https://github.com/upptime/upptime/issues/67) if they are no longer available. It is powered entirely by GitHub Actions under the hood. So it easy to set up and maintain. upptime is open source (MIT) and available on GitHub.

-> Try [Upptime](https://nttr.st/3moVLwY)!

## ⛓ Links of the Week

- Did you know that macOS uses an outdated version of bash? To be exact, it uses Bash version 3.2, which was released in 2007. The reason is simple: licensing. Since version 4.0 Bash uses GPLv3 and Apple does not want to support it. That means you are still using an outdated version of Bash. But don't worry, [that can easily be changed](https://itnext.io/upgrading-bash-on-macos-7138bd1066ba).
- If you ever heard of the [DRY principle](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) you might be interested in how it can be applied to [styled-components](https://css-tricks.com/dry-ing-up-styled-components/).
- This week I had to deal with iOS on the iPad. Specifically, the designers wanted to have the close button of a fullscreen gallery on the top right, but the iPad renders a native button on the top left. And according to [Can I Use](https://caniuse.com/mdn-api_element_requestfullscreen) this cannot be deactivated. And so I had to deal with the question of how to detect if the device is an iPad with iOS >= 13. Why? Because  [since iOS 13 the iPad's user agent identifies itself as a desktop browser by default](https://www.sitecorespark.com/blog/2019/10/what-safari-and-ipados-means-for-device-detection-in-sitecore). This is happening because [iPad has Request Desktop Website enabled by default](https://51degrees.com/blog/missing-ipad-tablet-web-traffic) now. After looking at some StackOverflow page, I finally came up with a solution. In my current implementation, I use "Feature Detection" to determine if it is a desktop device or an iPad. Afterward, I analyze the user agent and use the remaining information to find an iPad with iOS >= 13. Before iOS13, for example, version numbers were still available to the user agent. Here is a  [CodePen](https://codepen.io/natterstefan/full/gOMVyWe)  with a draft of my and proposed solutions on StackOverflow.
- Do you need to mock `localStorage` in your tests with Jest? Here is [how it works](https://stackoverflow.com/a/54157998/1238150).
- Richard, one of my readers, drew my attention to a [JavaScript competence test developed](https://ausbildung.illwerkevkw.at/elearning/index.html?id=js1001&ref=natterstefan.me) by him for the Vorarlberg company [illwerke vkw](https://www.illwerkevkw.at/?ref=natterstefan.me). How many questions can you answer correctly? Some questions are tricky at first sight.
- Something I've been missing ever since everyone started working from home: hallway conversations. Luckily there are many tools tackling the task to get remote teams together again. One of them is [Hallway](https://hallway.chat/?ref=natterstefan.me) an app for Slack.
- Taking notes in audio or video meetings can be a demanding task. Luckily for us, there are solutions for this. [Vowel](https://www.vowel.com/?ref=natterstefan.me) automatically transcribes, in real-time, your video, and audio conference meetings.
- [Zapps - Apps on Zoom](https://zoom.us/docs/en-us/zoom-apps.html) launched recently and they offer a great opportunity to businesses to build something on top of Zoom.
- Have you ever heard of the [oddly satisfying](https://www.reddit.com/r/oddlysatisfying/) subreddit? It is astonishing how much time you can spend watching these videos and gifs. I tweeted about a [website with the same oddly satisfying effect](https://twitter.com/natterstefan/status/1332640222589440000) and many of my followers played with it too.
- This pricing strategy from an experiment in 2014 surprised me. [A comedy club in Spain charged visitors per laugh with facial recognition](https://www.bbc.com/news/technology-29551380?ref=natterstefan.me). I wonder if they still do it.
- Due to several coincidences I stumbled upon [Beeple](https://www.beeple-crap.com/?ref=natterstefan.me). On the site, Mike Winkelmann presents amazing [short films](https://www.beeple-crap.com/films?ref=natterstefan.me), so-called ["Everydays"](https://www.beeple-crap.com/everydays?ref=natterstefan.me), and [VJ loops](https://www.beeple-crap.com/vjloops?ref=natterstefan.me). **Wow!** One of my favorite Everydays is his artwork called "Tom Hanks beats the shit out of coronavirus" ([source](https://www.beeple-crap.com/everydays?pgid=kdyix8la-tom-hanks-beats-the-shit-out-of-coronavirus_180)).

!["Tom Hanks beats the shit out of coronavirus" by Beeple](https://dev-to-uploads.s3.amazonaws.com/i/ep53urzzlsa22gg0lyn5.png)

## 📺 Video of the Week

This trailer is epic for the announcement of a new major release. Epic.

{% youtube 3u_vIdnJYLc %}

## 🐦 Tweets of the Week

{% twitter 1330608770083397632 %}
{% twitter 1330340251143987201 %}
{% twitter 1331622874554241024 %}
{% twitter 1332020284854034441 %}
{% twitter 1332281938871279618 %}

See you next week - thank you. 👋🏻

Stefan

---

*If you like my [articles](https://blog.natterstefan.me/), you probably like my [tweets](https://twitter.com/intent/follow?screen_name=natterstefan) and [newsletter](https://newsletter.natterstefan.me/) too. Let's stay connected on [Twitter](https://twitter.com/intent/follow?screen_name=natterstefan), [LinkedIn](http://www.linkedin.com/in/natterstefan), and [GitHub](https://github.com/natterstefan).*

---

*This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided in this article.*