<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- PAGE settings -->
  <link rel="icon" href="favicon.ico">
  <title>Bliss ROMs</title>
  <meta name="description" content="Open Source OS for all devices, based on AOSP">
  <meta name="keywords" content="blissroms, bliss, os, x86, aosp, android, rom, teambliss">
  <!-- CSS dependencies -->
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
    integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
  <script src="https://kit.fontawesome.com/7b4ed0a31a.js" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"
    type="text/css">
  <link href="https://fonts.googleapis.com/css?family=VT323" rel="stylesheet" type="text/css">
  <link rel="stylesheet" href="neon.css">
  <!-- Script: Make my navbar transparent when the document is scrolled to top -->
  <script src="js/navbar-ontop.js"></script>

  <link rel="stylesheet" href="css/animations.css">
  <link rel="stylesheet" href="css/style.css">
  <link rel="stylesheet" href="css/table.css">
  <script data-ad-client="ca-pub-7639560510014441" async=""
    src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
</head>

<body class="">
  <!-- Navbar -->
  <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark" style="padding-right: 41px;">
    <div class="container pt-6">
      <a class="navbar-brand" href="#"><img src="images/BlissIcon_Smal_wl.png" width="50"
          class="d-inline-block align-top" alt=""></a>
      <div class="row">
        <div class="col-md-12"><a class="navbar-brand" href="#"><b><b>Bliss ROMs</b></b></a></div>
      </div>
      <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse"
        data-target="#navbar2SupportedContent" aria-controls="navbar2SupportedContent" aria-expanded="true"
        aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
      <div class="navbar-collapse text-center justify-content-end collapse show" id="navbar2SupportedContent">
        <ul class="navbar-nav">
          <li class="nav-item mx-2">
            <a class="nav-link" href="#features"><b><b>Features</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="#about"><b><b>About</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="#team"><b><b>Team</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="https://blisslabs.org" target="_blank"><b><b>Non Profit</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="blog.html"><b><b>Blog</b></b></a>
          </li>
          <li class="nav-item mx-2">
            <a class="nav-link" href="#gear"><b><b>Gear</b></b></a>
          </li>
        </ul>
        <a class="btn navbar-btn mx-2 btn-primary" href="#download"><b><b>Download</b></b></a>
      </div>
    </div>
  </nav>
  <!-- Cover -->
  <div class="section-fade-out pt-5 pb-5"
    style="background-image: url(&quot;https://i.imgur.com/BOGKaGy.jpg&quot;); background-position: center bottom;">
    <div class="container pt-5">
      <div class="row">
        <div class="col-md-5">
          <div class="col-md-12">
            <h1 class="display-3 mb-4">Bliss ROMs</h1>
            <p class="lead">Working together to bring you an Open Source OS, based on Android, that incorporates many
              customizations, options and added security features.&nbsp;<br><br>And it is available for...</p>
            <div class="d-inline-flex justify-content-center align-items-center mx-auto">
              <a href="#download"
                class="btn btn-lg btn-primary d-inline-flex justify-content-center align-items-center mx-auto">Download
                Now</a>
            </div>
          </div>
        </div>
        <div class="d-flex justify-content-center align-items-center flex-grow-1" align="center"
          style="max-height: 100%;max-width: 100%;vertical-align: middle;display: inline-flex;float: none; margin-top: -8%;">
          <div class="d-inline-flex justify-content-center align-items-center">
            <div class="animation d-inline-flex justify-content-center align-items-center" data-animation-step="2">
              <div class="device mt-5">
                <div class="screen-stand"></div>
                <div class="display">
                  <div class="slide1">
                    <div>Most Intel/x86 <br>
                      <em>PCs, Tablets &amp; Laptops</em>
                    </div>
                  </div>
                  <div class="slide2">
                    <div>Most Android <br>
                      <em>tablets</em>
                    </div>
                  </div>
                  <div class="slide3">
                    <div>Most<br>Android<br>
                      <em>phones</em>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <!-- Article style section -->
  <div class="section-fade-in py-5 bg-dark">
    <div class="container">
      <div class="row" id="about">
        <div
          class="col-md-6 order-2 order-md-1 animate-in-left d-flex flex-grow-1 align-items-center justify-content-center">
          <img class="img-fluid d-block mx-auto" src="images/1571976237838.png" style="" width="50%">
        </div>
        <div class="col-md-6 align-self-center order-1 order-md-2 my-3 text-md-left text-center">
          <h3 class="display-3">About Bliss</h3>
          <p class="my-4 body-font">We are a volunteer based non-profit organization that works to maintain various open
            source &amp; closed source development projects. We provide the inspiration, training and mentorship to help
            the&nbsp;dreams of those that join, become reality.<br><br>One of our main focuses is to provide a quality
            ROM/OS that can run on all your devices, preserving customizations and options by syncing across all
            platforms. We try to include all the features you can imagine, for just about any situation.<br><br>You will
            also find us regularly contributing to other projects as well because we believe that building our community
            through positive influence will go further than building an empire on selfish goals.</p>
          <a class="btn btn-outline-primary" href="bfor.html">Learn More About Us</a>
        </div>
      </div>
    </div>
  </div>
  <!-- Features -->
  <div class="text-center bg-primary py-5 px-5">
    <div class="container">
      <div class="d-flex justify-content-center align-items-center px-0 container-fluid mx-auto">
        <div class="row mx-auto d-flex align-items-center justify-content-center">
          <div class="col-md-12">
            <div class="row mx-auto">
              <div class="align-self-center col-lg-6 text-md-left text-center">
                <h3 class="display-3">Bliss Variants</h3>
                <p class="my-4 body-font">Bliss comes in a few variants. On top of our traditional device builds of
                  Bliss ROM, our GSI/Treble builds will work on most treble compatible devices (Android Pie+) And our
                  x86 variant (Bliss OS) is made to work with the Linux kernel, and supports booting with MBR/UEFI type
                  bootloaders. So just about any Windows/Linux PC or tablet released in the last 4 years. We are always
                  developing with usability in mind, and supporting more and more devices each week.&nbsp;<br></p>
                <a class="btn btn-dark" href="#download">Download</a>
              </div>
              <div class="align-self-center mt-5 col-lg-5 offset-1 animate-in-right">
                <img class="img-fluid d-block" src="images/bliss_surface.png">
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="py-5 bg-dark" id="features">
    <div class="container">
      <div class="row">
        <div class="col-12 text-center">
          <h3 class="display-3">Features</h3>
        </div>
      </div>
      <div class="row">
        <div class="align-self-center text-md-right text-center col-lg-4 col-md-6">
          <h4 class="text-primary"><b>Focus on design</b></h4>
          <p class="mb-5 text-white">We include many options for customization and theming throughout the OS</p>
          <h4 class="text-primary"><b>Customized settings</b></h4>
          <p class="mb-5 text-white">Choose settings depending on the criteria you value the most. With no limits.</p>
          <h4 class="text-primary"><b>Performance</b></h4>
          <p class="mb-5 text-white">Focused on speed and stability with tweaks to assist in the most demanding
            applications</p>
        </div>
        <div class="my-3 d-none d-lg-block animate-in-down col-md-4">
          <img class="img-fluid d-block" src="images/Phone_features_dark.png">
        </div>
        <div class="align-self-center text-md-left text-center col-lg-4 col-md-6">
          <h4 class="text-primary"><b>Battery-friendly</b></h4>
          <p class="mb-5 text-white">Extra options are provided to help tune battery consumption to the best levels</p>
          <h4 class="text-primary"><b>Added Security</b></h4>
          <p class="mb-5 text-white">Additional security options and features are found throughout the OS. And AOSP
            security updates are merged regularly.</p>
          <h4 class="text-primary"><b>Compatibility</b></h4>
          <p class="mb-5 text-white">We bring Bliss to every device we own. And our PC builds include extras for
            ARM/ARM64 app compatibility&nbsp;&nbsp;</p>
        </div>
      </div>
    </div>
  </div>
  <!-- Features -->
  <!-- Carousel reviews -->
  <div class="section bg-dark">
    <div class="container d-flex justify-content-center align-items-center flex-grow-1 mx-auto w-75 py-4">
      <div class="row">
        <div class="col-md-6 text-left mx-auto flex-center">
          <div>
            <h2 class="my-3 highlight_secondary team-header text-white no-wrap">We volunteer our time.</h2>
            <p class="mb-3 body-font">We are a 501(c3) nonprofit, run by people that donate their free time towards the
              project. We do our best to bring a quality OS to your device, while working a real job on the side in most
              cases. Please consider showing us we're on the right track by clicking the button below and making a small
              contribution towards our efforts.</p> <a
              href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24" target="_blank"
              class="btn btn-primary">Buy Us a Coffee</a>
          </div>
        </div>
        <div class="col-md-5 py-5 offset-1"><img
            class="img-fluid d-block d-flex align-items-center justify-content-center flex-grow-1 mx-auto animate-in-right"
            src="images/coffee-break.svg" width="300"></div>
      </div>
    </div>
  </div>
  <!-- Documentation section -->
  <div class="py-5 bg-light text-right" id="documentation">
    <div class="container">
      <div class="row">
        <div class="col-md-12" style="">
          <h3 class="display-3 text-truncate">Docs &amp; Issue Reporting</h3>
          <div class="row">
            <div class="col-md-12" style="">
              <h3>Looking for our documentation?</h3>
              <p>We have full guides, troubleshooting tips, and more.&nbsp;</p>
              <div class="col-md-12">
                <a class="btn btn-secondary text-right mb-3 mx-2" href="https://wiki.blissroms.com" target="_blank">Team
                  Bliss Wiki</a>
                <a class="btn btn-secondary mb-3 mx-2" href="https://blog.blissroms.com" target="_blank">Development
                  blog</a>
              </div>
              <h3>Like to report a bug?</h3>
              <p>We prefer to keep all our bug reports in a centralized place. Please use the link below to report any
                bugs using the Issues tab for the repo needed.</p>
              <div class="mx-auto col-md-12">
                <a class="btn btn-secondary mb-3 mx-2" href="https://github.com/BlissRoms"
                  target="_blank">BlissRoms&nbsp;</a><a class="btn btn-secondary mb-3 mx-2"
                  href="https://github.com/BlissRoms-Devices" target="_blank">BlissRoms Devices</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <!-- Developer section -->
  <div class="download-section bg-light mb-0" id="developer">
    <div class="py-5 bg-dark" id="documentation">
      <div class="container">
        <div class="row">
          <div class="col-md-12" style="">
            <h3 class="display-3 text-truncate">Developers</h3>
            <div class="row">
              <div class="col-md-3" style=""><img class="img-fluid d-block" src="images/github-logo.png"></div>
              <div class="col-md-7" style="">
                <h3>Want to help contribute towards our open source projects?</h3>
                <p>Documentation for BlissRoms and Bliss OS can be found on our wiki, while our development update posts
                  can be found under our blog. Please read the documentation before asking a question on our Telegram
                  development chats!<br><br>To get a glimpse on usage statistics of Bliss, please visit our statistics
                  page.</p>
                <p>If you want to contribute code, download the source from our GitHub organization and submit commits
                  through our Gerrit review system!</p>
              </div>
              <div class="col-md-2 mx-auto" style="">
                <a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms" target="_blank">BlissRoms
                  GitHub</a><a class="btn mb-3 btn-secondary" href="https://github.com/BlissRoms-Devices"
                  target="_blank">BlissRoms Devices GitHub</a>
                <a class="btn mb-3 btn-secondary" href="https://review.blissroms.com" target="_blank">BlissRoms
                  Gerrit</a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <!-- Downloads Section -->
    <div class="container py-5" id="download">
      <div class="row">
        <div class="col-md-6 order-2 order-md-1"> <img class="img-fluid d-block mx-auto" src="images/1571976296909.png"
            style="" width="50%"> </div>
        <div class="px-md-5 col-md-6 d-flex flex-column align-items-start justify-content-center order-1 order-md-2">
          <h3 class="display-3">Downloads</h3>
          <img
            src="https://img.shields.io/sourceforge/dm/blissroms.svg?style=for-the-badge&amp;logo=appveyor&amp;colorB=blue"
            max-width="160px" width="50%">
          <p class="mb-3">
          </p>
          <div id="demo">
            <a class="btn btn-primary mx-1 mb-3" href="https://downloads.blissroms.org">Go to Downloads</a>
            <hr width="100%" size="8" align="left">
            <h2>Looking for our PC builds?</h2>
            <p>(Bliss OS (x86) &amp; Android-Generic builds)</p>
            <br><br>
            <a class="btn mb-3 btn-dark" target="BLANK" href="https://blissos.org">Go to the Bliss OS website</a>
            <a class="btn mb-3 btn-dark" target="BLANK" href="https://android-generic.github.io">Go to the
              Android-Generic website</a>
            <p></p>
            <hr width="100%" size="8" align="left">
            <p class="lead text-dark">
              <label></label>
            </p>
            <h2>Legacy Downloads</h2>
            <br>
            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Q/">Android 10 (Q) device
              builds</a><br>
            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/Pie/">Android 9 (Pie) device
              builds</a><br>
            <a class="btn btn-link" href="https://sourceforge.net/projects/blissroms/files/GSI/">Android 9 (Pie) GSI
              builds</a>
            <p></p>
          </div>
        </div>
      </div>
    </div>
    <div class="py-5 bg-light" id="team">
      <div class="container">
        <div class="row">
          <div class="col-md-12">
            <div class="row">
              <div class="mx-auto col-md-12 text-center">
                <h3 class="display-3">The Team</h3>
              </div>
            </div>
            <ul class="nav nav-tabs nav-justified">
              <li class="nav-item mx-auto font-weight-bold"> <a class="active nav-link" href="" data-toggle="tab"
                  data-target="#tabone">Core Members</a> </li>
              <li class="nav-item mx-auto font-weight-bold"> <a href="" class="nav-link" data-toggle="tab"
                  data-target="#tabtwo">Maintainers</a> </li>
            </ul>
            <div class="tab-content mt-2">
              <div class="tab-pane fade show active" id="tabone" role="tabpanel">
                <section id="content" class="team_content"></section>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
                <script>
                  $.ajax({
                    type: "GET",
                    url: "https://api.blissroms.org/api/teambliss", // TeamBliss JSON
                    success: function (data) {
                      var newContent = ''; // Variable to hold HTML
                      for (var i = 0; i < data.length; i++) { // Loop through object
                        newContent += '<div id="event" class="team_item">';
                        newContent += '<img class="image crop" src="' + data[i].avatar + '" ';
                        newContent += 'alt="' + data[i].member + '" />';
                        newContent += '<h3><b>' + data[i].member + '</b></h3>';
                        newContent += '<p class="team_data_text font-weight-bold">' + data[i].designation + '</p>';
                        // newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].email + '&quot;</i></p>';
                        newContent += '</div>';
                      }
                      // Update the page with the new content
                      document.getElementById('content').innerHTML = newContent;
                    }
                  })
                </script>
              </div>
              <div class="tab-pane fade" id="tabtwo" role="tabpanel">
                <section id="content2" class="team_content"></section>
                <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
                <script>
                  $.ajax({
                    type: "GET",
                    url: "https://blissapi.blissroms.com/blissinfra/public/allmaintainers", // TeamBliss JSON
                    success: function (data) {
                      var newContent = ''; // Variable to hold HTML
                      for (var i = 0; i < data.length; i++) { // Loop through object
                        newContent += '<div id="event" class="team_item">';
                        newContent += '<img class="image crop" src="' + data[i].image + '" ';
                        newContent += 'alt="' + data[i].mname + '" />';
                        newContent += '<h3><b>' + data[i].mname + '</b></h3>';
                        newContent += '<p class="team_data_text font-weight-bold">' + data[i].device + '</p>';
                        newContent += '<p class="team_data_text font-weight-bold"><i>&quot;' + data[i].codename + '&quot;</i></p>';
                        newContent += '</div>';
                      }
                      // Update the page with the new content
                      document.getElementById('content2').innerHTML = newContent;
                    }
                  })
                </script>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <div class="py-5 bg-primary" id="gear">
      <div class="container">
        <div class="row">
          <div class="col-md-12">
            <h1><b>A Little Bliss Gear</b></h1>
            <p class="lead mb-4"><b>Bliss Family of ROMs has put together a Teespring store as a start to bring some
                stylish merchandise to our users, and help raise money for our cause. Check out a few of our selections
                below and follow the link to our store for more</b></p>
          </div>
        </div>
        <div class="row d-flex justify-content-between">
          <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" width="1500" src="images/560.jpg">
            <h4 class="my-3"> <b>T-Shirts</b></h4>
            <p class="body-font"><b>Be the first one on your block to sport Bliss on your back. Various sizes and colors
                available.</b></p>
          </div>
          <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" src="images/560 (1).jpg" width="1500">
            <h4 class="my-3"> <b>Hoodies</b></h4>
            <p class="body-font"><b>Keep warm in style. Wr have hoodies and sweatshirts available. Various sizes and
                colors options too.</b></p>
          </div>
          <div class="col-md-4 col-lg-3 p-4"> <img class="img-fluid d-block" src="images/560 (2).jpg" width="1500">
            <h4 class="my-3"> <b>Tank Tops</b></h4>
            <p class="body-font"><b>It's all about the Bliss when you are wearing one of our tank tops. Various sizes
                and colors available.</b></p>
          </div>
        </div>
        <div class="row">
          <div class="col-md-12">
            <div class="card">
              <div class="card-body">
                <h4 class="card-title"><b>Want More?</b></h4>
                <p class="card-text body-font">We are constantly updating our selection of apparel, adding more cool
                  designs and options as we go. So make sure you check back for any updates.&nbsp;</p> <a
                  class="btn btn-primary" href="https://teespring.com/stores/bliss-family-store-2">Visit Our Teespring
                  Store&nbsp;<i class="fa fa-shopping-cart fa-fw"></i></a>
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>
    <!-- START OF BLISSLABS -->
    <div class="py-5 text-light cover" style="background-color: #343a40;">
      <div class="container" style="max-width: 100%;">
        <div class="row">
          <div class="col-md-12">
            <div class="row">
              <div
                class="d-flex flex-column justify-content-center p-3 col-md-8 offset-lg-1 align-items-start order-1 order-md-1">
                <h1 class="mb-3">A BlissLabs Project</h1>
                <p class="lead">We are part of a larger community of open-source projects called BlissLabs. Explore more
                  about the other BlissLabs projects below:<br></p>
                <a class="btn btn-primary" target="_blank" href="https://blisslabs.org">Learn More</a>
              </div>
              <div class="col-md-4 col-lg-3 order-2 order-md-2 p-0"> <img
                  class="img-fluid d-block justify-content-between align-items-center"
                  src="https://blisslabs.org/assets/images/bliss_labs_logo.svg" style="width: 20vw;"> </div>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-md-12">
            <div class="carousel slide" data-ride="carousel" id="carousel">
              <div class="carousel-inner">
                <div id="carousel-slider"> </div>
              </div>
              <a class="carousel-control-prev" href="#carousel" role="button" data-slide="prev">
                <span class="carousel-control-prev-icon"></span>
                <span class="sr-only">Previous</span>
              </a>
              <a class="carousel-control-next" href="#carousel" role="button" data-slide="next">
                <span class="carousel-control-next-icon"></span>
                <span class="sr-only">Next</span>
              </a>
            </div>
            <!---------------->
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
            <script>
              $.ajax({
                type: "GET",
                url: "https://api.blissroms.org/api/allprojects",
                contentType: "application/json",
                datatype: "json",
                data: {},
                success: function (data) {
                  var newContent = ''; // Variable to hold HTML
                  for (var i = 0; i < data.length; i++) { // Loop through object
                    if (data[i].project != null) {
                      if (i == 0) {
                        newContent += '<div class="carousel-item active" style="padding-block: 10vh;" >';
                      } else {
                        newContent += '<div class="carousel-item" >';
                      }
                      newContent += '<img class="d-block img-fluid" src="' + data[i].project_avatar + '" style="margin-left: 10%; height: 35vh;"';
                      newContent += 'alt="' + data[i].project + ' " style="padding-top: 1.5rem;"/>';
                      newContent += '<div class="carousel-caption" style="background: linear-gradient(#343a40 10%, #343a40 100%)!important; padding-top: 50vw; width: 50vw; margin-left: 30vw; bottom: 0px ">';
                    < !--newContent += '<div class="item-details">'; -->
                        newContent += '<h3 class="zxc" ><b style="font-size: xx-large;">' + data[i].project + '</b></h3>';
                      newContent += '<h5 class="zxc" >Project Lead: ' + data[i].project_lead + '</h5>';
                      newContent += '<p class="card__text zxc" style=" margin-right: 1.7rem; margin-left: 1.7rem; ">' + data[i].project_description + '</p>';
                      if (data[i].project_github != null) {
                        newContent += '<a href="' + data[i].project_github + '" target="_blank"><i class="fab fa fa-git p-2" style="font-size: 300%;"></i></a>';
                      }
                      if (data[i].project_website != null) {
                        newContent += '<a href="' + data[i].project_website + '" target="_blank"><i class="fab fa p-2 fa-globe" style="font-size: 300%;"></i></a>';
                      }
                    < !--newContent += '</div>'; -->
                        newContent += '</div>';
                      newContent += '</div>';
                    } else {
                      newContent = 'NONE';
                    }
                  }
                  // Update the page with the new content
                  document.getElementById('carousel-slider').innerHTML = newContent;
                },
                error: function (jqXHR, status, err) {
                  newContent = 'ERROR: NONE';
                  document.getElementById('carousel-slider').innerHTML = newContent;
                  alert("Status: " + textStatus);
                  alert("Error: " + errorThrown);
                }
              })
            </script>
            <!---------------->
          </div>
        </div>
      </div>
    </div>
    <!-- END OF BLISSLABS -->
    <div class="py-3 bg-dark">
      <div class="container">
        <div class="row">
          <div class="col-lg-3 col-6 p-3">
            <h5> <b>Socials</b></h5>
            <ul class="list-unstyled text-primary">
              <li class="text-primary"> <a href="https://t.me/Team_Bliss_Community">BlissROMs Telegram</a> </li>
              <li> <a href="https://t.me/blissx86">Bliss OS Telegram</a> </li>
              <li> <a href="https://www.facebook.com/BlissFamilyOfROMs/">Bliss Facebook</a> </li>
              <li> <a href="https://twitter.com/Bliss_Roms">Bliss Twitter</a> </li>
              <li> <a href="https://www.linkedin.com/company/stayblissful">Bliss LinkedIn</a> </li>
              <li> <a href="https://discord.gg/wwc4Aua4fp">Bliss Discord</a> </li>
            </ul>
          </div>
          <div class="col-lg-3 col-6 p-3">
            <h5> <b>Sources</b></h5>
            <ul class="list-unstyled">
              <li> <a href="https://review.blissroms.com">BlissROMs Gerrit Review</a> </li>
              <li> <a href="https://review-x86.blissroms.com">Bliss OS (x86) Gerrit Review</a> </li>
              <li> <a href="https://github.com/BlissRoms">BlissROMs GitHub</a> </li>
              <li> <a href="https://github.com/BlissRoms-Devices">BlissROMs-Devices GitHub</a> </li>
              <li> <a href="https://github.com/BlissRoms-x86">Bliss OS GitHub</a> </li>
              <li> <a href="https://github.com/BlissRoms-pine64">BlissROMs-PINE64 GitHub</a> </li>
            </ul>
          </div>
          <div class="col-lg-3 col-6 p-3">
            <h5>Subreddits</h5>
            <ul class="list-unstyled">
              <li> <a href="https://www.reddit.com/r/BlissRoms">BlissROMs</a> </li>
              <li> <a href="https://www.reddit.com/r/BlissOS">Bliss OS</a> </li>
              <li> <a href="https://www.reddit.com/r/TeamBliss">TeamBliss</a> </li>
            </ul>
          </div>
          <div class="col-lg-3 col-md-3 p-3">
            <h5> <b>Follow us</b> </h5>
            <div class="row">
              <div class="col-md-12 d-flex align-items-center my-2 justify-content-center"> <a
                  href="https://www.facebook.com/BlissFamilyOfROMs/" class="">
                  <i class="d-block fa fa-facebook-official text-muted mr-2 fa-2x"></i>
                </a> <a href="https://www.instagram.com/blissroms/">
                  <i class="d-block fa fa-instagram text-muted mx-2 fa-2x"></i>
                </a><a href="https://github.com/BlissRoms">
                  <i class="d-block fa fa-github text-muted text-muted mx-2 fa-2x"></i>
                </a><a href="https://www.linkedin.com/company/stayblissful">
                  <i class="d-block fa fa-linkedin text-muted text-muted mx-2 fa-2x"></i>
                </a> <a href="https://www.reddit.com/r/BlissRoms">
                  <i class="d-block fa fa-reddit text-muted mx-2 fa-2x"></i>
                </a> <a href="https://twitter.com/Bliss_Roms">
                  <i class="d-block fa fa-twitter text-muted ml-2 fa-2x"></i>
                </a> </div>
            </div>
          </div>
        </div>
        <div class="row">
          <div class="col-md-12 text-center">
            <p class="mb-0 mt-2">© 2021 BlissLabs. All rights reserved</p>
          </div>
        </div>
      </div>
    </div>
    <!-- Footer -->
    <!-- JavaScript dependencies -->
    <script src="js/mainani.js" type="text/javascript"></script>
    <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
      integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
      crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"
      integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"
      crossorigin="anonymous"></script>
    <!-- Script: Smooth scrolling between anchors in the same page -->
    <script src="js/smooth-scroll.js"></script>
    <script src="js/conditionize.js"></script>
  </div>
</body>

</html>