mzrnsh
email: [email protected] username: F*YOU submit!
Now your sending "Hey F*YOU!" to real people.
Love them? Good! Hate them? Also fine! But if you have such a website and want to host it on GitHub Pages for free, it's not going to work out of box (unless you are using Tailwind CSS over CDN, or their "Play" version via JS). And here's what to do instead.
How to host your Tailwind CSS and Jekyll personal blog on GitHub Pages
Using Airtable as a 'database' for Jekyll
Hope that will be enough for now.
Show HN: Weightless – a minimalist newsletter tool for static sites
Collecting emails sounds easy but if you have a static site, you need to use some sort of an external service for this. Maybe I am too picky but I didn't like the available options so I built one myself.Here's how it works:- You create a mailing list on the landing page (weightless.so)- It gives you a URL you can attach to a <form> tag as an action attribute- Any time someone submits that...
The demo is now live and it tells you the version numbers for a limited set of things (like top 10 GitHub repositories, plus a few other things). Posting it here so that I can get some feedback from other developers. If others also find this useful, I will continue the work.
Here's my pitch for why it might be useful:
1. It's a fast way to learn what's the current version of something. If you go to the home page and start typing, you will get it in 2 actions (given the thing you're after is in my database). If you type something like https://up-to.date/react in the browser, it now becomes a single-step process.
2. Apart from being fast, this has a potential to prevent mistakes. Many developers trust Google or GitHub as the source of truth on these matters and will not look in other places. But that could lead to mistakes.
Some examples of wrong answers I am getting today (May 5, 2022):
- Bootstrap: if you go to https://github.com/twbs/bootstrap, you will think that Bootstrap's current version is 4.6.1, but if you then go to https://getbootstrap.com, you will know that it's actually 5.1.3 - Rails: if you google Ruby on Rails, the special card on the right will tell you the latest version is 7.0.2.3, but according to https://rubyonrails.org, it's now 7.0.2.4 already
One other thing I want to mention:
Clicking search results on the homepage takes you to a dedicated page. There, you will see an email signup form. I put it there in order to see actual interest: if people sign up, that's the best indicator for me that I should continue working on this project. But I am not asking you to enter your email in that form, only do it if you really wish to get updates on new releases.
Also, this is a static website so it uses a 3rd party tool for capturing emails. You guessed it right, that tool is also built by me.
Show HN: A tool that shows the stable version number for frameworks/libraries
But isn't this a bit outdated now? I think it still uses Tailwind CSS 2.
But I also love styling them with a bit modern approach: Tailwind CSS.
So I posted a guide on how to make those two work together.
Beginner-friendly guide to use Tailwind CSS with Jekyll
> [The lesson is] not about making friends with the right people
As making friends with the restaurant owners and the delivery guys was absolutely the key to my friend's success. To which I 100% agree. So I made it clearer:
> [The lesson is] not about making friends with a developer
The point I am trying to make is entirely different: our friendship didn't force me to write the code the way it was written. The limitations we had did. And it's possible to do it with non-friend developers as well: just limit the budget.
If a client comes to me with detailed scope of work and unlimited budget, I will make sure to build something truly amazing and earn a new house in the process. That's just how human brain works. But if they approach with a limited budget telling me to do the best I can, I might build something good enough to launch.
Now that comes with a different problem: most clients will want more after you have done your best for the budget. That doesn't necessarily mean they're bad people. Friends will do the same. Don't remember for a fact but probably my friend also asked for some more stuff, to which I would have said no. Ability to say no is absolutely crucial, be it with clients or friends. Better people than I have written on the matter so I won't bother you further with my thoughts on this.
Here are some answers:
- The market was definitely not USA
- He made some kind of an arrangement with his employer, where he helped them during the transition period after merger (something he really didn't want to do, given he was being fired right after) and they didn't come after him for entering the same market as a much smaller player.
- Initially he handled all the issues you raised (and ones you did not) manually. At scale, you cannot handle courier demand manually, that's why you need software in this business. But he didn't start at scale, he just started. Did things that didn't scale. After we launched, he didn't sit back and watch money pile in. He was there all day, refreshing my non-autorefreshable application and being on the phone with couriers and restaurants and sometimes end customers, making sure it all didn't fall apart.
- The outcome: as I said, this was not a US-based business and the money he made was not the US money (both in terms of currency and scale). He built a business of a local importance in a small market. To me, there's nothing wrong with having a small bootstrapped business. In fact, that's one of my goals in life.
When the pandemic hit, food delivery became really hot and 3 startups of global scale have entered his market. His former employer didn't survive, even though they had nearly 100% of market share at some point. So he had to pivot as well. Instead of running a delivery business, he is now running a SaaS business - offering only the software to restaurants who want to handle online orders themselves (with in-house delivery) to avoid paying 30% marketplace fees. This allowed him to focus his attention elsewhere, while running this SaaS on the side, with nearly 0 involvement and exactly 0 employees.
Sure, there were a couple extra fields.
> And unless you built reporting into the MVP, I bet your friend got to learn how to use some kind of database GUI (e.g. phpMyAdmin) and/or basic queries?
I don't really remember, but I bet we'd include an option to export to Excel. This project was built on Rails, and there are readily available gems to export data. Also, I believe we had a dashboard powered by https://github.com/ankane/chartkick. Setting it up may have taken 50% of time. Was it necessary? No. Did I mention this in my post, saying we could have done it in a day? Also no :D
> This tripped me up for a second. In this context, "free" indicates that the courier was available..
Thanks for catching this, changed it to "available" for clarity
That's one of the hidden advantages of B2B, and recurring business models in general.
I think the key here was that there was no "ideation" phase. We just got to business right away. And we were really, strictly limited with time.
I have worked on a dozen, maybe more other MVPs (where I got paid, as that's what I do for a living). And I don't think I have any other MVP story worth writing about.
The customers and the delivery guys willing to jump on right away were the true assets and no, you can't build those relationships on a single weekend.
Main reason I wrote it was to keep reminding myself that resources, and especially time, are limited. As a developer, it's easy to spend all your time on your pet project and think it's free and there's no harm. I fall for that all the time. But it's never free and yes, there is actual harm. Think of all the other projects you never launched. All the moments with loved ones you never had.
Using creativity instead of all your time is just like using an elegant algorithm* instead of brute-forcing it.
Notes:
* I am a (primarily) front-end developer, don't know a single algorithm
** Thanks @jeremylevy for sharing my story here, I would never dare to