Github Pages Chat

I’m trying to make a chat for Github Pages. I know that Github Pages only supports static sites, but a chat needs a way to store data on the cloud. I’m trying to make this free to make, I have a very low budget. I thought of using Firebase, and my question is:
Is Firebase/Firestore the best solution for my purpose?
-I know that Firebase is free, but has limits, which concludes in:
Is it worth to pay for firebase?
Does it support live updates that allow my chat app to update without reloading the page?
-I have heard of other services: MongoDB, node.js, etc., but I want it to be (almost) free and I only have Front-end web dev experience and want to work with static Github Pages
Are there any other solutions for my purpose?
Please contact me via freecodecamp.org.
my GitHub: Galaxy-Coding
Please guide me through this process. If possible, please help me with the actual development of the chat application.
Thank you very much,
Galaxy-Coding

I’ve never made a real chat app, but firebase is very easy to use and has good tutorials and docs.

1 Like

Thanks. Is there anything better than Firebase?

“Better” is as subjective as it gets, and you could spend forever trying to find “best”. I work in an AWS shop, so I’ve never used Firebase myself, but I know it’s battle-tested, has plenty of features, and comes highly recommended. Just give it a go and see how it works for you.

1 Like

Thanks!
Just a few questions:
What is AWS’s pricing?
Does it support live updates that allow my chat app to update without reloading the page?
Does it work with static Github Pages

The vast majority of cloud platforms are pay-as-you-go, and Firebase is no exception. All the major cloud platforms (AWS, GCP, and Azure) have a year-long free trial tier with pretty generous limits. If you need specific numbers or details on capabilities, you can Google as well as I can.

Github pages provides a way to host static files, so your HTML/CSS/JS can be served to users for free, very easily.

Firebase also provides a way to host your web app for free, along with providing API’s and libraries to interact with said apis. Together this allows you to build dynamic web apps very quickly and very easily, permitting they work with the available API’s. However, Firebase is a Paas or a Platform-as-a-service, so your application needs to fit within the platforms limitations. This is different than something like an EC2 instance, which is basically Iaas, or Infrastructure as a service. Infrastructure as a service usually provides developers a lot more control, but also more responsibility in managing their application.

For example, if you wanted to send an email on sign-up of a user for your chat app, in Firebase you’d leverage built in API’s to send template emails you built in the console. If you were using something on an AWS EC2 instance, you’d have to build that functionality yourself but have complete control over the process.

Another example would be if you wanted to search previous text. Firebase’s 2 database offerings do not offer anything similar to that, which means you either load (and pay) to read all data in the chat history, or you use another external service. With an EC2 instance, you can use whatever DB and approach you want/need.

Firebase also provides a basic free tier for most of the api’s available, allowing you to try things out without paying for anything. However, Firebase works on a pay per use model, where the moment you turn on the non-free-tier features, you could end up getting charged for insane amounts of money if your app explodes in popularity and or you design it wrong.

Finally I want to point out that Firebase is different than “AWS”, or even “GCP” (which its actually part of). So even though it may seem at a high level its the same, it isn’t. Its great for prototyping, and building around in some cases, but it isn’t a 1 stop shop to build all applications around.

2 Likes