Deploy with Firebase. Ethnus Codemithra article cover.

How to deploy a website with Firebase Hosting

Neeraj Patel

Neeraj Patel

You deploy a website to Firebase Hosting in four steps. Install the Firebase CLI, run firebase login, then run firebase init hosting inside your project folder. Finish with firebase deploy --only hosting. Firebase uploads your files and gives you a live URL within a minute, at no cost for a small site. The rest of this guide walks through each step, including the parts most beginners get stuck on.

Firebase Hosting is Google's service for serving static files and single-page apps such as a React build. Use it once you have finished a site or a front-end project and want a real, shareable URL. That beats leaving the file on your laptop.

What you need before you start

Install Node.js if you plan to use the npm install method below. Download the current LTS release from nodejs.org. At the time of writing that is Node 24, with Node 26 as the newer "Current" release. You also need a Google account, since you create and manage Firebase projects through the Firebase console with that login.

Install the Firebase CLI

The Firebase command-line tool, firebase-tools, has three install paths. Which one suits you depends on whether you already have Node.js and which operating system you use. The firebase-tools README lists all three.

Firebase CLI install methods. npm install -g firebase-tools: Windows, macOS or Linux. Needs Node.js. Use this if your project already uses Node.. Standalone binary: Windows. No Node.js needed. Fastest start if you are new to Node.. curl -sL firebase.tools | bash: macOS or Linux. No Node.js needed. A quick one-line install.
Choose the install method that matches your operating system and whether Node.js is already set up. Source: firebase-tools README.

If you already use Node.js for your project, install the CLI as a global npm package:

npm install -g firebase-tools

On macOS or Linux, skip Node.js entirely with the standalone installer script:

curl -sL firebase.tools | bash

Windows also has a standalone binary that needs no prior Node.js install. The full options, including that binary, are listed on the official Firebase CLI reference. Link there rather than to a fixed download URL, since the exact binary location can change.

Log in and initialize hosting

Open a terminal and change into your project folder. Then run:

firebase login

This opens a browser window so you can sign in with the Google account you want for this project. Next, start the hosting setup from your project root:

firebase init hosting

This asks three questions, confirmed on the official Firebase Hosting quickstart. Which Firebase project to use, whether a new one or an existing one. Which folder holds the files you want to deploy, called the public directory and defaulting to public. Whether the project is a single-page app.

Once you answer these, the CLI creates three things in your project folder if they are not already there. It writes a firebase.json configuration file and a .firebaserc file that records which Firebase project you linked. It also creates the public directory itself, with a starter index.html and 404.html if that folder was empty.

Understand firebase.json

The old version of this guide stopped at firebase init and never explained the file it creates. That file controls what actually gets deployed, so read it before your first deploy. A minimal example, matching the defaults in the Firebase Hosting configuration reference, looks like this:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

The public field names the directory whose contents get uploaded, and it defaults to public. The ignore array excludes files you never want uploaded. By default that already covers firebase.json itself, dotfiles and your node_modules folder, so you do not need to add those yourself.

The rewrites block is the part most beginners never see until something breaks. Without it, a single-page app built with React works fine on the homepage. But it shows a blank page or a 404 when a visitor refreshes any other route, such as /dashboard. Adding the rule shown above tells Firebase to serve index.html for any path it does not recognise, so your app's own router can take over. The rewrites section of the same reference documents this. It did not exist anywhere in the previous version of this article.

Deploy your site

With firebase.json in place and your files in the public directory, deploy with:

firebase deploy --only hosting

Scoping the command to --only hosting avoids touching other Firebase products you might add later, such as Firestore or Functions. Once the upload finishes, the CLI prints a live URL. Every hosting project gets two default domains, confirmed on the same quickstart page: PROJECT_ID.web.app and PROJECT_ID.firebaseapp.com. Both serve the same content.

