A lot of people are wondering about the technical stack used by updown.io and more generaly by one-man tech companies. A while back (2016) I filled up this information on StackShare. I haven't kept it up-to-date and I don't like to have to maintain yet another third party documentation so it's unlikely I'll update it again. Though it changes very slowly so it's still rather accurate for the moment.
I want to share with you here the software & services I'm using and which one I would recommend (or not) and why. Some of them may also include affiliate link (if you want) as it can give you and me some extra credits if you end up using them, but I'll always include the regular link right next to it so you don't have to use the affiliate link if you prefer not to.
I've using Ruby and Ruby on Rails since 2008 and I love them so naturally I chose this main software stack for updown.io. It allows me to quickly develop new features without spending my time re-inventing the wheel or learning a new tech stack just because it looks hip. I'm also contributing back with a yearly donation to Ruby Central and some occasional pull requests.
I also like MongoDB very much and use it because:
- I used it a lot in my previous job (up to its limits) so I'm very familiar with it.
- It's schemaless and lets me iterate quickly and migrate data without too much hassle.
- It's way easier to setup and maintain in a cluster with automatic failover (ReplicaSet) than most alternatives back then, even across the internet (which is what I'm doing).
- It's open source and can be self-hosted easily. I also contributed a lot back in the form of bug reports / performance investigations and code fixes (for both MongoDB server, the mongo ruby driver, and Mongoid the ActiveRecord-like ORM).
Redis is an awesome piece of software, simple and reliable. I'm using it mostly for Sidekiq in order to have machine-local worker queues.
Memcached is also a great, simple and reliable piece of software which I'm using for caching simply because it was one of most common option back then, and I had a good experience with it. It would be ok to use Redis for caching too, but it would require a different Redis instance to have LRU caching so the hosting "complexity" would be similar and I don't have any reason to do this change now.
I've been using Hetzner since 2019 (so recently in updown timeframe) but it's already my favorite hosting provider, hands down. They have great pricing and powerful machines, while still offering very good support. I once contacted them because the RAID SSDs in my ~50€/m server (consumer grade) were not enduring enough for my workload (MongoDB with ~1k writes/second) and kept dying or slowing down to a crawl. They quickly responded with an option to add some enterprise SSD for a small add-on price and asked me when I wanted to schedule the operation 🥰. Their Cloud VPS have the best price/performance ratio I have ever measured in a VPS, with just a minor downside (at least as of 2024-08): they hide the stolen CPU time.
If you're interested: Affiliate link with 20€ cloud credits for you or Regular link.
I've been using Vultr VPS since 2016 for most of updown monitoring locations, because they offer decently priced VPS in many locations (similar to DigitalOcean) and the dashboard/UI is nice and simple. I initially switched from DigitalOcean to Vultr for two main reasons:
- DigitalOcean started blocking port 25 (after spam abuse I suppose) without offering any way out. This prevented updown from monitoring port 25 and generated false positive. Note: Later on they told me I can get it whitelisted by asking support. But it was a bit too late for me
- Also they didn't have the same amount of locations back then and I wanted to add more so switched to Vultr.
It's been working OK so far, but I'm not impressed and I am likely to switch to another provider at least for some locations (but this would mean changing IPs so I try to avoid this change for as long as possible). Here are some of the reasons why I'm not satisfied with them:
- The performance is very random (in some locations) and the overselling pretty high. Meaning that even if you use less than 50% CPU you can get serious slowdown. In shared CPU VPS I aim for 50% CPU usage at most to not abuse the shared CPU pricing and get more stable performances.
- Their IPv6 support is not great and they don't really make efforts to improve it (I showed them broken routes several times, they usually wait for them to heal on their own, even if it's in their own network).
- The upgrade/downgrade process doesn't let you change machine type. You have to do a snapshot first and then restore it, but then you loose all IPs attached to the machine (which I don't want). I asked their support a couple times and got different answers each time, most of the time wrong. After believing them once I tried one hack they suggested (reserve the IPs -> snapshot / restore -> unreserve the IPs), except that it doesn't work for the IPv6 (of course 😒) so now I have to pay for a "reserved IPv6" every months forever, just so I don't loose it. Thank you Vultr.
🫤 Overall I would say it's good enough if you just need some machine but I would not recommend it for more specific use-cases like me which need high quality network and good IPv6 support.
Still if you're interested: Affiliate link: $300 free credits for you (30 days limit) or Regular link.
OVH is the first hosting provider I've used, since around 2009. I chose it because it's French and provides cheap dedicated servers with a very good price/performance ratio. Over the years and various servers I've had with them, I've had mixed results, which degraded even more in the recent years due to:
- The support getting worse and worse, when I report a broken route inside their network with all the relevant traceroute showing exactly which router and IPs, I still get to wait 1-2 weeks for the first response to say "have you tried rebooting your server"...
- The network connectivity (especially IPv6) is also a second class citizen at OVH unfortunately, they can stay for weeks with ~50% IPv6 packet loss without even worrying. And their very fast network expansion in many countries probably didn't help.
- One time I contacted them to replace a failing SSD (RAID 5 setup), they asked me to confirm the S/N of the SSD to change with a hdparm
(which is a good thing to avoid mistakes), yet despite that, they managed to replace the wrong disk...😒 Fortunately the failing SSD (which was still present) was not totally dead so I was able to rebuild the RAID with it. Thanks OVH.
- Their UI "manager" situation is a joke (people who know OVH for some time will understand): they spend years developing new versions to replace the old one but never completely did so at some point there was like 3-4 different interfaced depending on what you wanted to do. And then they even forked the company into 3 brands, and created 2 new managers for the 2 forks, only to merge the 3 brands back later once they realised it was a mistake... but clients started using them of course, so they kept them 😅 I don't even know how many they have now, I think it's stabilizing slowly but I still have 2 different accounts and websites...
Despite these issues, there are a couple things I do liked about my experience with them:
- The dedicated machines I rented with OVH were always very reliable and one of them is still running for more than 10 years without a single issue.
- Also the pricing is still pretty good and they never increased the pricing of a server I already have or tried to force me into another offer/machine.
🫤 Overall it's a bit like Vultr, I would recommend them if you know what you're doing and you need some good stable machine in France (talking about the dedicated offering here, I didn't test their Cloud/VPS offer much). I still have 3 servers with them at the moment: one is just legacy for a client and will be gone once this client finds a new home; and the other two are updown locations that I keep to avoid changing IPs. But once I'll have enough reasons to change these servers, their replacement is unlikely to be at OVH.
Here are the links for OVH and the two cheaper forked brands: So You Start and Kimsufi. (I don't know if they have affiliate links, don't really care)
As discussed quickly above, I user DigitalOcean for some locations before Vultr. Today I only have two small servers at DigitalOcean:
- One is a personnal server for some small websites
- Another is the automatic https proxy for custom domain status pages (e.g. when you use status.example.com instead of updown.io/xxxx). This is a small server which is only responsible for generating and renewing the SSL certificates automatically and then proxy the HTTP requests to updown main web server. The reason this is on a separate server is because the proxy needs full authority on port 443 to deal with them and I didn't want to put it in front of everything else (nginx & passenger) on the main server.
DigitalOcean is older and more professional than Vultr in my opinion, their support is definitely better, and I think the performance is more stable, but I haven't run any significant load in here for a while. They also suffer from some connectivity issues from time to time.
👍 I would recommend them above Vultr, but be careful they offer a lot of fancy stuff now and it can get pretty expensive (and vendor-locked) if you start using them. I'm only using their initial VPS offer in my case. If you're interested: Affiliate link: $200 free credits for you (60 days limit) or Regular link.
For Email alerts, updown uses Postmark since 2016. After testing many alternatives like Mandrill, SendGrid, Mailjet and more, it was clearly the best option for me due to it's:
- Affordable credit-based pricing (which was by the way one of my inspirations for updown pricing)
- Sleek and detailed UI which makes it easy to diagnose deliverability problems
- Very high reliablitly and deliverability due to their focus on transactional emails only
Since then they have been bought by ActiveCampaign though, and have lost some of their DNA in the process (not necessarily because of the sell but during the same years): for example they killed the credits pricing and forced every client into monthly plans that were 2-3 times more expensive. They also started offering Bulk sending (totally separated instructure from transaction they say).
👍 I'm still very happy with them though, and their support has been great too, so I would definitely still recommend them and use them for other projects: Postmark (affiliate link) - Regular link
It was called Nexmo when I started using it to send SMS alerts, and I choose this provider because it was a small French company co-founded by a friend, and they had great deliverability in France. They're grown a lot since then and been acquired by Vonage which does a lot more (never a good sign). I don't have a lot of experience with others to compare, but from what I saw they have decent pricing. The UI is ok but could be better, the API is ok but could be better.
They suffers from the same problems as any other SMS sending provider which are deliverability and the lack of standards. So I do occasionally have deliverability issues, even if the delivery receipt is received, and it's a pain to debug and understand why (even for them). I've tried a couple other provider (Twilio, SMS.to, Amazon) for some specific countries and I had exactly the same problems so I don't think they're doing worse.
Overall sending SMS feels like dark magic compared to email or even TCP packets. And it requires a lot of effort constantly. I guess if I had to start over again I would probably avoid SMS or use Twilio which has more track record and more polished API, though I'm not sure if it would be better.
If you're interested: Vonage SMS.
Do I really need to explain Stripe? They simply have the best API and dashboard I have ever seen. They are rock solid and I've never had any problem with them. I know it's possible to get smaller fees with some alternatives, but for the amount of small transactions I make, I prefer to pay a bit more for peace of mind rather than having to deal with fraud and paiement issues all the time. I definitely recommend 👍
There's a lot to say about Paypal on the other hand ^^ They haven't moved in the past 15 years, their website is always extremely slow (even the payment page). When they started it was a good way to pay without risking leaking a credit-card number on an unknown site. But now that we have Stripe to give us trust when we pay, I see myself using Paypal less and less as a client. I also never managed to setup the auto-renew feature in updown with Paypal, because off-site charging requires some kind of premium hidden autorisation I didn't have on my account (which is a good idea by defaut) but which they never accepted to give me, even after years of good record, they didn't even responded to me... And I skip the API documentation part, which (at least when I installed it) was very complex and confusing. I think PayPal is stuck in 2015 and I would not recommend integrating with them today 👎
I integrated with BitPay initially to collect crypto payments, it was working ok until they decided to fuck everyone by breaking their integration without notice. Basically they started requiring a new validation for companies, but they didn't warn anybody, and the integration stopped working silently without even an explanation to the end-user. I noticed it a couple weeks after when one of my client reported the issue to me, thinking they had done something wrong.
They also increased their pricing at the same time 👎 so I switched to:
Which is doing ok I guess, the UI is very basic. They were lying by saying "no hidden fees" on their website while I easily prooved this was wrong in my first testing. They responded very confidently that: it's not hidden it's just an "internal transfer fees" and it's paid by the end-user (they increase the amount they ask in crypto to cover it) so as a seller I don't need to worry because it's invisible for me 🙃👏. Looks like they removed the wording since then.
The support only gave me stupid answers when I contacted them but hopefully I don't need them often. Otherwise it's working ok since I configured it (with they 1% official seller fee + 1~5% hidden transfer fee) and for the low number of crypto payment I get it's not worth investigating other options.
I tried to get a referral link for you just in case but got a 500 error instead, then a cloudflare error and after a couple tried I finally got it 🫤 So if you really want to give them a try and really want to use my referral link, here is it: Affiliate link and also the Regular link.