3,496 karma · joined January 23, 2019
https://github.com/danjac
If all those things were easier - maybe dirt-cheap turnkey hosting for something federated like Lemmy or whatever - then perhaps the answer to "viable Reddit competitor" is no Reddit at all, but just each subreddit go off and do its own thing. Your stamp-collecting forum doesn't need Reddit scale, it just needs a donate button for a few bucks a month, and if it's connected to the Fediverse then people can use a single login or app to switch between all their forums like they do with subreddits with a single federated timeline/notifications to keep them posted.
Which presumably explains why their leader Nick Clegg went off to work for the not at all creepy and authoritarian Facebook.
To quote the Princess Bride, "you keep using that word, I do not think it means what you think it means".
I suspect there are managers panicking about losing relevance in a post-office world, but those will be middle-managers, not CEOs. Much of the panic is from owners of commercial real estate and their flying monkeys in the media who are seeing empty office blocks and declining property values and rents.
As for Musk, who knows. He's in his own very weird bubble of long-terminism or cosmism or whatever it is he believes in. Maybe he thinks if everyone works from home it will lead to a drop in birth rates or decline in Western society or something.
However we have seen the harms of social media in all aspects from the self esteem of teenage girls to harassment to financial scams to stochastic terrorism. This isn't 2007 any more, anyone entering the social media arena in 2023 with all we know today has to be prepared for skepticism, scrutiny and criticism, whether they are closed source, open source, protocol based or fully commercial.
So really the advice is, be born into the right family, or at least get into to the right university, join the Good Old Boys network, and fail upwards. The old "two dropouts in a garage" idea of a startup immortalized by Steves Jobs and Wozniak is very much a romanticized 20th century phenomenon. Nowadays it's more like the old East Coast financial world of clubs and school ties, albeit with a different uniform of jeans and hoodies.
I can see how that would also be a benefit to a "SAAS starter pack" where you have a small team wearing many hats, probably people with a familiarity with CSS but not experts. The code base in these early stage startups and side projects is going to be small and you want to move quickly. Tailwind is great at that.
However if you have a frontend team of CSS experts to draw upon, the benefits of Tailwind are fewer and the downsides are greater - your CSS people will not enjoy having your classes named things like "px-2 py-1 rounded border bg-blue-800 text-white font-bold hover:bg-blue-500" rather than just "btn btn-primary". They can iterate fast anyway and they will probably leave more maintainable HTML and CSS/SCSS in the long run.
However I'd still be interested if any large teams (with correspondingly large code bases) have made Tailwind work for them.
Heroku offered a path to easy, relatively secure deployment of a database-driven web application. If your aim is to just get something up and running - an MVP - it was probably fine, until it got too expensive. Maybe then you could buckle down and learn the "right" way, or maybe your business took off and you could just keep paying Heroku. If you're running a one-person SAAS, you might not have the time to spend on learning devops, when you have to fix bugs and add features and deal with customer support and sales. Sure, you'll hit that pain point when Heroku no longer works for you, but as detailed in the original post, that pain point may be years off.
I mean sure, you can learn all the other bits and pieces and I have no doubt learning them is valuable, but for a novice who just wanted to get something out there - beyond a static website - Heroku was hard to beat. Sure, it got expensive fast, and that's when you should learn how to manage hosting on your own. But at that point you had more of an idea what you needed and why.
There's the zoo of AWS. Maybe there's something there you can use - Lightsail came out I think in 2016 - but good luck trying to find it out of all the plethora of weirdly named services. Again, total beginner here, and AWS can be daunting even to experienced developers.
You can go with Linode or Digital Ocean. You would need to set up a VM with all the dependencies and make it secure. Oh and you'll need a database - should that sit on another VM? What about backup and restore? What about deployment? Sure, you can use Ansible, but that's yet another learning curve.
Render launched in 2019. Fly.io came out 2020. As far as I remember, there wasn't a competitor that offered the sheer convenience for the hobbyist beginner on the level of Heroku.
RQ or Huey are otherwise fine for anything more complicated. I've rarely run into a situation where Celery is better, but teams just use it because it's the "default".
Long story short, I just booked the flights on the airline website and the hotel room through the hotel website. Price difference was maybe 20 EUR give or take, with very little extra inconvenience. And I had the assurance that if there were any problems, I could just contact the airline or hotel directly without having to deal with booking.com.
"I can see clothes of silk, if materials that do not hide the body, nor even one's decency, can be called clothes. ... Wretched flocks of maids labor so that the adulteress may be visible through her thin dress, so that her husband has no more acquaintance than any outsider or foreigner with his wife's body."
Which is a shame as it makes it harder to learn things like AWS and Google Cloud (or for that matter, Vercel) in my spare time, and perhaps they might even work out cheaper for low-traffic hobby projects, but ultimately the risk is too great.
For example:
- Good test coverage (particularly for critical points of your application) including CI pipeline
- Use dependabot or similar to make sure you get alerts for any critical updates (like security patches)
- Practice good dependency "hygiene" - only add a dependency when you really need it, and do vetting to ensure it's well-supported, has been updated recently, etc.
- Regularly audit and remove dependencies - when a library author declares they are sunsetting their project, plan on a replacement (even if that is, worst case, a fork). Remove dependencies which are no longer used in your code.
- Separate out your development/testing/production dependencies
- Use a good dependency manager: for example in Python, use Poetry or pip-tools or similar, rather than manually updating requirements.txt files yourself
- Update early and often: other than dependabot make it a maintenance task to check for updates at least once a week. Use managers, scripts etc to make this as easy and painless as possible.
Obviously if you are inheriting a legacy project you have to deal with the cards you are dealt, but these are a good target to move towards even with an old codebase.
Point is, there's nothing about Rails in particular that would prevent fixing these issues, that's probably the result of development and business priorities, legacy code, etc. that would be an issue with any tech stack.
Nowadays most projects I've seen use the latest stable release or at least the latest LTS - maybe some legacy projects lagging behind.