<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Apache Usergrid — the BaaS not made for Hipsters</title>
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
    <meta name="keywords" content="Apache Usergrid, Usergrid, BaaS, Backend-as-a-Service">
    <meta name="description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
    <meta property="og:title" content="Apache Usergrid" />
    <meta property="og:description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
    <!-- Loading Typekit -->
    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
    <!-- Loading Bootstrap -->
    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
    <link href="/css/usergrid-site.css" rel="stylesheet" type='text/css'>
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>

    

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
    <!--[if lt IE 9]>
      <script src="js/html5shiv.js"></script>
      <script src="js/respond.min.js"></script>
    <![endif]-->
</head>
<body>

    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav " role="banner">
    <div class="container">
        <div class="navbar-header">
            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <a href="/" class="navbar-brand">
                <img id="home-logo" src="/img/apache_usergrid_logo_white_small.png" />
            </a>
        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
            <ul class="nav navbar-nav navbar-right">
                <li class=""><a href="/community/"><span class="icns icon-group"></span></a></li>
                <li><a href="/docs" target="_blank"><span class="icns icon-book"></span></a></li>
                <li><a href="http://github.com/apache/usergrid" target="_blank"><span class="icns icon-github-sign"></span></a></li>
                <!--<li><a href="https://trello.com/b/exQmJIOn/usergrid" target="_blank"><span class="icns icon-trello"></span></a></li>-->
                <li><a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=23&view=planning&selectedIssue=USERGRID-362&epics=visible" 
                       target="_blank"><span class="icns icon-bug"></span></a></li>
                <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank"><span class="icns icon-stackexchange"></span></a></li>
                <li><a href="/community/#live"><span class="icns icon-comments"></span></a></li>
                <!--<li><a href="https://groups.google.com/forum/#!forum/usergrid" target="_blank"><span class="icns icon-envelope"></span></a></li>-->
                <li><a href="https://twitter.com/usergrid" target="_blank"><span class="icns icon-twitter"></span></a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/usergrid/" target="_blank"><span class="icns icon-wiki"></span></a></li>
                <li><a href="/releases/"><span class="icns icon-releases"></span></a></li>
            </ul>
        </nav>
    </div>
    </header>





<section class="bf-masthead" id="content" role="main">
    <div class="bf-masthead-bg">
        <div class="container">
            <img class="logo-title img-responsive hidden-xs" src="img/apache_usergrid_logo_white.png" />
            <div class="text-container">
                <h2 class="tagline">The BaaS Framework <em>you</em> run</h2>
                <p class="description">Build Apps not Servers! Whether you need to support one App or a hundred, Usergrid is <em>your</em> backend. As easy as a LAMP stack, but built for mobile.
                  Get Apps to production in record time and stop wasting cycles writing server-side code.<br/><br/>
                  Complete SDKs for iOS, Android, HTML5/JS, Node.js, Ruby, Java, .NET, and PHP. Open source since 2011.<br/><br/></p>
            </div>

            <div class="btn-wrapper">
                <iframe class="social-btn" src="/static/github-btn.html?user=apache&repo=usergrid&type=watch&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="85" height="30"></iframe>
                <iframe class="social-btn" src="/static/github-btn.html?user=apache&repo=usergrid&type=fork&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="85" height="30"></iframe>
                <!--<p><span class="or">or</span> <a href="#">Download Usergrid</a></p>-->
            </div>

        </div>
    </div>
</section>

<section class="bf-features">
    <div class="container">
        <div class="row">
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-user"></i></div>
                <h3>Users</h3>
                <p>Sign up users, log in, reset passwords and more, in just one API call. You can put users in groups, assign roles or permissions, let users follow each other and access everything via OAuth 2.0, without writing a single line of server code.</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-hdd"></i></div>
                <h3>Data</h3>
                <p>If you can express it in JSON, we can store it! Underneath everything is stored in a standard Cassandra instance, but we’ve added the ability to retrieve data via an SQL-like syntax, manage collections and connections between entities.</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i aria-hidden="true" class="icon-picture"></i></div>
                <h3>Files</h3>
                <p>Our asset storage can handle anything from text files to videos of several terrabytes, with automatic content-detection and full URL access control. In the back, everything goes Amazon S3 or other preferred cloud file store.</p>
            </div>
        </div>
        <div class="row">
            <div class="col-md-4">
                <div class="bf-icon-wrap" style="font-size:40px; vertical-align: 15px;"><i aria-hidden="true" class="icon-apple"></i> <i aria-hidden="true" class="icon-android"></i></div>
                <h3>SDKs</h3>
                <p>We have full SDKs for <a href="https://github.com/apache/usergrid/tree/master/sdks/ios">iOS</a>, <a href="https://github.com/apache/usergrid/tree/master/sdks/android">Android</a>, and <a href="https://github.com/apache/usergrid/tree/master/sdks/html5-javascript">HTML5/JS</a> but also <a href="https://github.com/apache/usergrid/tree/master/sdks/nodejs">node.js</a>, <a href="https://github.com/apache/usergrid/tree/master/sdks/ruby-on-rails">Ruby on Rails</a>, pure <a href="https://github.com/apache/usergrid/tree/master/sdks/ruby">pure Ruby</a>, server-side <a href="https://github.com/apache/usergrid/tree/master/sdks/java">Java</a>, <a href="https://github.com/apache/usergrid/tree/master/sdks/dotnet">.NET / Windows</a> and <a href="https://github.com/apache/usergrid/tree/master/sdks/php">PHP</a>!</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><span style="font-size:60px" aria-hidden="true" class="icon-road"></span></div>
                <h3>Java-based</h3>
                <p>We build on standard Java components, such as Jersey, Jackson, Apache Cassandra and Lucene. That means you get operational predictability, all the benefits of the JVM, and easy extensibility.</p>
            </div>
            <div class="col-md-4">
                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-lock"></i></div>
                <h3>Trusted</h3>
                <p>Usergrid is deployed by <a href="https://baas.io/">Korea Telecom</a>, <a href="http://globo.com">Globo</a>, <a href="http://apigee.com">Apigee</a> and many Fortune 500 companies. Our biggest deployments have hundreds of nodes and handle millions of users.</p>
            </div>
        </div>
    </div>

    </div>
