Newsletter August 2017

by Knut Martin Tornes
July 31st 2017


We've passed the peak of summer and some of you are (hopefully) ready for some updates again.

We have a lot of new stuff for you this month:

  • From Excel hell to cloud database heaven (blog)
  • Working with hierarchies using (blog & DZone)
  • React in realtime (blog)
  • Email campaign template (blog/templates)
  • How to use your own Mailgun account to send emails from
  • The classic Northwind database converted to the NoSQL world
  • Improved Excel/CSV import

From Excel-Hell to cloud database heaven

by Jon Erik Solheim
July 26th 2017
|Case study| Tutorials|


A spreadsheet is a genious invention with many uses. It is often considered the application that turned the microcomputer from a hobby for computer enthusiasts into a serious business tool. It's an awesome way to work with tabular data and to do calculations and visualize data.

Another very common use of spreadsheets is to store business data. "I created a spreadsheet with our customers and suppliers and uploaded it to Sharepoint". "I put the sales leads in a spreadsheet and shared it with you on Google Docs". These types of quick-fix spreadsheets slowly becomes permanent and starts to proliferate quickly, leading to a situation referred to as "Excel-Hell".

In many cases, the remedy for "Excel-Hell" is a database. In this article we provide an easy to follow walkthrough for transferring your spreadsheet "systems" into a modern cloud database.

Working with hierarchies in a NoSQL database

by Knut Martin Tornes
July 25th 2017
|User| Tutorials|

Hierarchies in a NoSQL database Organising information in hierarchies is something programmers have to deal with from time to time. Examples are:

  • Threaded discussions/comments
  • Addresses on a map
  • Folders and documents
  • Organisational structures
  • Storage/shelf locations in a warehouse
  • Pages on a web site
  • Link referrals

Using a NoSQL document database (or SQL for that matter), it is quite easy to create a structure to organise this type of information; for each record/document/node, you simply need a reference to the parent (except for the top node).

So what's the problem?

The main problem is that querying and retrieving the whole or parts of the hierarchy will require complex code with recursion and an unknown number of queries which can put a big load on our database. Ouch!

In this blog post we will walk through a simple solution which lets you retrieve any (or all) parts of a hierarchy (a threaded discussion) using only ONE efficient database query in To follow along, you can just create a new restdb database yourself. Everything is done online, you only need a modern browser.

React in realtime

by Jon Erik Solheim
July 12th 2017
|API| Tutorials|


Single page applications frameworks (SPA) are at the center stage of modern web development. Top notch web applications depends on fast and responsive behaviour in both user interface and data. Hence the popularity of frameworks like React, Angular, Vue and Ember.

This blog post shows how you can get started with React and for development of applications with realtime data.

React is an amazing piece of technology. With it's realtime DOM manipulation and component thinking, it's just a perfect match for realtime enabled databases and frameworks like Firebase, RethinkDB, Pusher and

In this blog post we'll be developing an application for displaying Nasdaq stock information.

How we created a developer friendly email campaign tool using serverless only

by Knut Martin Tornes
June 21st 2017
|Tutorials| Howto|

Serverless is more There are tons of email marketing tools on the market, the most well-known being perhaps MailChimp and Campaign Monitor. These tools have varying prices and flexibility and each one has its own fanbase and target group.

