Show HN: I built a tool that texts you if your server goes down

21 pointsposted 20 days ago
by SantiagoVargas

48 Comments

SantiagoVargas

20 days ago

Built YourServerIsDown.com as a side project that we needed for our startup... anyone else have the issue of not finding out quickly enough if your server went down?

For our app it's super important as if our server goes down, users can download the app but get stuck at the sign in flow. There's subscription services out there that do more in-depth monitoring but this is all we needed.

I listed an alternative solution below for those wanting to build or customize their own solution, ours just gets the job done, is quick to set up, and you can avoid the monthly twilio/sms fees.

Other alternative we received as feedback for those interested: "If any one wants an AWS Native way and assuming it has ALB you can target elb metric 503 via Cloudwatch Alarm and create an output to an SNS topic that goes to Slack, or use AWS chatbot/q, or set number as destination for sms via sns"

abcd_f

18 days ago

As much as I appreciate the attitude of building something from scratch instead of exploring existing solutions, the uptime/server monitoring is a super-saturated market and it's been like that since the 00s if not earlier.

That is, it will be really hard for you to find customers.

SantiagoVargas

16 days ago

Completely agree - was surprised myself with the response we've received. Saturated market but the 10x cheaper/easier to set up seems to be resonating with other 1-3 person teams. Don't plan on bringing it to the enterprise-level though.

lurk2

20 days ago

If the service has no monthly fee, how is it being paid for?

SantiagoVargas

20 days ago

It's a one-time 4.99 fee (covers a year of monitoring or 50 downtime events).

Zanfa

19 days ago

That’s an annual subscription.

SantiagoVargas

19 days ago

I suppose you're right, unless your server goes down more than 50 times. I saw it as credits that expire in a year, would be a bit scary to offer monitoring in perpetuity for $5 if they didn't expire.

lurk2

19 days ago

Consider changing your landing page to reflect the price (“Only $5 Annually!”). The reason I asked was because the way it is now makes it look like the service is being offered for free, which made me think it was a phishing scheme.

SantiagoVargas

19 days ago

I appreciate the feedback! Just implemented this, hadn't thought of that. Cheers.

thinkingemote

19 days ago

interesting, how did you come up with the pricing? Similar other services?

SantiagoVargas

19 days ago

Not quite - just thought of what I would actually pay for it. Looked at others and saw most done for you solutions were monthly subscriptions ~$9. Couldn't see myself being excited by that pricing model + another dashboard to manage, so I made it $5 for the year and built the most simple solution that's easy to set up and reliable (while not losing money).

Almost all monitoring services I found target enterprise, and the ones that don't are self-hosted. This solution is for the small teams/indie devs that just need to know when their servers down. Might raise the price though, thinking the low price might work against me for quality perception. What do you think?

thinkingemote

18 days ago

I used a hobby tier service which would send free emails but you would buy credits for SMS. Now I do it myself with simple Cron script

One thing with the events model is that for some webhosts which do maintenance or small periods of downtime often a user might see many through the year. Or in other words the hobby dev might see them but I imagine a production level small team shouldn't be using those servers anyway

sam_goody

18 days ago

I use uptimekuma (self hosted) and am very happy - it can text, or just about anything else - as long as you set it up.

Also Tianji[1], self-hosted in the same space.

Of course, these require setup and have to be hosted somewhere. Either another server or deployed to Heroku (Sealos, Render, etc), since they obviously cannot be deployed on the server you wish to monitor!

[1]: https://tianji.msgbyte.com/

SantiagoVargas

16 days ago

I've heard a lot of good things - seems like the standard for those that don't mind self hosting and managing the alerts. Our goal with this product is to make sms monitoring easily accessible and hands-free (especially for teams/devs that want to focus on the product/marketing and move quickly). Thanks for sharing these resources.

cocoa19

20 days ago

Who’s this built for and what is the use case?

This tool wouldn’t be useful for most (if not) all enterprise services I’ve worked for. For enterprise, you want fully featured synthetics services such as Thousand Eyes, plus an internal monitoring and alerting system.

Also you typically don’t want to expose your health endpoint to the outside world. It’s a security risk.

SantiagoVargas

20 days ago

It's aimed at indie devs/startups shipping ideas quick. Built it for ourselves while we were starting an app under the aws free tier which occasionally went down when usage spiked. Notified us to fix it quickly before losing users that could download the app but not create an account. It can be set up in 30 seconds without needing to code anything, so mainly for coders that want a quick and easy solution.

So not aiming for enterprise on this one, made the pricing quite accessible and with minimal features.

For the health endpoint as long as it only returns a 200 status code (without disclosing info like tokens or resource info/server configurations) then the risk is very minimal.

RandomUser4976

19 days ago

My young child has Type 1 diabetes. I need to know when the server that receives glucose readings from his CGM on his body goes down. It’s a huge help to prevent emergencies and death when I know when his blood glucose is low AND when there’s no new blood glucose readings. I’m going to try this service. Thank you for sharing!

pyfon

19 days ago

