The JAMstack architecture is gaining popularity among frontend developers for its ability to provide a modern, fast, and secure web development experience.
In order to achieve better performance, developers have had to look at different ways and tools that together could increase speed and at the same time maintain a high level of security. Traditional and dynamic CMS-based websites have the disadvantage that data must be retrieved from a database or similar in order to deliver content on the websites. Using so-called reverse proxies and caches (i.e., "fast storage") such as Varnish and nginx, was one of the few options to increase performance. That is, until the JAMstack architecture (and frameworks) arrived.
(this article was originally published on the codehooks.io blog)
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 :)
Organising information in hierarchies is something programmers have to deal with from time to time. Examples are:
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 restdb.io. To follow along, you can just create a new restdb database yourself. Everything is done online, you only need a modern browser.
In case you didn't know it, restdb.io is designed for use with the leading NoSQL database engine MongoDB.
restdb.io 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 restdb.io to a MongoDB Atlas Cluster.
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.
Boiler plates and HTML templates are very popular among developers. With restdb.io database/app templates, we want to take reuse to a completely new level.
A few months ago, we introduced the snapshot functionality for restdb.io 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”.
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.
{{#auth}} {"password": "secret", "user": "jane"} {{/auth}} My sensitive content here ...