-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.html
47 lines (46 loc) · 14.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<!doctype html><html ng-app="dpdApp"><head><title>Deployd</title><meta name="viewport" content="width=1280, maximum-scale=1"><link href="http://fonts.googleapis.com/css?family=Bitter:400,700,400italic" rel="stylesheet" type="text/css"><link href="all.css" rel="stylesheet" type="text/css"></head><body class="index"><div class="navbar navbar-fixed-top"><div class="navbar-inner"><div class="container"><a class="brand" href=""><img src="img/logo-text.png"></a><div class="nav-collapse"><ul class="nav"><li><a href="//docs.deployd.com" target="_blank">docs <i class="icon-external-link"></i></a></li><li><a href="https://groups.google.com/forum/?fromgroups#!forum/deployd-users" target="_blank">community <i class="icon-external-link"></i></a></li><li><a href="https://gitter.im/deployd/deployd" target="_blank">chat <i class="icon-external-link"></i></a></li></ul></div><div id="social" class="nav-collapse pull-left"><ul class="nav"><li><a data-text="Deployd Platform (@deploydapp) - The simplest way to build APIs." data-url="http://www.deployd.com" href="https://twitter.com/share" class="twitter-share-button" data-lang="en"></a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script></li></ul></div></div></div></div><div class="container"><div class="row-fluid"><div id="intro" class="span12"><h1>The simplest way to build an API.</h1></div></div><div class="row-fluid hero"><div class="supporting"><h2>An open source platform</h2><p>Design, build, and scale APIs for web and mobile apps in minutes instead of days.</p></div><div class="span demo"><iframe width="640" height="360" src="//www.youtube.com/embed/I_Jq1BVj6D0" frameborder="0" allowfullscreen=""></iframe></div></div><div class="row-fluid home-install-row"><div class="download span7"><div><span><a href="https://github.com/deployd/deployd#install-from-npm" class="btn-primary btn btn-large">Install deployd</a> <span class="install-version"><a href="https://www.npmjs.com/package/deployd"><img src="https://img.shields.io/npm/v/deployd.svg?style=flat-square"></a></span></span></div></div><div class="project-social span5"><a href="https://twitter.com/deploydapp" class="twitter-follow-button" data-show-count="false">Follow @deploydapp</a><script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script> <iframe width="100" height="20" src="http://ghbtns.com/github-btn.html?user=deployd&repo=deployd&type=watch&count=true" frameborder="0" scrolling="0" allowtransparency="true"></iframe> <iframe width="95" height="20" src="http://ghbtns.com/github-btn.html?user=deployd&repo=deployd&type=fork&count=true" frameborder="0" scrolling="0" allowtransparency="true"></iframe></div></div></div><div class="container-fluid easy-as"><div class="row"><div class="span12"><h2>As easy as 1, 2... well, you get the idea.</h2></div></div><section class="row"><div class="span3"><img src="img/boilerplate-graphic.png" alt="Boilerplate illustration."><h3>1. No boilerplate</h3><p>With one command, your API is up and running. It's an empty canvas waiting for you to add Resources. No boilerplate code necessary.</p></div><div class="span3"><img src="img/resources-graphic.png" alt="Resources illustration."><h3>2. Resources</h3><p>Deployd APIs are built of plug-and-play resources, such as <a href="http://docs.deployd.com/docs/collections/creating-collections.html">Collection</a>, which can easily be added and defined through the deployd dashboard.</p></div><div class="span3"><img src="img/dashboard-graphic.png" alt="Dashboard illustration."><h3>3. Dashboard</h3><p>Add and manage your API's resources through an intuitive web-based dashboard.</p></div><div class="span3"><img src="img/1-step-deploy.png" alt="Deployment illustration."><h3>4. 1-step deploy</h3><p>When it's time to deploy, easily deploy it yourself anywhere that can host a Node.js app and MongoDB.</p></div></section></div><div class="container"><section class="home-features"><div class="row"><div class="span4"><div class="well"><img src="img/bucket/modular.png" class="bucket-graphic" alt="Building blocks."><h3>Flexibility through modularity</h3><p>Deployd consists of a simple core library, with a modular API for extending your application. Thanks to deployd's modular architecture, it's easy to:</p><ul><li>Quickly add custom client-facing Resources</li><li>Integrate third-party services or APIs into your app</li><li>Use any of the **17,000+** [node modules](http://npmjs.org) to extend your API</li></ul><p>Deployd's simple Resource distribution feature makes it even easier to add modules others have developed to your own app. (Currently in-development)</p></div><span class="clearfix tweet"><i class="icon-twitter"></i><p>Excellent work guys! Deployd is really exciting. You just removed 80% of the friction of developing a new app. Awesome.</p><a target="_blank" href="https://twitter.com/SonicCoder/status/238448287345176577">@SonicCoder</a></span><div class="well"><img src="img/bucket/graph.png" class="bucket-graphic" alt="Graph graphic."><h3>Easy Graph Data</h3><p>Collections of objects are nice, but worthwhile data is rarely one-dimensional. Relating and embedding objects in deployd is easy, and can be done with JavaScript inside of Collection events.</p><p>This event script:</p><pre class="prettyprint lang-javascript"><code>//In GET event for /myposts/id
var post = this;
dpd.comments.get({postId: this.id},
function(comments){
post.comments = comments;
})</code></pre><p>Generates this JSON output:</p><pre class="prettyprint lang-javascript"><code> //GET /myposts/abc123
{
id: "abc123",
title: "My blog article.",
author: "Jeff Cross",
content: "This blog article",
created: 1330671600000,
comments: [
{
commentor: "Ritchie Martori",
created: 1330671600001,
text: "Insightful.",
postId: "abc123"
}
]
}</code></pre></div></div><div class="span4"><div class="well"><img src="img/bucket/polling.png" class="bucket-graphic" alt="Death."><h3>Death to polling</h3><p>Keep all of your client applications in sync and avoid needless refreshes with deployd's realtime capabilities. It's easy to listen for and respond to changes in your app, whether using the dpd.js library or another client that can support websockets.</p><pre class="prettyprint lang-javascript"><code>// Listen for new posts
dpd.on('postCreated', function(post) {
console.log(post);
});</code></pre><p>With deployd's rich Events model, it's easy to validate, secure, and scope realtime messages to specific users or groups. <a href="http://docs.deployd.com/docs/collections/adding-logic.html">See docs</a>.</p></div><div class="well"><img src="img/bucket/validation.png" class="bucket-graphic" alt="Check."><h3>Flexible validation</h3><p>Validating requests to your API couldn't be simpler. Just write simple JavaScript logic inside of Events to make sure the user is the proper role, and their request is valid.</p><pre class="prettyprint lang-javascript"><code>// Example: On Post
// Don't allow non-admins to create items
if (!me.admin) {
cancel("You can't do that!", 401);
}</code></pre><a href="http://docs.deployd.com/docs/collections/adding-logic.html">See full Events documentation</a></div><div class="well"><img src="img/bucket/user.png" class="bucket-graphic" alt="Out of the box."><h3>Out of the box user management</h3><p>With deployd's included Users Collection, user signup and authentication...just works. It's also totally extensible. Add custom properties and roles to your users, and write custom Event scripts to control access to users of your app.</p><pre class="prettyprint lang-javascript"><code>//Create a user
dpd.users.post({
username: "jeffbcross",
password: "secret"
}, onCreateUser);</code></pre><pre class="prettyprint lang-javascript"><code>//Login
dpd.users.login({
username: "jeffbcross",
password: "secret"
}, onLogin);</code></pre><a href="http://docs.deployd.com/docs/users/creating-user-collections.html">See User Collection Docs</a></div></div><div class="span4"><div class="well"><img src="img/bucket/javascript.png" class="bucket-graphic" alt="JS."><h3>JavaScript throughout</h3><ol><li>Deployd is built on **Node.js** and **MongoDB**</li><li>Custom server-side modules built with JavaScript</li><li>Unified dpd.js client/server library</li><li>Realtime capability through Websockets</li><li>All data stored as JSON</li></ol><p>*All API end points are also exposed as JSON over HTTP, so deployd easily integrates into other client applications (iOS, Android, robots, etc.)</p></div><div class="well"><img src="img/bucket/library.png" class="bucket-graphic" alt="Librarian glasses."><h3>A library to end all libraries</h3><p>The dpd.js library exposes a unified API to your app's resources to your client and server code. When you add a new Resource to your API, it's automatically available via dpd['resourceName']. For example, this code could be executed in the web browser or in an Event.</p><pre class="prettyprint lang-javascript"><code>dpd.collection.get({id: 1}, console.log)</code></pre><a href="http://docs.deployd.com/docs/collections/reference/dpd-js.html">See full dpd.js reference</a></div><span class="tweet"><i class="icon-twitter"></i><p>I think I'm in Love</p><a target="_blank" href="https://twitter.com/dan_tamas/status/238323413079449600">@dan_tamas</a></span><div class="well"><img src="img/bucket/queries.png" class="bucket-graphic" alt="Death."><h3>Clients deserve advanced queries, too!</h3><p>Perform queries against your Collections in the client that used to be reserved for secure server environments.</p><p>To get posts with a likes count of greater than 10:</p><pre class="prettyprint lang-javascript"><code>GET /posts?{"likes": {"$gt": 10}}</code></pre><p>Or with the dpd.js library, get posts within a category:</p><pre class="prettyprint lang-javascript"><code>dpd.posts.get({
category: {$in: ["food", "business"]}
}, console.log);</code></pre><a href="http://docs.deployd.com/docs/collections/reference/querying-collections.html#s-Advanced Queries-2035">See all advanced queries in the docs</a></div></div></div></section></div><div class="container-fluid team-tailored"><section class="row-fluid"><div class="span12"><h2>Deployd is a team-tailored experience.</h2></div></section><section class="row-fluid team-tailored"><div class="span3"><h3>Collaboration &<br>version control</h3><p>The deployd dashboard makes it easy to manage your API's resources. But behind the scenes, everything done in the dashboard is reflected in intelligently-separated JSON & JavaScript files in the filesystem which can easily be version-controlled for better team collaboration.</p></div><div class="span3"><h3>Develop apps<br>locally</h3><p>Develop your app locally, and deploy when you're ready. Deployd's local-dev-friendly design makes it easy to quickly build and test APIs as you develop your user interface. It also affords you the option to use the development environment of your choice to build custom Resources or write Event scripts.</p></div><div class="span3"><h3>It's open<br>source</h3><p>Deployd is totally open source, under an Apache 2 license. Modify it as you'd like, and run it wherever you'd like. Want to see a feature? Create an issue or submit a pull request on the <a href="https://github.com/deployd/deployd">Github project</a>.</p></div><div class="span3"><h3>Static file<br>support</h3><p>Easily host your app's static HTML, JavaScript, images, and other static assets in your deployd app. Just put all your files in your app's /public directory and access them at the root of your localhost or remote domain.</p></div></section><style>body > .container { padding-top:65px; }
footer {margin-top:0;}</style></div><footer><div class="container"><div class="row"><div class="span navigation"><dl><dt><img src="img/footer-dt.png" alt="deployd"></dt><dd><a href="">Home</a></dd><dd><a href="https://github.com/deployd/deployd/issues">Support</a></dd></dl><dl><dt>documentation</dt><dd><a href="http://docs.deployd.com/guides">Guides</a></dd><dd><a href="http://docs.deployd.com/api">API</a></dd><dd><a href="http://docs.deployd.com/examples">Examples</a></dd><dd><a href="http://docs.deployd.com/modules">Modules</a></dd></dl><dl><dt>community</dt><dd><a href="https://groups.google.com/forum/?fromgroups#!forum/deployd-users">Deployd Users Google Group</a></dd><dd><a href="https://gitter.im/deployd/deployd" target="_blank">Chat</a></dd><dd><a href="https://twitter.com/deploydapp" target="_blank">Tweets</a></dd><dd><a href="https://github.com/deployd/deployd/issues" target="_blank">Issues</a></dd><dd><a href="https://github.com/deployd/deployd" target="_blank">Github</a></dd></dl></div><div class="span logo-container"><div class="logo"><img src="img/footer-logo.png" alt="deployd"></div></div><div class="span email-container"><dl id="mc_embed_signup" class="span4"><dt>Get deployd emails</dt><dd><form action="http://deployd.us2.list-manage.com/subscribe/post?u=4f1b944ba8c90738eb8e3fa3c&id=7bb18e6b80" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate form-vertical" target="_blank" novalidate=""><div class="mc-field-group"><input type="email" placeholder="your@email" value="" name="EMAIL" class="required email" id="mce-EMAIL"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button btn"></div><div id="mce-responses" class="clear"><div class="response" id="mce-error-response" style="display:none"></div><div class="response" id="mce-success-response" style="display:none"></div></div></form></dd></dl></div></div><div class="row copyrights"><div class="span6"><p>© 2012 Deployd</p><p>The photo, "The Hackathon begins!" is copyright (c) 2012 Lachlan Hardy, on Flickr and made available under a Attribution-Noncommercial-Share Alike 2.0 license</p></div></div></div></footer><a href="http://github.com/deployd/deployd"><img alt="Fork me on GitHub" id="ribbon" src="http://s3.amazonaws.com/github/ribbons/forkme_right_white_ffffff.png"></a><script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.min.js"></script><script src="all.js"></script></body><script type="text/javascript">var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-27539606-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();</script></html>