It is crazy you need a seperate service for this :(. Why doesn't the original service treat no data as an alert as well as have a 99.999 slo?

SantiagoVargas

19 days ago

Thank you for your comment! Wow - That sounds like a very important use case. Please feel free to reach out to me if you encounter anything while getting set up admin@varonova.ca; I'll double check once you sign up that everything is configured correctly (any unauthenticated endpoint that retuns a 200 response will work, best is /health).

RandomUser4976

19 days ago

That’s very kind of you. Really appreciate it. Cheers!

replwoacause

18 days ago

This seems like too important a job to entrust to this upstart service. What would happen if this fails to alert you?

bguebert

19 days ago

This is cool. I did something similar at my work using smokeping and the #@vtext.com to send the texts.

https://oss.oetiker.ch/smokeping/

SantiagoVargas

19 days ago

Thanks. It's simple but seems to be a common need. One of those tools many companies end up having to build but keep internal.

based2

19 days ago

How it compares with https://www.site24x7.com?

SantiagoVargas

19 days ago

Different use cases, ours is for people who prefer simplicity and just want a text to know if their server goes down. We charge $5 for the year, this service charges $108 (But is aimed at larger enterprises and provides more analytics like monitoring logs/custom status pages). I'm sure their service is great for their enterprise customers, but for smaller teams I feel a text when your server goes down solves the key pain point.

RandomUser4976

19 days ago

How do I add multiple end points? I purchased and added one. I don’t see how to add a second endpoint. Thanks!

SantiagoVargas

19 days ago

Hi there thanks for purchasing! Currently we have it set to just one endpoint per account (MVP Launch) but let me add support for more today. How many endpoints are you looking to monitor?

RandomUser4976

19 days ago

Adding one more for a total of two.

SantiagoVargas

19 days ago

Sounds good - I appreciate the feedback, will let you know when it's up later today.

bitbasher

20 days ago

First and foremost, I love a good side hustle.

With that being said, I find these kinds notifications to provide more false positives than correctly detecting downtime. That ends up costing more time checking/double checking.

On the other hand, if you are running a service with no users and you have downtime... did you really have downtime?

If you run a service and you have downtime and no one reports it, did you have downtime?

I don't even check for my services. If something goes down, I'll find out via email from one or more of my customers. It happens very rarely.

SantiagoVargas

19 days ago

If a tree falls in the forest and no one is around to hear it, does it make a sound?

You bring up a good point. I think it to be less of a problem for more established companies that don't face unexpected outages too often. When we were starting out with our mobile app however this wasn't the case, and each outage meant downloads lost which were critical for getting early feedback. I see it as a bigger pain point for early founders/small teams whose server could see a lot of volatility.

So far we haven't encountered any false positives (been using it for around 6 months) but perhaps with the wrong endpoint that could be a problem. I'll keep an eye out for that.

cf100clunk

20 days ago

> I find these kinds notifications to provide more false positives than correctly detecting downtime

There are services like Textbelt that leave the trigger mechanisms all up to you and your local tools:

https://textbelt.com/

pyfon

19 days ago

Oof! I'd rather be half way through fixing the problem while the customer first discovers it.

Unless you have 1 customer who lives in the same time zone or something.

I'd understand not wanring to be being woken up from a page for a small operation though.

bitbasher

18 days ago

In my experience, most customers are amazed you even respond to their email. If you fix a bug or issue within 24 hours they are amazed.

SantiagoVargas

16 days ago

Very true - our goal is to help companies keep their customers amazed. Especially when starting out with early adopters. Though perhaps not something that can scale as easily.

vivzkestrel

20 days ago

how do you determine if the server went down?

esafak

20 days ago

By checking a health end point. (I'm not the owner.)

SantiagoVargas

20 days ago

Correct. It requires an unauthenticated endpoint that retuns a 200 response. So usually this is the /health endpoint, but as long as we can send a ping it works.

vivzkestrel

20 days ago

ok how does it actually work. i get it you ll check for 500 errors by hitting multiple endpoints every x units of time. But the number of endpoints you must check also keeps going up for your service. Today you start and have 10 endpoints,6 months down the line you need to check 10000 endpoints every x units of time. How do you manage scaling this?

SantiagoVargas

19 days ago

Right, we ping the servers every minute. Since we charge a one-time fee the credits expire after a year, but the service is scaleable. To answer your question I'll give you some more context:

The architecture uses scalable AWS serverless components (Lambda, SQS, DynamoDB) and is well-suited to handle a large increase in monitored endpoints. The primary scaling mechanism is the automatic concurrency scaling of the Lambda functions processing messages from SQS queues. Should we scale to 10,000 endpoints we do expect some bottlenecks that would require optimizing i.e. increasing lambda timeouts/memory etc. but we'll cross that bridge when we get to it.

For the actual sms sending our numbers can send up to 100 sms texts/second.

jedberg

19 days ago

So if one hosts one's site on AWS, then your system probably isn't going to work, eh? :)

If AWS goes down, your site and mine both go down together. This was basically why Pagerduty got out to an early win -- they never used AWS when everyone else did.

jjtang1

19 days ago

Where you host is underrated. When I started building on-call for Rootly the first thing we did was build a multi-cloud setup (AWS and GCP) for honestly pretty overkill reliability. Don’t regret it one bit.

SantiagoVargas

19 days ago

Just looked into Rootly - looks great. This was an mvp launch to test the concept but I'll see about building the multi-cloud setup. Nice to see another Western alum here.

SantiagoVargas

19 days ago

Haha not quite! We host our main startup (Website + app) on AWS and have been using it for around 7 months internally, it's worked great for us so far.

But if something crazy like the 2023 outage happens again then you're absolutely right. Though you'd likely get a news alert for it - our fallback :)

If we get enough traction we'll look into a multi-cloud setup to mitigate that risk. For now our goal is to help with notifying you when your server goes down due to more common reasons.

vivzkestrel

19 days ago

thank you for the detail responses, so i understand that you have a lambda function that fires a request to fetch a website url from dynamodb, since lambda's require a memory limit and a timeout, how much memory is each function using and what is the timeout for a request (30s?) Also does each lambda function handle a single url or we doing asyncio aiohttp stuff with a whole bunch of urls at one go?