</section>

<section class="bf-questions">
    <div class="container">
            <div class="col-md-12 text-center cta">
                Interested? You can <a href="https://github.com/apache/usergrid/blob/master/stack#requirements" target="_blank" class="btn btn-inverse btn-lg">Try it on your Machine Now</a> <span class="avoidwrap">or&nbsp;<a href="/community/" class="btn btn-inverse btn-lg">Ask a Question on the Lists or at an Event Near You</a></span>
            </div>
    </div>
</section

<section class="bf-news">
    <div class="container">

        <div class="row">
            <div class="col-md-12 text-left">
                <h2>About the Project</h2>
                <p>Usergrid is an open-source Backend-as-a-Service (“BaaS” or “mBaaS”) composed of an integrated distributed NoSQL database, application layer and client tier with SDKs for developers looking to rapidly build web and/or mobile applications. It provides elementary services (user registration & management, data storage, file storage, queues) and retrieval features (full text search, geolocation search, joins) to power common app features.</p>

                <p>It is a multi-tenant system designed for deployment to public cloud environments (such as Amazon Web Services, Rackspace, etc.) or to run on traditional server infrastructures so that anyone can run their own private BaaS deployment.</p>

                <p>For architects and back-end teams, it aims to provide a distributed, easily extendable, operationally predictable and highly scalable solution. For front-end developers, it aims to simplify the development process by enabling them to rapidly build and operate mobile and web applications without requiring backend expertise.</p>
            </div>
            <!--
            <div class="col-md-4 text-left">
                <h2>Recent Releases</h2>


            </div>
            -->
        </div>

    </div>
</section>




<footer class="bf-footer" role="contentinfo">
    <div class="container">
        <div class="row">
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="/">Home</a></li>
                    <li class="nav-header"><a href="/community/">Community</a></li>
                        <li><a href="/community/#events">Events</a></li>
                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
                        <li><a href="/community/#deployments">Deployments</a></li>
                        <li><a href="/community/#committers">Commiters</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header"><a href="https://github.com/apache/usergrid/" target="_blank">Code</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/stack" target="_blank">Server Stack</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/portal" target="_blank">Admin Portal</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/ugc" target="_blank">ugc command line</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/ios" target="_blank">iOS SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/android" target="_blank">Android SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/html5-javascript" target="_blank">HTML5/JS SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/nodejs" target="_blank">node.js module</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/ruby-on-rails" target="_blank">Ruby on Rails gem</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/ruby" target="_blank">Ruby gem</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/php" target="_blank">PHP SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/java" target="_blank">Java SDK</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/sdks/dotnet" target="_blank">.NET / Windows SDK</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Resources</li>
                    <li><a href="http://github.com/apache/usergrid" target="_blank">GitHub Code</a></li>
                    <li><a href="docs" target="_blank">Docs</a></li>
                    <li><a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=23&view=planning&selectedIssue=USERGRID-362&epics=visible" target="_blank">JIRA Bug Tracker</a></li>
                    <li><a href="http://stackoverflow.com/search?q=usergrid" target="_blank">StackOverflow</a></li>
                    <li><a href="/community/#live">Live Chat</a></li>
                    <li><a href="https://twitter.com/usergrid" target="_blank">Twitter</a></li>
                    <li><a href="https://github.com/apache/usergrid/blob/master/stack#requirements" target="_blank">Getting Started</a></li>
                    <li><a href="https://cwiki.apache.org/confluence/display/usergrid/GitHub+Based+Contribution+Workflow" target="_blank">Contribution Guidelines</a></li>
                </ul>
            </div>
            <div class="col-md-2">
                <ul class="nav nav-list">
                    <li class="nav-header">Apache</li>
                    <li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
                    <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
                    <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
                    <li><a href="http://www.apache.org/security/">Security</a></li>
                    <li><a href="http://www.apache.org/" target="_blank">Apache Foundation</a></li>
                </ul>
            </div>
            <div class="col-md-4">
                <a class="twitter-timeline" href="https://twitter.com/search?q=%23usergrid" data-widget-id="401499136807038976"  data-related="usergrid" height="400px" style="overflow:hidden">Tweets about "usergrid"</a>
                <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
            </div> 
        <!--
            <div class="col-md-4">
                <div class="input-group form-search">
                    <input type="text" class="form-control search-query">
                    <span class="input-group-btn">
                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
                    </span>
                </div>
            </div> -->
        </div> 
        <div class="row">
            <div id="copyright">
                <p>Copyright © The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
                Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
                <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> .</p>
            </div>
        </div>
    </div>
</footer>

<script type="text/javascript" src="/js/head.js"></script>
<script type="text/javascript">
    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
</script>
<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-45815079-1', 'apache.org');
  ga('send', 'pageview');

</script>



</body>
</html>
