> ## Documentation Index
> Fetch the complete documentation index at: https://github-52.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish This Data Science Portfolio to GitHub Pages

> Step-by-step guide to deploying this portfolio site to GitHub Pages with Cloudflare CDN integration, including branch setup and DNS configuration.

This portfolio is deployed to GitHub Pages directly from the `feature/cf-admin-editor-foundation` branch of the `Sumit-SC/Sumit-SC.github.io` repository. GitHub Pages serves the site automatically whenever you push changes to that branch, making the deployment workflow simple: write, commit, push, and the site updates within minutes. The sections below walk you through forking or cloning the repository, enabling Pages, and optionally fronting the site with Cloudflare for CDN performance and custom domain support.

## Prerequisites

Before you begin, make sure you have the following:

* A GitHub account with permission to fork or write to the repository
* Git installed on your local machine
* (Optional) A Cloudflare account if you want to configure a custom domain or CDN

## Deployment steps

<Steps>
  <Step title="Fork or clone the repository">
    Start by getting a copy of the repository on your local machine. If you want to deploy your own version of the portfolio under your GitHub account, fork it first via the GitHub UI, then clone your fork. If you are contributing to the original, clone directly.

    ```bash theme={null}
    git clone https://github.com/Sumit-SC/Sumit-SC.github.io.git
    cd Sumit-SC.github.io
    ```

    After cloning, confirm that the remote is set correctly:

    ```bash theme={null}
    git remote -v
    ```
  </Step>

  <Step title="Check out the feature branch">
    The site is served from the `feature/cf-admin-editor-foundation` branch. Switch to it (it already exists in the remote) or create it if you are starting fresh:

    ```bash theme={null}
    git checkout feature/cf-admin-editor-foundation
    ```

    If the branch does not exist locally yet, Git will automatically track the remote branch. If you need to create it from scratch:

    ```bash theme={null}
    git checkout -b feature/cf-admin-editor-foundation
    git push -u origin feature/cf-admin-editor-foundation
    ```
  </Step>

  <Step title="Enable GitHub Pages in repository settings">
    In your GitHub repository, navigate to **Settings → Pages**. Under **Build and deployment**, set the source to **Deploy from a branch**, then select `feature/cf-admin-editor-foundation` as the branch and `/ (root)` as the folder. Click **Save**.

    GitHub will begin building and publishing the site. The first build typically completes within one to three minutes. Once it is live, GitHub displays the URL at the top of the Pages settings page.
  </Step>

  <Step title="Configure Cloudflare for custom domain and CDN (optional)">
    If you want to serve the site from a custom domain (e.g., `sumitsc.dev`) and benefit from Cloudflare's CDN:

    1. Add a `CNAME` file to the root of your repository branch containing only your custom domain:

       ```text theme={null}
       sumitsc.dev
       ```

    2. In your Cloudflare dashboard, add a `CNAME` DNS record pointing your domain to `sumit-sc.github.io`.

    3. Set the Cloudflare proxy status to **Proxied** (orange cloud) to enable CDN caching and DDoS protection.

    4. In GitHub Pages settings, enter your custom domain and enable **Enforce HTTPS**.

    <Tip>
      Using Cloudflare's proxied mode routes visitor traffic through Cloudflare's global edge network, reducing latency for international visitors and protecting your GitHub origin IP from direct exposure.
    </Tip>
  </Step>

  <Step title="Verify the site is live">
    After the GitHub Actions build completes, open your browser and navigate to:

    ```
    https://sumit-sc.github.io
    ```

    You should see the portfolio home page. If you configured a custom domain, verify that URL instead. Check that HTTPS is working and that all pages load correctly.

    <Note>
      GitHub Pages can take up to a few minutes to reflect new pushes. If you see old content immediately after pushing, wait two to three minutes and perform a hard refresh in your browser (Ctrl+Shift+R on Windows/Linux, Cmd+Shift+R on macOS) to bypass the browser cache.
    </Note>
  </Step>
</Steps>

## Updating the site

To publish changes, commit your edits to the `feature/cf-admin-editor-foundation` branch and push:

```bash theme={null}
git add .
git commit -m "Update project page content"
git push origin feature/cf-admin-editor-foundation
```

GitHub Pages detects the push and rebuilds automatically. You can monitor build progress under **Actions** in the GitHub repository.

## Related setup guides

<CardGroup cols={2}>
  <Card title="Comments setup" href="/setup/comments">
    Add Giscus GitHub Discussions-powered comments to your pages.
  </Card>

  <Card title="Troubleshooting" href="/setup/troubleshooting">
    Fix common issues with GitHub Pages, images, and Giscus.
  </Card>
</CardGroup>
