Daybed

Daybed is an Open Source Web API providing validation and storage as a service.

Why ?

Usually, when a Web application requires a backend for storage and validation, one of the following solutions is employed :

  • A custom API is developed and deployed (reinvent the wheel)
  • A commercial and closed-source service is used (Google Forms)
  • A CMS is used as a backoffice for customizable content types (twist)

To avoid those situations and make it easy to get your storage backend ready in seconds, we’ve created Daybed.

Daybed is :

  • a minimalist, robust, dynamic and generic API ;
  • a validation layer with schemaless storage ;
  • a reusable layer of permissions logic ;
  • a universal REST endpoint for Web and mobile apps ;
  • a key component for rapid application building ;
  • a simple service deployed and integrated without coding.

How ?

  1. Create a model by posting its definition (title, fields, ...)
  2. Define the permissions sets (modify definition, create, update or delete records, ...)
  3. Use the allocated RESTful endpoint in your application (GET, POST, PUT, ...)
  4. Store and query records !

Since Daybed talks REST and JSON, you can basically use it as a remote storage with any of your favorite technologies (Python, Android, iOS, AngularJS, Ember.js, Backbone.js, etc.).

Note

Currently, the authentication relies on Basic authentication and Hawk

Use Cases

  • Mobile apps
  • Full JavaScript apps
  • Online forms
  • Data Wiki
  • Collaborative Web mapping

Using Daybed in its first versions, we built:

Technologies

Daybed uses the following stack by default :

  • Pyramid, a robust and powerful python Web framework
  • Cornice, a REST framework for Pyramid
  • Colander for the schema validation part
  • Redis as the default persistence backend
  • ElasticSearch as indexing and faceted search engine
  • CouchDB as an alternative persistence backend

Comparison

Daybed has many competitors, yet none of them shares the same approach or features set.

Strategy   Custom dedicated API Generated code Competitors
Project Daybed Django REST framework, Restify, express, Struts... Python Eve Loopback Hoodie Google Forms
Minimalist        
Validation  
Permissions    
Dynamic schemas    
Reusable instance      
Dynamic API end-points        
Raw data access  
Agnostic (REST)    
Requires SDK          
Open Source  
Faceted search      

Sources: http://python-eve.org ; http://hood.ie ; http://loopback.io ;