The Firebase Hosting deploy flow. Local folder: Your site files, or a React build output, sit in one project directory Then firebase init: Select Hosting, set the public directory, creates firebase.json and .firebaserc Then firebase deploy: Uploads the contents of the public directory to Firebase servers Then Live URL: Site is served at PROJECT_ID.web.app and PROJECT_ID.firebaseapp.com
The full path from a local folder to a live URL, and where firebase.json and the public directory sit in it.

You are not stuck with the default domains. A custom domain and free SSL certificate come with Firebase's free Spark plan, confirmed on the Firebase pricing page. You can point your own domain at the same hosted site later, without upgrading.

The free tier, and when you would pay

Checked against the official Firebase documentation on 8 September 2026: the no-cost Spark plan includes hosting storage up to 10 GB. It also includes data transfer from Firebase's servers to visitors up to 10 GB a month. Both figures come from the usage, quotas and pricing page. That number has changed over the years, and some older blog posts still quote a much smaller daily limit. Check the official page rather than a cached figure if you need it again later.

If a site goes over the free transfer quota in a given month, Firebase disables it until the quota resets. The only way around that is to upgrade to the pay-as-you-go Blaze plan first. For a personal project, portfolio site or class assignment, the free tier is normally enough.

Try it yourself

Before you deploy a real project, run this exercise on a throwaway folder. Create a folder with one index.html file and run firebase init hosting. Answer "yes" to the single-page-app prompt even though this is not one, then deploy. Visit the live URL, edit a line in index.html, and deploy again. Watching the same URL update on the second deploy confirms you understand the loop, before you deploy a project you actually care about.

Where this fits into the MERN Full Stack course

Deploying a working URL is usually the last step of a front-end project, not the first thing you learn. That is why it appears late in a full-stack syllabus rather than at the start. Ethnus's MERN Full Stack course lists "Deploying React App to the Web" as an item in its React module. The course also has a dedicated NodeJS section covering setup, npm and building a web server. If you build a React project during the course, this Firebase Hosting walkthrough is one direct way to put it on a real URL. Step-by-step walkthroughs and doubt-clearing support are available if you get stuck on a step.

Common first-deploy problem

Suppose your site works on the root URL but shows a blank page or a 404 after a refresh on any other route. You almost certainly skipped the rewrites block covered earlier. Add it to firebase.json and run firebase deploy --only hosting again. This single setting resolves the most common complaint from anyone hosting a single-page app on Firebase for the first time.

Frequently asked questions

Do I need to know Node.js to use Firebase Hosting?

No. You need Node.js only if you choose the npm install path for the CLI. The standalone binary for Windows and the curl script for macOS and Linux both install the CLI without Node.js. See the firebase-tools README.

Is Firebase Hosting free?

The Spark plan hosts a site at no cost, up to 10 GB of storage and 10 GB of data transfer a month. That comes from the official pricing and quotas page. Going over the monthly transfer limit disables the site until it resets, unless you upgrade to the Blaze plan.

Why does my site 404 when I refresh a page that is not the homepage?

This happens to single-page apps that lack a rewrite rule. Add {"source": "**", "destination": "/index.html"} to the rewrites array in firebase.json. The Hosting configuration reference shows this rule, then redeploy.

Can I use my own domain instead of the firebaseapp.com address?

Yes. A custom domain with a free SSL certificate comes even with the no-cost Spark plan, confirmed on the Firebase pricing page.

If you want to build the kind of React project this guide is meant to deploy, Ethnus's MERN Full Stack course covers the front end, Node.js and the deployment step in one syllabus.

About the Author

Read More

Ethnus User Agreement

I agree to submit my personally identifiable information to Ethnus, who may use it to communicate regarding their events, courses, and other services through various media including phone calls, text messages, email, and social media. I also agree with Ethnus' Privacy Policy and Terms of Service.

I agree with Ethnus sharing my personal data, including email address, with Salesforce family of companies, who may contact me for sales and marketing purposes and as described in Salesforce's Privacy Statement.

Privacy Policy

This Privacy Notice describes how we collect and use your personal information in relation to Ethnus websites, applications, products, services, events, and experiences that reference this Privacy Notice (together, "Ethnus Offerings").

