Design, build, and scale APIs for web and mobile apps in minutes instead of days.
With one command, your API is up and running. It's an empty canvas waiting for you to add Resources. No boilerplate code necessary.
Deployd APIs are built of plug-and-play resources, such as Collection, which can easily be added and defined through the deployd dashboard.
Add and manage your API's resources through an intuitive web-based dashboard.
When it's time to deploy, easily deploy it yourself anywhere that can host a Node.js app and MongoDB.
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:
Deployd's simple Resource distribution feature makes it even easier to add modules others have developed to your own app. (Currently in-development)
Excellent work guys! Deployd is really exciting. You just removed 80% of the friction of developing a new app. Awesome.
@SonicCoderCollections 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.
This event script:
//In GET event for /myposts/id
var post = this;
dpd.comments.get({postId: this.id},
function(comments){
post.comments = comments;
})
Generates this JSON output:
//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"
}
]
}
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.
// Listen for new posts
dpd.on('postCreated', function(post) {
console.log(post);
});
With deployd's rich Events model, it's easy to validate, secure, and scope realtime messages to specific users or groups. See docs.
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.
// Example: On Post
// Don't allow non-admins to create items
if (!me.admin) {
cancel("You can't do that!", 401);
}
See full Events documentationWith 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.
//Create a user
dpd.users.post({
username: "jeffbcross",
password: "secret"
}, onCreateUser);
//Login
dpd.users.login({
username: "jeffbcross",
password: "secret"
}, onLogin);
See User Collection Docs*All API end points are also exposed as JSON over HTTP, so deployd easily integrates into other client applications (iOS, Android, robots, etc.)
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.
dpd.collection.get({id: 1}, console.log)
See full dpd.js referenceI think I'm in Love
@dan_tamasPerform queries against your Collections in the client that used to be reserved for secure server environments.
To get posts with a likes count of greater than 10:
GET /posts?{"likes": {"$gt": 10}}
Or with the dpd.js library, get posts within a category:
dpd.posts.get({
category: {$in: ["food", "business"]}
}, console.log);
See all advanced queries in the docsThe 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.
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.
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 Github project.
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.