We wanted to create a simple, developer friendly email campaign tool that we could use internally for our monthly newsletter at (it's available as a database template you can play around with).

The requirements were these:

  • Edit the emails in Markdown syntax (to save time)
  • Possibility to upload email addresses using CSV/Excel or using an API
  • Ignore duplicate emails when uploading
  • Have an unsubscribe feature
  • Track emails sent and opens in realtime

And last, but not least: Everything should be written using serverless Javascript, HTML and NoSQL.

Difficult? Yes. Doable? Certainly! Read on.

The classic Northwind database converted to the NoSQL world

by Jon Erik Solheim
June 20th 2017
|Case study| Tutorials|


This blog post uses the classical Northwind example from Microsoft to show how you can migrate from a traditional relational database to a NoSQL cloud database.

Northwind Traders Access database is a sample database that shipped with Microsoft Office suite. The Northwind database contains the sales data for a fictitious company called Northwind Traders, which imports and exports specialty foods from around the world. Developers (back in the 90's 🙌) used it to learn the MS Access product.

In the following example we will show how to:

  • Import the original SQL data files
  • Map relations between tables (collections)
  • Use the REST API to the new Northwind NoSQL database

June newsletter

by Jon Erik Solheim
June 11th 2017
|Newsletter| monthly newsletter

Hi there good people, it's June already and it's time to get you updated with some news again!

This month:

  • External MongoDB support
  • API goodies
  • Mapping of relational data
  • Sortable image, file and lookup fields
  • Search by query in the data management UI
  • Better performance "down under"

Announcing MongoDB Atlas support for

by Jon Erik Solheim
May 18th 2017
|User| Howto|

love-Mongodb In case you didn't know it, is designed for use with the leading NoSQL database engine MongoDB. does not expose any of the details from the underlying database, hence the simplicity and speed of development that many developers love.

However, in many cases, there are good reasons for developers and data owners to control their own MongoDB instance.

We are therefore proud to announce support for external MongoDB databases.

This blog post shows how you can connect to a MongoDB Atlas Cluster.

Object relations in a NoSQL database

by Jon Erik Solheim
April 23rd 2017
|User| API|


Compared to a traditional relational database (SQL), a document oriented (NoSQL) database has poor or non-existent support for relations between objects (data schema). A NoSQL datastore persists and retrieves documents (often in JSON format) and any relationships between your documents is something you must implement yourself.

Without any direct support for relations, you’re stuck with the logic and maintenance of objects / relations in your application layer.

This blog post shows how you can leave the job of maintaining object / relations to a database, effectively giving you time to pick from your backlog instead of adding :)

Email from JavaScript with Gmail and database triggers

by Jon Erik Solheim
March 16th 2017
|Tutorials| API|


This blog post shows you how simplifies sending emails via the Gmail mail service. We'll walk through a simple code example with a database trigger (serverless codehook) and a JavaScript that uses the mail API to send an email to a user.

How to automate transactional emails with

by Jon Erik Solheim
February 11th 2017
|Tutorials| API|


Engaging your audience is good for business. Whether your audience are users, subscribers, companies or hot leads, you should have an automated system for keeping them happy.

Sending personal emails based on user actions is an important tool in this aspect.

You can choose from a bunch of excellent email services (APIs) today, e.g. Sendgrid, Mailchimp, Mandrill, Mailgun, Amazon and Mailjet. But there are major challenges in first grasping, and then integrate and automate these services into your application.

This blog post shows how you can automate sending of transactional email directly from a application. No need to setup or integrate anything. There is a link to an installable template at the end of the article to get you up to speed quickly.

Host your project docs in a dynamic web database

by Knut Martin Tornes
January 31st 2017
|Howto| Tutorials|

Dynamic documentation template database

In your career as developer you've probably at some time felt guilty when the project manager asked you where the documentation is. "It's a self-documenting system", you say, trying to be smart.

What if there was a fun and simple way to write and share those docs? For all your (development) projects?

In this blogpost we'll show you how the DocHUB database template was created. It provides an easy way to create dynamic project documentation with Markdown using a database as the content engine and the amazing Flatdoc for displaying and navigating the docs with a little Javascript magic.

The template has been very popular and has been installed many times by our users. If you're not into coding, you can of course just install it and use it as is. Otherwise, read on (and learn).

Send mail from your application

by Jon Erik Solheim
January 30th 2017
|Howto| Features| API|

mail Yes, your database can now send email.

A simple REST endpoint on your database makes sending email from your application a breeze. A nice responsive HTML email template makes your application emails look great, even on mobile devices.

Chop your logs with capped collections

by Jon Erik Solheim
December 12th 2016
|User| Howto| Tutorials|

log Your database size is out of control, and collections are growing crazy fast.

You desperately need some automagical way to limit collection sizes to contain only relevant data, and chop off garbage data.

Relax, this is exactly what you can accomplish with a background JavaScript that caps collection data to a specific limit.

This blog post will show you how.

Hook up with Mailgun

by Jon Erik Solheim
December 5th 2016
|Tutorials| API|

We'll soon be entering 2017. And Email is still around.

This blog post shows how you can use a "serverless" Javascript Codehook to send email to people from a web page.

In this example you’ll learn how to use:

  • Mailgun API to send the actual email message
  • Handlebars HTML email template
  • Pages and Codehooks

Are you ready to learn some fun and useful stuff?

Taking reuse to a new level - introducing the database template catalog

by Knut Martin Tornes
December 1st 2016
|User| Features|

Boiler plates and HTML templates are very popular among developers. With database/app templates, we want to take reuse to a completely new level.

A few months ago, we introduced the snapshot functionality for databases. A simple click and a complete clone of a database with schema, REST API, HTML pages and setup would be created. Perfect for development staging, testing, reuse and sharing.

We are now introducing a template catalog where we are sharing various types of database applications you can install directly into your account. You can use these templates to learn from, as a starting point for a new solution or just use them right out of the “box”.

Serverless "cron" jobs with JavaScript Codehooks

by Jon Erik Solheim
November 30th 2016
|Tutorials| API|

Crontab is a well known workhorse from the Unix and Linux world. 

The crontab is a system that lets you run commands on a regular schedule. Crontab stands for “cron table”, because it uses the job scheduler cron to execute tasks; cron itself is named after “chronos,” the Greek word for time.

Using the Crontab system, can invoke a Codehook. A Codehook is a JavaScript function that can access your database or any other network resource.

Combining Crontab and Codehooks puts you in control. It lets you build a more versatile and advanced data backend for your application.

This blog post shows how to get started creating your own Crontab jobs in

Next on your TODO: Go React native with and Auth0

by Jørgen Tvedt
November 29th 2016
|Howto| Integrations| Tutorials|

Native apps for IOS and Android provide developers with options, performance and styling beyond the capabilities of the browsers. Up until recently, however, this meant learning and dealing with bespoke programming languages and SDKs. Fortunately, react-native have come to the rescue, offering a familiar JavaScript programming and standardized components for the major platforms.

Building a fully functional react-native app with persistence and authentication is surprisingly easy. Using for cloud hosted data and Auth0 for user authentication, you get lots of features right out of the box. Follow the steps in this post and you’ll be up and running in no time.

Stay in the loop with Codehooks and Slack

by Jon Erik Solheim
November 27th 2016
|Integrations| Features| Tutorials| API|

The new feature, Codehooks,  lets you execute JavaScripts directly in your database.

This feature opens up an array of cool scenarios for your application.  One of them is to integrate your database with

Slack seems to be every team’s favorite collaboration platform now. If you’re not using this great tool already, I would suggest you give it a try. It can practically eliminate the need for sending internal (non-important) emails, and introduces a more human touch to your team information flow.

That’s why it makes sense to let your database talk to Slack, instead of you logging on to your database admin, all the time, to see what’s going on.

This blog post shows you how you can create a JavaScript Codehook to feed your Slack with important stuff that happens inside your database.

You shall not pass - without a JSON Web Token

by Jon Erik Solheim
November 20th 2016
|User| Howto| API|

Accessing cloud data sources from JavaScript using AJAX and JSON is at the core of so many applications. There are several complicated approaches and there is JSON Web Tokens.

Thousands of developers have chosen to run their Authentication and Backends from cloud providers for one reason. Simplicity.

Enter JSON Web Tokens, Auth0 and Auth0 lets you set up a world class authentication system in front of your application - in 10 minutes. By using the JSON Web Tokens and the JavaScript API from, your data API is easily protected.

After all, your application needs 100% of your attention on the core features, which is everything that happens between authentication and the data store.

You'll find a link to a working application example at the end of this article.

DevOps nirvana: Roll your own low-cost realtime server monitoring with Bash, Javascript and NoSQL

by Jon Erik Solheim
November 9th 2016
|Howto| Tutorials| API|

There are plenty of excellent tools to monitor servers in real-time (New Relic, LogicMonitor). These products have tons of features and often costs more than you are (eagerly) willing to pay. Maybe you just need something simple or something custom that you want to keep an eye on in a dashboard. Perhaps the Dev in you is bigger than the Ops? In any of those cases, this article is for you.

We will show how you can use a pre-made database template to create your own DevOps server monitoring dashboard with JavaScript, Google Charts and Bash shell scripts. The setup is simple and will only take you a few minutes to try out.

Instant cloud apps with Snapp templates

by Knut Martin Tornes
October 23rd 2016
|User| Howto| Features|

We have previously written blog posts with source code and plenty of examples of how to set up backends, web sites and blogs using a database (see  

However, even though we provided detailed steps on how to set everything up, we felt the barriers was still there for developers to get going. We needed a way to share our examples without requiring people to set everything up themselves, a kind of snapshot or clone of a complete solution.

Meet our latest feature:  Snapps

Create a technical blog with Markdown and in 39 lines of code

by Knut Martin Tornes
October 3rd 2016
|Howto| Features| Tutorials|

We've just added two-way support for using Markdown. Any text field in a database record can now easily be edited using the integrated Markdown editor and the built-in webserver of every database can render the text as perfect HTML using the #markdown helper tag.

In this blog post we describe how we set up a database to power a simple blog site using just a tiny amount of code.

REST API Inspector

by Jon Erik Solheim
September 27th 2016
|User| Features| API|

Cloud service APIs can often feel like black boxes. Applications send information in and get responses back, but you feel like being in the dark and don't really see what's going on.  

The new REST API Inspector  (  ) will help you to shed more light onto your APIs.

A picture is worth a 1000 lines of code

by Jon Erik Solheim
September 22nd 2016
|Howto| API| comes with a helpful media archive for documents and images. The media archive also has an API with full CORS support. This is really handy for providing your web application with dynamic content.

In this blog post we'll look at the media archive API and go through a JavaScript code example for a simple (ugly) web page showing the basics of the API.

Simple user authentication for web apps

by Jon Erik Solheim
September 5th 2016
|Howto| Integrations| Authentication|

User authentication is an important ingredient in application development. It both protects important data (i.e. APIs) and enables development of a personalised user experience. 

It can, however, be a complicated and time-consuming process if you want to roll your own and it often requires a skilled backend developer to do it right.

This blog post shows how you can use and a database to develop an application where users can sign up with your app and get access to their own data.

Please share this article with your developer friends :-)

Password protected Pages

by Jon Erik Solheim
August 9th 2016
|User| Howto|

Restdb Pages lets you create any content from your database and deliver it on a custom route. However, sensitive content must be protected. That's why we made it simple to include user authentication in any Page. All you have to do is to add the #auth tag to the Page source code.

The #auth tag instructs the server to require an authenticated user before serving the Page content. The example below shows how to protect a page with a simple username and password.

{"password": "secret", "user": "jane"}

My sensitive content here ...

How to create a dynamic site with HTML and CSS only (almost)

by Knut Martin Tornes
July 29th 2016
|User| Howto|

Do you dream of a simpler world where you could create a website with HTML and CSS only? The kind of site that web designers and SEO-experts love?

With the addition of Pages to, it is now entirely possible and easy to create complete dynamic web sites with only HTML and CSS (almost). 

How to create an RSS feed with

by Knut Martin Tornes
July 12th 2016
|User| Howto|

RSS (Rich Site Summary) is a widely used standard format to deliver regularly changing web content. Many sites and blogs syndicate their content as RSS feeds. People subscribing to feeds saves time, stays informed and enjoys greater privacy (no ads, no cookies).

In this blog post we show you how we created the RSS feed for our own blog (yep, this blog), using a database and just a few lines of code in a Page.

Introducing realtime REST events

by Jon Erik Solheim
July 6th 2016
|Features| Howto|

A brand new feature of is support for really simple realtime messaging. 

Now, with only a few lines of code, you can update web pages dynamically whenever some data are created, updated or deleted in your database (POST,PUT,DELETE). We have also added custom events, so you can for example publish "GOAL" events or whatever.

Announcing access roles

by Knut Martin Tornes
June 7th 2016

We are pleased to tell you that now support access roles. No need to worry about letting other users into your database again. Roles are particularly useful when you need to restrict access to what users can see and do in your database.

Draft records makes publishing database content simpler

by Knut Martin Tornes
May 26th 2016
|User| Features|

We are pleased to announce drafts for This makes it much easier to use the database service for content management or for example product information management.

Make children with the JavaScript API

by Jon Erik Solheim
May 11th 2016

In this blog post we'll show how to create parent-child relations using and the JavaScript API. Full source code avaliable at the end.

New JavaScript API makes databases more fun for webdevs

by Jon Erik Solheim
May 7th 2016
|API| can now autogenerate a complete JavaScript API* for your database. This makes it easy for developers to create web applications with dynamic content. The API also ensures that your code follows the schema for your database. 

Read on for a simple example on how to use the JavaScript API.

Web Form Generator now support file and image uploads

by Knut Martin Tornes
April 16th 2016
|User| Howto| Features|

Great news! We have now released a new version of the Web Form Generator that will generate HTML and Javascript code for uploading files and images into your database collections.

Simple real-time chat with and

by Knut Martin Tornes
April 3rd 2016
|Howto| Integrations| API| makes it simple to create a user-friendly, manageable database with a REST-API. For some types of applications, however, you need real-time updates delivered to your front-end web page or mobile app. 

Polling the API from the client could be an option, but often induces too much traffic. Services like Firebase has real-time data, but then you don't get the powerful data manager or the possibility to host web pages in your database like you can in This is where can add to the power of let's you take any API and create a real-time data source for it!

Real-time is useful for many scenarios like chat, live financial data, games and live maps to mention a few. In this blog post we will show you how easy it is to use with by creating a real-time chat running in a HTML Page. 

NoSQL aggregations made simpler

by Jon Erik Solheim
March 16th 2016
|Howto| API|

An aggregation processes data records and return computed results. With aggregation, you can group values from multiple documents together, and then perform a variety of operations on the grouped data to return a single result. It's perfect for creating reports or gaining more insight from your data.

If you've used MongoDB aggregations, you probably think this is difficult right? 

We'll show you how simple it can be with

Automated email response with web forms and webhooks using Zapier

by Knut Martin Tornes
February 28th 2016
|Howto| Integrations|

With's Web Form Generator, you can quickly generate a web form you can use to collect input from users on your site directly into a database collection. Great!

However, it would be nice to be able to respond the users by email that the "application" or whatever information they submitted has been received. 

This blog post details all the steps necessary to do just that using Webhooks with a Zapier Webhooks-to-Gmail Zap.

How to create a Dashboard with RestDB

by Jon Erik Solheim
February 17th 2016
|User| Howto|

A Dashboard is a helpful tool for keeping people in the loop and quickly communicate important information.
This blog post will show you how to create a Dashboard with RestDB.
Our example is a database with Job applications from a web site.

Let (the) Postman deliver your REST-API code

by Knut Martin Tornes
January 21st 2016
|User| Howto| API|

At we have created code examples for various platforms. It's often quite time consuming to find the right library and approach, especially if the programming language is new to you.

But did you know there exists a powerful tool which lets you generate client code for calling REST APIs for many popular languages? Meet (the) Postman.

Using Highcharts with RestDB

by Jon Erik Solheim
January 17th 2016
|User| Howto|

This simple example shows how you can use Highcharts to visualize data from a RestDB datasource.

In this example we'll create a database for a simple Time management application. 
Our database contains the following Collections: Customers, Projects and Hours.

If you got the numbers, RestDB will do the math

by Knut Martin Tornes
December 13th 2015
|User| Howto|

From spreadsheets you might be familiar with formulas and calculations. RestDB supports calculations (for example adding a field that includes price + VAT) and aggregation functions like sum, average, minimum, maximum and count. It's quite easy to set up.

Database Driven Web sites and Pages

by Jon Erik Solheim
October 28th 2015
|User| Howto|

Pages let you create dynamic HTML (and other) content inside This is a great way to develop unique user experiences driven by data from your database.

This blog post shows you how to get started. We will create a simple web page and publish it to the world.

Prototyping with Framer Studio and random data from

by Jon Erik Solheim
September 30th 2015
|Howto| Prototyping| API|

In this blogpost we'll demonstrate how you can use as a Data Generator for your Framerjs prototype.

I am no expert in how to create prototypes in Framer Studio, and the example is probably amateurish. However, my main goal is to show you how easy it is to connect and work with and Framer Studio, almost in real time.

Generating good test data

by Jon Erik Solheim
September 23rd 2015

Testing is a big thing in the prototype and development cycle. Creating and maintaining good test-data sets can be a cumbersome process. RestDB has an integrated Random Data generator that makes test-data a snap, and a natural part of your development toolbox.

Scoped REST-calls directly from web-pages using CORS

by Knut Martin Tornes
September 7th 2015

Nowadays, most web services offers some form of API-keys to access and update data programmatically. But there's usually a little catch: API-keys are full access and thus only usable from server to server. Some services has started to offer OAuth-access, but that involves some sort of authentication first.

In addition to a full-access API-key, lets you add multiple keys with CORS-support. CORS enables javascript-calls directly from a web-page to a server other than the server hosting the page. 

Visualising IoT data with pages

by Jon Erik Solheim
September 6th 2015
|Howto| API|

We are pleased to share some insights from a project that uses as a backend to measure Air quality.

This blogpost shows how you can connect a BeagleBone Black device to and how you can visualise the temperature curve on a page served directly from The BeagleBone is a low-cost, community-supported development platform for developers and hobbyists

Parent/child relations made simple

by Knut Martin Tornes
September 4th 2015
|Howto| API|

A parent/child-relation is a convenient way of organizing and viewing information in a one-to-many relationship. If you think about it, we use it all the time: 

  • Folders and files on your computer
  • Comments on a blog post
  • Activities on a project
  • Interactions with a customer
Creating this form of relation is very simple in In this blog post we will show you how to add some "Notes" to a "Lead" in a simple CRM system.

Database apps on the go

by Knut Martin Tornes
September 3rd 2015

Today we released a fully responsive, mobile friendly version of It's perfect for accessing and updating important data on the go.

Welcome to our Blog - created in

by Knut Martin Tornes
August 16th 2015
|User| API|

This is our first blog post on
When we started to think about our blog, we had to pick some blog framework or CMS.

But wait, is great for serving dynamic content into a web page. Creating a blog is actually a good example that shows the power and flexibility of It's that thing about eating your own dogfood. 

Search is a fast and simple NoSQL cloud database service. With you get schema, relations, REST API and an efficient multi-user admin UI for working with data.

Our customers use it for backends, business databases, API-first CMS, data collection and much more.

Start Building »