<!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>
  <!-- Script: Animated entrance -->
  <script src="js/animate-in.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>
  <!-- Download 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>
  <div class="download-section bg-light mb-0" id="download">
    <!-- End Downloads -->
    <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>
    <div class="container py-5">
      <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">
            <span>
              <div class="container-fluid text-center bg-warning py-2">
                <div class="row">
                  <div class="mx-auto col-md-12">
                    <h1 class="mt-2"><b>Coming Soon</b></h1>
                    <p>Our Android 11 builds are coming very soon; stay tuned to our blog for more updates!</p>
                  </div>
                </div>
              </div>
            </span>
            <h3>Please consider donating to support our project. Thanks!</h3>
            <br>
            <a class="btn btn-primary mx-1 mb-3" href="https://www.paypal.com/donate?hosted_button_id=J5SLZ7MQNCT24" target="_blank">Donate</a>
            <a class="btn mb-3 btn-link disabled" href="https://downloads.blissroms.com">Go To Downloads</a>
            <hr width="100%" size="8" align="left">
            <p class="lead text-dark">
              <label></label></p>
            <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="mx-auto col-md-8">
            <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>
            </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>
                $.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">';
                        } else {
                        newContent += '<div class="carousel-item">';
                        }
                        newContent += '<img class="d-block img-fluid" src="' + data[i].project_avatar + '" style="max-width: auto; height: 350px;"';
                        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: 120px; margin-left: 350px; ">';
                        <!-- 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>
            </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">© 2019 Bliss Family of ROMs. 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>