This Privacy Notice does not apply to the "content" processed, stored, or hosted by our customers using Ethnus Offerings in connection with an Ethnus account. This Privacy Notice also does not apply to any products, services, websites, or content that are offered by third parties or have their own privacy notice.

Personal Information We Collect

We collect your personal information in the course of providing Ethnus Offerings to you.

Here are the types of information we gather:

        a) Information You Give Us: We collect any information you provide in relation to Ethnus Offerings. Click here to see examples of information you give us. Example: Name, email, phone, etc.

        b) Automatic Information: We automatically collect certain types of information when you interact with Ethnus Offerings. Example: IP address, location, browser identity, etc.

        c) Information from Other Sources: We might collect information about you from other sources, including service providers, partners, and publicly available sources. Example: marketing analytics, keywords, etc.

How We Use Personal Information

We use your personal information to operate, provide, and improve Ethnus Offerings. Our purposes for using personal information include:

        a) Provide Ethnus Offerings: We may use your personal information to provide and deliver Ethnus Offerings and process transactions related to Ethnus Offerings, including registrations, subscriptions, purchases, and payments.

        b) Measure, Support, and Improve Ethnus Offerings: We use your personal information to measure use of, analyze the performance of, fix errors in, provide support for, improve, and develop Ethnus Offerings.

        c) Recommendations and Personalization: We use your personal information to recommend Ethnus Offerings that might be of interest to you, identify your preferences, and personalize your experience with Ethnus Offerings.

        d) Comply with Legal Obligations: In certain cases, we have a legal obligation to collect, use, or retain your personal information.

        e) Communicate with You: We use your personal information to communicate with you in relation to Ethnus Offerings via different channels (e.g., by phone, email, chat) and to respond to your requests.

        f) Marketing: We use your personal information to market and promote Ethnus Offerings. We might display interest-based ads for Ethnus Offerings.

        g) Purposes for Which We Seek Your Consent: We may also ask for your consent to use your personal information for a specific purpose that we communicate to you.

Cookies

To enable our systems to recognize your browser or device and to provide Ethnus Offerings, we use cookies.

How We Share Personal Information

Information about our customers is an important part of our business and we are not in the business of selling our customers' personal information to others. We share personal information only as described below and with Ethnus Consultancy Services Private Limited, . and its affiliates that are either subject to this Privacy Notice or follow practices at least as protective as those described in this Privacy Notice.

Transactions Involving Third Parties: We make available to you services, software, training, and content provided by third parties for use on or through Ethnus Offerings. You can tell when a third party is involved in your transactions, and we share information related to those transactions with that third party. For example, you can order services, software, and content from sellers using the Authorized Training Partner's marketplace and we provide those sellers information to facilitate your subscription, purchases, or support.

Other than as set out above, you will receive notice when personal information about you might be shared with third parties, and you will have an opportunity to choose not to share the information.

How We Secure Information

        a) We protect the security of your information during transmission to or from websites, applications, products, or services by using encryption protocols and software.

        b) We maintain physical, electronic, and procedural safeguards in connection with the collection, storage, and disclosure of personal information.

Internet Advertising and Third Parties

Ethnus Offerings may include third-party advertising and links to other websites and applications. Third party advertising partners may collect information about you when you interact with their content, advertising, or services. For more information about third-party advertising, including interest-based ads, please read our Interest-Based Ads notice.

Access and Choice

You have choices about the collection and use of your personal information. Many Ethnus Offerings include settings that provide you with options as to how your information is being used. You can choose not to provide certain information, but then you might not be able to take advantage of certain Ethnus Offerings.

        a) Communications: If you do not want to receive promotional messages from us, please unsubscribe or adjust your communication preferences in the emails.

        b) Advertising: If you don't want to see interest-based ads, please adjust your Advertising Preferences.

        c) Browser and Devices: The Help feature on most browsers and devices will tell you how to prevent your browser or device from accepting new cookies, how to have the browser notify you when you receive a new cookie, or how to disable cookies altogether.

