I lament what could have been with heroku. I did some back of the envelope calculations for what it would have cost for my own startup to run on it and it came out to significantly more than what it costs us on aws INCLUDING our dedicated devops guy. They really killed its utility for anything bigger than a hobby project.
It's hard to compare, surely as heroku is basically aws + virtual 24/7 generic dev ops guy. Aws will always be cheaper because heroku itself runs on it. Afaik, the USP of heroku is deployment ease for small/medium projects. If you need complex setups, you need to roll your own in aws.
I wrote this post - for anyone curious, Heroku's .NET support is built on our open source .NET Cloud Native Buildpack (CNB), which is written in Rust and produces standard OCI images.
You can use it anywhere, even locally, for free. The example in the post uses the .NET 10 file-based app feature we added support for today, so if you want to try the same functionality locally, you can do something like this:
# Create a minimal .NET 10 file-based app
echo 'Console.WriteLine("Hello HN");' > Hello.cs
# Build an OCI image using the .NET CNB
pack build hello-hn --builder heroku/builder:24
# Run it with Docker
docker run --rm -it --entrypoint hello hello-hn
# Output:
Hello HN
12 comments
[ 2.8 ms ] story [ 32.4 ms ] thread- Colgate Kitchen Entrees
- Ayds Diet Candy
- Gerber in Africa (in many regions, it is customary for labels to show what's inside. Having a baby on the bottle is just weird)
- Chevrolet Nova (no va means "don't go")
- Clairol Mist Stick (in Germany. In German, Mist means manure)
- Pee Cola (Ghana)
- Puffs Tissues (Germany) (in German slang, Puff means brothel)
- Nokia Lumia (prostitute in Spanish slang)
- ISIS Chocolates (Belgium)
- Hitachi's Woopie Washing Machine (cute to a Japanese ear, but not to that of an English speaker)
How long does it take AWS Lambda to support the latest Node.js LTS release?
You can use it anywhere, even locally, for free. The example in the post uses the .NET 10 file-based app feature we added support for today, so if you want to try the same functionality locally, you can do something like this:
The "classic" Heroku buildpack shown in the demo video is just a thin wrapper around the CNB implementation: https://github.com/heroku/buildpacks-dotnet