DEV Community

Cover image for I wrote this app to practice my React, Node, Mongo, Redis and Docker skills
Geoffroy Empain
Geoffroy Empain

Posted on • Edited on

I wrote this app to practice my React, Node, Mongo, Redis and Docker skills

Hi there 👋

Last week, as I was struggling to connect to my Gitlab.com account, I noticed that their status page was mentioning operational while in reality they were down - they later reported the incident.

That gave me the idea (spoiler alert, it's not something new) to create a very simple, painless website monitoring app where I could just add endpoints easily and get notified when something went down. Sure, I could use Prometheus and Grafana, but it's a hassle to manage when you've got several projects to monitor - and for most projects, I honestly don't look at CPU usage etc, I just want to know if they're up or down, so deploying the whole stack is unnecessary. Then you've got things like UpDown and Uptime Robot - and I'm certainly missing many others - but where's the fun when I have spare time and could practice my React, NodeJS, and MongoDB skills ?

I also wanted to experiment with Redis which I've heard so much about, configured in so many docker-compose.yml files but never actually used in code. I've also wanted to use Stripe's API and see how I could integrate billing in my apps for a while, so I figured this would be a good occasion - and I have to tell you, it is by far the most well designed, documented and sdk-complete API I have ever used (disclaimer, I don't work for Stripe, I just think it's important to recognize when something's truly great).

My requirements were quite simple:

  • simple way to add endpoints and customize request method and headers
  • simple way to configure notifications (email, Slack, Mattermost...)
  • a way to check my endpoints from different places in the world
  • fine tune the amount of down time before getting a notification
  • have a nice status page with cool - but meaningful - graphs

I also needed a cool name, so I went with "Probe" - I found the idea of having probes around the world a good match.

I published the app this week at https://probe.sh and would love to know what you think ! I was thinking about open sourcing it on Github as probe-sh/probe so anyone could self-host and help making it better - what do you think ? What license should I use ?

I've only deployed probes to France and Canada for now, but if you want other locations, additional notification types or features, let me know on Twitter @probe_sh or on Github 🚀. I'm already planning to add a public status page for endpoints and a way to group them - stay tuned !

Looking forward to your feedback 🎉

Top comments (0)