Children's Personal Information

We don't provide Ethnus Offerings for purchase by children. If you're under 18, you may use Ethnus Offerings only with the involvement of a parent or guardian.

Retention of Personal Information

We keep your personal information to enable your continued use of Ethnus Offerings, for as long as it is required in order to fulfill the relevant purposes described in this Privacy Notice, as may be required by law (including for tax and accounting purposes), or as otherwise communicated to you. How long we retain specific personal information varies depending on the purpose for its use, and we may delete your personal information in accordance with applicable law.

Contacts, Notices, and Revisions

If you have any concern about privacy at Ethnus, you may also contact us at the addresses below:

Ethnus Consultancy Services Pvt Ltd,

SST Chambers, No.151/17/1 Second Floor, 36th Cross Rd, 5th Block, Jayanagar, Bengaluru, Karnataka 560041

Or, email us at [email protected]

Or call us at: +91 - 8929 334 324

You will find the updated contact information on our website: www.ethnus.com/contact/

If you interact with Ethnus Offerings on behalf of or through your organization, then your personal information may also be subject to your organization's privacy practices, and you should direct privacy inquiries to your organization.

Our business changes constantly, and our Privacy Notice may also change. You should check our website frequently to see recent changes. You can see the date on which the latest version of this Privacy Notice was posted. Unless stated otherwise, our current Privacy Notice applies to all personal information we have about you and your account. We stand behind the promises we make, however, and will never materially change our policies and practices to make them less protective of personal information collected in the past without informing affected customers and giving them a choice.

Terms & Conditions

This Privacy and Security Policy is provided for the benefit of customers and clients of Ethnus Consultancy Services Private Limited. ("Ethnus") as well as other consumers and parties who use Ethnus and/or its website(s), particularly codemithra.com ("Website", "www.codemithra.com", "Codemithra" or "Ethnus Codemithra"), and/or applications ("Apps") (collectively, "Ethnus Services" or "Ethnus Platform").

Since Ethnus serves several different audiences, customers find it helpful to read the Terms of Use that apply specifically to them based upon the purpose for which they use Ethnus. For this reason, we link to three separate agreements below for employer customers, job seeker customers, and staffing customers, respectively.

For your convenience, we define each of these audiences that Ethnus serves as follows:

"Employer Customer" means an entity using Ethnus Services that is seeking to hire an individual as an employee and/or independent contractor to be employed by it directly.

"Job Seeker Customer" means an individual using Ethnus Services who is seeking to be employed as an employee or independent contractor by an employer.

"Staffing Customer" means a staffing company using Ethnus Services that provides staffing services to their own Staffing Clients.

So long as your use of the Ethnus website and services remains within the scope of the particular audience or customer for which you began using Ethnus (e.g. a job seeker does not use Ethnus as an employer, or an employer does not use Ethnus as a job seeker), the complete Terms of Use applicable to your use of the Ethnus website and services is contained within the applicable Terms of Use linked below.

Employer Terms of Use

The following Terms of Use apply to any Ethnus Employer Customer seeking to hire employees or independent contractors for its own business. If you seek to find employees or independent contractors for the benefit of your clients (and not yourself), you need to review the Terms of Use specifically for our Ethnus Staffing Customers accessible at www.Codemithra.com/terms/staffing.

Ethnus, Inc. ("Ethnus") provides online services through which employers and staffing companies seeking employees and independent contractors can efficiently and effectively review and interview candidates. Ethnus provides these services and its suite of features and products through its Apps and Website (collectively, "Ethnus Services") subject to these terms of use ("Terms of Use") and the agreements incorporated herein.

Your privacy is very important to us. We designed our accompanying Privacy and Security Policy to provide important disclosures about how your information will be used by Ethnus in providing you Ethnus Services. These Terms of Use expressly incorporate our Privacy and Security Policy.

