Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

wngr/allotize

Repository files navigation

πŸ’₯ UNSTABLE πŸ’₯

The API is prone to change and the system has not been thoroughly tested




Allotize is a platform for building web apps without traditional server infrastructure.

The purpose of this project is to enable frictionless creation of web applications. For example, you are able to build collaboration services such as a text editor without requiring servers or back-end code.

Web Page | Demo | Book

Built with πŸ¦€πŸ•Έ by the Allotize Team

About

Allotize is an attempt of building a system for creating collaborative and dynamic web apps without traditional server infrastructure. The project is composed of two major modules, a database and a P2P networking solution.

The database that is optimized to run in edge environments and replicates freely between nodes using conflict-free strategies.

To make development as frictionless as possible, the system handles JS-values directly. This enables you do to things such as: votes += 1, but where mutations propagates to all connected users instead of just locally. i.e. you write traditional JavaScript, but operations can take place remotely if you connect your variables/objects/items to Allotize

πŸ“š Read the tutorial! πŸ“š

This tutorial is designed for kickstarting your first Allotize application.

Demo

Here is an example of Allotize in action! We leverage the fact that Allotize can run with Users as nodes. So this could be deployed as a static file, yet allow real-time changes.

const upvotes = document.getElementById("upvotes");
const downvote = document.getElementById("downvote");
const upvote = document.getElementById("upvote");
const votes = Allotize.Data({
 route: "cube/votes",
 data: {
 upvotes: 0,
 },
 onChange: (old, new) => {
 upvotes.innerHTML = new.upvotes;
 },
});
upvote.onclick = () => {
 votes.data.upvotes += 1;
};
downvote.onclick = () => {
 votes.data.upvotes -= 1;
};

About

A platform for developing real-time collaborative web apps without backend code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Rust 83.8%
  • JavaScript 10.3%
  • TypeScript 3.9%
  • Python 1.1%
  • HTML 0.9%

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /