DEV Community

David Babalola
David Babalola

Posted on

Free Alternatives to Heroku

Given the recent news about Heroku bringing an end to free dynos and PostgreSQL databases, what other free platforms can I use to host Django (Python) powered web applications for free.

Top comments (76)

Collapse
 
jnv profile image
Jan Vlnas • Edited

Services which come closest to Heroku's convenience with free tiers are Fly and Render. Render seems to offer Postgres on a free plan. Another option is Railway which AFAICT doesn't have a free tier, but basic usage is quite cheap.

Check out this list for more services with free tiers (not just PaaS like Heroku): github.com/ripienaar/free-for-dev

Collapse
 
katafrakt profile image
Paweł Świątkowski • Edited

Bear in mind that free databases on Render are deleted after 90 days. That's not 90 days of inactivity, just 90 days after creation. They say it's a temporary measure and the are going to change it in the future (which I hope for), but for now it's not really a viable alternative for Heroku.

Collapse
 
jnv profile image
Jan Vlnas • Edited

Good point! So it may be better to look at external DBaaS providers. For Postgres/relational databases there's aforementioned CockroachDB, and some others like PlanetScale, ElephantSQL, and YugabyteDB (Managed).

Thread Thread
 
amyliumaiyi profile image
Amy Liu

Supabase is vanilla postgres and very generous free tier

Thread Thread
 
jnv profile image
Jan Vlnas

Thanks for the tip. I didn't consider Supabase for their managed database but I will check it out.

I don't consider Supabase as a Heroku-equivalent replacement, since it supports only short-lived database / edge functions and triggers. Heroku and the likes can run a “traditional”, persistent application server.

Collapse
 
kissu profile image
Konstantin BIFERT

Damn, thanks for the tip! 👌🏻

Collapse
 
tnypxl profile image
tnypxl

AFAICT = As far as I can tell

Because it took me longer that it should have to figure that out.

Collapse
 
amanuelabay profile image
Amanuel

good tips

Collapse
 
steve_val profile image
Steve_Val • Edited

can confirm Supabase is incredible.

  • Open Source
  • Huge and helpful community
  • Incredible support team

It ticks all the boxes

There is also a python client library for use with Django (or you can connect to it the same way you would any other PostgreSQL db since it's just vanilla pg under the hood)

Collapse
 
daveson217 profile image
David Babalola

Thank you for letting me know this.

Collapse
 
sokhavuth profile image
Sokhavuth TIN • Edited

You could try Vercel.com. It supports Node.js, Python, Go, Ruby. And you can add your own preferred language if you want. It is very similar to Heroku. You could follow the link below to setup and deploy Django to Vercel.
devmaesters.com/blog/15

Collapse
 
jiachengteo profile image
Teo Jia Cheng

Vercel is very solid

Collapse
 
willnode profile image
Wildan Mubarok • Edited

I've been working on my own cloud platform since 2 years ago because none cloud services (even heroku) is good enough to me. It has a free option (1GB storage) for everybody and it support Django and/or other languages.

Collapse
 
pahosler profile image
pahosler

signed up, but there is an error setting up ssl

There were too many requests of a given type :: Error creating new order :: too many certificates already issued for: domcloud.io: see https://letsencrypt.org/docs/rate-limits/
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
Enter fullscreen mode Exit fullscreen mode

also can you update rust or allow access to rustup?

thanks

Collapse
 
willnode profile image
Wildan Mubarok

That SSL error means the static files path aren't adjusted properly in NginX. I should write docs for that. Fire up an email if you need help to solve that.

Rust can be installed with SSH/without sudo: webinstall.dev/rustlang/

Thread Thread
 
pahosler profile image
pahosler

ah ok, thanks!

Thread Thread
 
pahosler profile image
pahosler

and nope, had already tried that, but rust is already installed, and rustup isn't available.

Collapse
 
monicakh profile image
Monica El Khoury • Edited

Supabase is indeed a fantastic choice! It provides a simple interface for working with Postgres database, and the free tier makes it an accessible option for developers of all skill levels ⚡️

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
zernonia profile image
Zernonia

Agree! Supabase is 🔥

Collapse
 
awalias profile image
awalias • Edited

Supabase ftw

Collapse
 
mildtomato profile image
Jonathan Summers-Muir

⚡️⚡️⚡️

Collapse
 
daveson217 profile image
David Babalola • Edited

Sounds interesting. I would look into it. Thanks a lot.

Collapse
 
sokhavuth profile image
Sokhavuth TIN • Edited

By browsing this GitHub repository github.com/ripienaar/free-for-dev, I found out that this web hosting Deta offers free hosting service and unlimited applications & database. However, at the present time, it supports only Node.js and Python with micro-frameworks such as Express, Bottle.py, Flask, FastAPI etc. I did not try it yet. It is people from Germany who are building this Deta platform.

Collapse
 
jnv profile image
Jan Vlnas

Deta is nice, but you need to specifically design your app around their platform, like their serverless containers (Micros) and NoSQL database (Base). So Django and Postgres from the original question are nonstarters.

Collapse
 
sokhavuth profile image
Sokhavuth TIN • Edited

I just want to give some clue for people who want a free alternative to Heroku, not just to host Django and Postgres.

Talking about Deta Micros, it just two lines of code, that is it.

# to create a project locally and on Deta platform
deta new --python myproject

# to deploy the updated project to Deta
deta deploy
Enter fullscreen mode Exit fullscreen mode

The rest is the regular Python language and framework.

For Deta NoSQL database, there are only 6 methods to interact with the database.

put – Stores an item in the database. It will update an item if the key already exists.
insert – Stores an item in the database but raises an error if the key already exists. (2x slower than put).
get – Retrieves an item from the database by its key.
fetch – Retrieves multiple items from the database based on the provided (optional) filters.
delete – Deletes an item from the database.
update – Updates an item in the database.

Data entry in Deta Base is JavaScript object called "document" like in many other NoSQL databases.

Collapse
 
kostjapalovic profile image
Kostja Appliku.com

Hey, David.

Specifically for Django, check out appliku.com/.

Builds are super fast for Django.
PostgreSQL, Redis.

A whole year of free hosting with AWS Free tier. As far as I know, GCP also offers a free tier.

It works with any cloud provider, so you can pick Hetzner later and save an insane amount of money compared to AWS, DO, and others.

I started working on Appliku 3 years ago and posted the story here dev.to/kostjapalovic/tired-of-depl....

Collapse
 
daveson217 profile image
David Babalola

Thank you. I would look into it.