We can't work without APIs anymore these days, every application talks with another application in some kind of way. And with Rual, this is not a problem at all.
You can create any type of API endpoint, like
DELETE. We'll automatically register these endpoints across all nodes live.
All endpoints support authenticated requests using the
access_token user receive upon logging in. Besides that we expose the same APIs using our WebSockets, you can read more about it on our API page.
Without users, most applications wouldn't have any purpose. Rual includes users in its platform by default, with group and scope support to make managing these users a little bit easier for you.
By default we expose a
/login endpoint in your frontend with 2FA support. You could create your own login by simply building a
/login page as UIComponent in any blueprint, the platform will detect this and serve this page now by default.
We currently store user passwords in our database using
pbkdf2 and will keep up with the most modern form of password security available to us and automatically upgrade existing passwords.
Every application you create on our platform automatically has a frontend ready to go for you. It is optimized for speed and the template you choose will be cached across all nodes serving these pages.
Minimizing the code we load will improve the time it takes to make a first-paint and gets you ranked higher in the search index as page speed and mobile device performance is one of the biggest factors of preference these days.
All pages built using our front-ends automatically have multilingual support. Whenever authenticated to a public or scoped page a
* scope holder can just alt + left click and the translation popup will show.
You can just add any of the supported ISO language codes manually if not already present and we'll fallback to
en by default whenever we were unable to find the translation of the element you're currently viewing.
Rual executes all functions and requests in high concurrency, sometimes realtime is too much for you. For example when decrementing the stock you would like to handle some more actions, but only once for each mutation.
As we've already ran into these problems for you, we build could extensive locking into the core of our platform. You're able to
lock & wait - the blueprint will wait the given amount of seconds and checks if the lock has been free'd or
lock & stop - the blueprint will stop its current flow if the key has been locked. You can free the locked key yourself using
free lock using the given key.
Locking functions will make your application more robust in high concurrency activity and increases speed whenever possible.
One of these problems a lot of application run into is how to process jobs in order of time without overloading the system. Our queue jobs are automatically spread across multiple nodes and can run in parallel with other jobs currently running.
Our queue system processes jobs at high speed whenever there is CPU available across one of the nodes currently online. Queue items can be scheduled at exact times or you can pass unique IDs to queue items, so they will automatically be postponed when an existing queue item with the same ID exists. This takes a lot of work of the shoulders of the developers due to the concurrency these actions could execute in.
All our systems, like our queue processing, are production tested with heavy loads for years.
What database to use? Why and how fast is it? Not anymore with Rual. We did that work for you already. You're no longer wondering what to use as a database and how fast it should be.
Our storages automatically increase in shards based of your usage. Besides that, we use hot-document caching to serve these documents at an extreme speed to you and your end-users.
The way we've built these storages and how they scale is being tested everyday as our platform is being used within a production line, we serve crates of conveyors and create assignments documents that within an avarage of
174ms are scanned by the end-user. As you understand, we cannot accept any mistakes in your application or the conveyors.
You're not missing out of any of the amazing features most databases provide. Our storages have document events like on-create, -update, -saved (update, create combined) and -removed with revisions built in by default.
No more waiting for
500MB JS bundles to be uploaded, deployed or requesting users to refresh using
CTRL+SHIFT+R to get the latest code.
You're not longer working on getting code out there, you can now focus on the thing that does makes money, your business. Deployment is part of every blueprint you make, we'll automatically provide you with the changes you made and allow you to provide a comment on it.
Without hitting save, you can view pages using
?debug to receive the unsaved blocks. When you finally hit save, we'll deploy your changes live to all nodes without any interuption. Any button, page or link end-users click will automatically execute the latest blocks saved.
Everytime you hit save, we'll save the changes to every block you made visible under "Recent Changes" for everyone to see. This way you can debug faster and find what has been changed by your team whenever a problem occurs.
Rual is designed by René van Sweeden our technical founder. We know the struggle and understand how difficult it is to make applications do what customers want. We feel you when realtime doesn't work out like you hoped and will be there to make it work.
With our expertise building various applications and products succesfully around the globe, our main goal is to make you succeed in building amazing applications without the hassle of these days technical decisions.
By default we provide community support, allowing your teams to communicate with our team in Discord channels. Besides that we provide dedicated support contracts for architectural questions or build-fase related challenges.
We love to see your team succeed and we'll do everything inside and outside the lines to make sure your product will be as awesome, fast and responsive as we promised. We're not afraid to add new blocks on request and we'll absolutely pick up the phone when you call us.
The Rual Platform is designed from the ground up to make simulating data easy, our first code was built with improving the workflow in mind.
These days we can't think of any other way of debugging our blocks. You simply choose a function to simulate and throw in (JSON) data. Data will be visualized in front of you, including for-loops and nested functions.
Simulating your data allows live-debugging and combined with deployment one-click away, you're resolving production issues in minutes.
In this mode you'll be able to simulate data and we'll act like storage create, update and remove worked to make it easier for you.
Using this mode is rare, but sometimes you want to run your blocks trough production with the advantage of simulation.
You'll be able to mass-remove your test data or anything that requires production data. You just don't want to make a button for it for others to see.
Our default Content Policy is set to strict and our platform doesn't track user behavior by IP or unique tokens anywhere.
We would like to provide a platform that enhances human privacy as we value it highly ourselves.
Doing so, we by accident made ourselves GPDR complaint in all areas. The only exception to this is the application you built on our platform. If you store user-generated content you'll have to provide a way to export this data. Our platform by default has extensive export tools available in blocks, the only thing you need to built is a button.