Please read these Terms of Use and our Privacy and Security Policy carefully before using any of the diverse Ethnus Services. By visiting the Website, installing any of the Apps, and/or using any of the Ethnus Services, you shall have affirmed your agreement to these Terms of Use.

1. Definitions

2. Modifications - Will Ethnus ever modify these Terms of Use?

3. Ethnus Services - What are the Ethnus Services?

4. Video Content and Services - How and when do you record videos?

5. Pricing, Payments, and Billing - How and when will I be billed for Ethnus Services?

6. Objectionable Content - What if I find content to be objectionable?

7. Customer Conduct

8. Intellectual Property

9. DMCA Policy

10. Reserved for Future Use

11. Resale of Services

12. Indemnification

13. Disclaimer of Warranties

14. Third Party Links and Products

15. Limitations of Liability

16. Exclusions and Limitations

17. General Terms

1. Definitions

"Consumer" means any individual or entity that uses any of the Ethnus Services. Where applicable, the term "Consumer" shall encompass all Ethnus Customers.

"Content" means all material, whether publicly posted or privately transmitted, available on or through any of the Ethnus Services.

"Customer" means, for purposes of this Terms of Use, You, a Job Seeker Customer.

"Customer Content" means any Content uploaded to and/or created through the Ethnus Services by a Ethnus Customer.

"Employer Customer" means an entity using Ethnus Services that is seeking to hire an individual as an employee and/or independent contractor to be employed by it directly.

"GDPR" means the European Union's General Data Protection Regulation.

"Job Seeker Customer" means an individual using Ethnus Services who is seeking to be employed as an employee or independent contractor by an employer.

"Profile Video" means a promotional video created by a Job Seeker Customer to promote themselves as a candidate employee and/or independent contractor. It is not an interview. The Job Seeker Customer completes this independently and on their own.

"Software" means any necessary software used in connection with the Ethnus Services.

"Ethnus Account" means an account associated with a Ethnus Customer who uses or has used Ethnus Services.

"Ethnus Content" means any Content excluding Customer Content and Video Content in which Ethnus does not participate.

"Ethnus Customer" means any person who uses or has used Ethnus Services including, but not limited to, Employer Customers, Job Seeker Customers, and Staffing Customers.

"Ethnus Services" means the suite of features, products and services offered through Ethnus, its Apps, its App Services, the Website, and the Website Services.

"Ethnus Trademarks" means any trademarks, tradenames, logos, and other commercial designs of Ethnus or licensed to Ethnus, whether or not formal registration exists including, but not limited to, "Ethnus."

"Staffing Clients" means third-party employer clients of Staffing Customers.

"Staffing Customer" means a staffing company using Ethnus Services that provides staffing services to their own Staffing Clients.

"Strategic Partners" means those trusted partners that Ethnus employs, engages, or retains to perform functions and/or provide services on its behalf.

"Sub Accounts" means subsidiary accounts created for or by an Employer Customer or Staffing Customer ("such as a consultant group or employer") under its primary account.

"Username" means the valid email address provided by each Ethnus Customer to be used as their username or login identification.

"Video Content" means any video content created by or associated with any Ethnus Customer accessible on and through Ethnus Services including, but not limited to, Profile Videos, Video Questions, Video Interviews, and Welcome Videos.

"Video Interview" means an interview completed through Ethnus Services using a video or "web" camera that an Employer Customer or Staffing Customer requests a Job Seeker Customer complete. A Video Interview may involve a Job Seeker Customer alone or with other participants from an Employer Customer or Staffing Customer. A Video Interview may be pre-recorded by a Job Seeker in response to questions or occur live at which time it would be recorded.

"Video Question" means a question recorded in video and audio that can be sent to potential employee and independent contractor candidates by an Employer Customer or Staffing Customer.

"Website" means all of the content, information and services (in any format whatsoever) accessible through the World Wide Web at the domain name Codemithra.com.

"Website Services" means the services provided by Ethnus through the website at the domain name Codemithra.com, hire.li, and any of our other websites that may be used from time to time