aquameta icon indicating copy to clipboard operation
aquameta copied to clipboard

Web development platform built entirely in PostgreSQL

Aquameta v0.3

Not your grandma's web stack.

The idea:

  • Decentralized P2P network for data exchange
  • Built ontop of PostgreSQL, everything lives in the database
  • Build countless apps and data projects
  • No command-line, fully web-based IDE
  • Within an app, switch to developer/debugger mode and inspect and make changes to the app
  • Built-in peer-to-peer facilities for exchanging data/apps/whatever directly with other installations
  • Advanced version control over all the datas of the stack

Reality:

Still feature-incomplete and under development but maybe fun to check out!

START!

First install Golang, then run:

git clone https://github.com/aquametalabs/aquameta.git
cd aquameta
go build
./aquameta --help
./aquameta -c conf/some_config_file.toml

Status

Aquameta is an experimental project, still in early stages of development. It is not suitable for production development and should not be used in an untrusted or mission-critical environment.

Architecture

Aquameta is composed of several PostgreSQL extensions, using a CREATE EXTENSION meta for example. Together, they make up a functional programming envirionment built with mostly just the database. A thin Golang binary handles the connection to the database and runs a webserver.

Aquameta's PostgreSQL EXTENSIONs are:

  • meta - Writable system catalog for PostgreSQL, making most database admin tasks possible by changing live data. Makes the database self-aware.
  • bundle - Version control system similar to git but for database rows instead of files.
  • event - Lets you monitor tables, rows and columns for inserts, updates and deletes, and get a PostgreSQL NOTIFY as such.
  • endpoint - Minimalist web framekwork implemented as PostgreSQL procedures: A REST API, static recources, function maps and URL templates.
  • widget - Minimalist HTML component framework for building widget-based interfaces with jQuery
  • semantics - Schema decorators, for describing columns, tables etc.

User Interface

There's an IDE, and a few demos and such on youtube.