Skip to content

WEBcodeX1/x0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,220 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

x0 Framework Logo

x0 JavaScript Framework

Serverless in-browser RTTE for complex objects and clean OOP abstraction


πŸ“Œ Overview

The x0 framework is a serverless in-browser RTTE (Real Time Templating Engine) that lets you combine complex objects with a cleaner-than-clean OOP abstraction model and clean code principles.

  • In-Browser RTTE: Render and evolve object-driven interfaces directly in the browser
  • Composable Object System: Combine complex objects into reusable, structured application models
  • Clean OOP Abstraction: Build with chaining, metadata, and a consistently clean code style
  • Serverless by Design: Keep deployment lightweight without depending on a classic backend stack
  • Real-Time Modifiable UI: Update object structures and behavior while the application is running
  • Multi-Language Ready: Deliver the same object model across multiple display languages

πŸ“‘ Table of Contents

  1. Quick Start
  2. Features
  3. Abstract / Purpose
  4. Single Page Application
  5. Documentation
  6. Simple Usage
  7. Technical Details
  8. Security
  9. Examples
  10. File & Folder Structure
  11. Contributing
  12. Future Plans / Milestones
  13. Community & Support
  14. License
  15. References

🐎 Quick Start

Try x0 now in minutes!

# clone & enter repo
git clone https://github.com/WEBcodeX1/x0.git
cd x0

# install docker
apt-get -y install docker.io docker-buildx

# docker permissions & setup (as root)
usermod -aG docker your-user

# restart (system) and pull pre-built images
docker pull ghcr.io/webcodex1/x0-app
docker pull ghcr.io/webcodex1/x0-db
docker pull ghcr.io/webcodex1/x0-test

# start x0-system
cd ./docker/
./x0-start-containers.sh
  1. Add to /etc/hosts:
172.20.0.10     x0-app.x0.localnet
  1. Try hello world:
http://x0-app.x0.localnet/python/Index.py
  1. Try examples:
http://x0-app.x0.localnet/python/Index.py?appid=example7

Full install details including build instructions: ./INSTALL.md.


🌟 Features

  • Cross Objects: Clean OOP, seamless data exchange between clients and network
  • Responsiveness: Bootstrap CSS grid, single app for all devices
  • Object Chaining / Data Abstraction: Chain objects, enjoy recursive, reusable modeling
  • Zero Code Duplication / Freedom: OSI-layer abstraction, minimal backend dependencies
  • Kubernetes Ready: Google Kubernetes Engine (GKE), Minikube support
  • Security: PKCS-compatible, optional advanced PKI system

Learn more in Examples.


πŸ“£ Abstract / Purpose

x0 is designed to make advanced SPA development fun, fast, and maintainable. With zero code duplication and a clean OOP model, x0 powers complex, modern web applications.


πŸ’» Single Page Application

Single Page Applications (SPAs) are modern web apps that deliver a seamless, desktop-like user experience directly in the browser. Unlike traditional multi-page websites, SPAs dynamically update content without requiring full page reloads, resulting in faster interactions and smoother navigation.

  • Real-Time Updates: By using technologies like WebSockets or polling, SPAs can reflect changes instantly β€” ideal for chat apps, dashboards, or any application requiring live data.
  • Optimized Performance: Static assets are loaded once, and only data or components needed for each interaction are fetched afterward, reducing bandwidth and latency.

πŸ“ƒ Documentation

Rendered docs: Official Sphinx Documentation.


πŸ“ Simple Usage

# define object from system objects
let myRootObject1 = new sysBaseObject();
const myObject1 = new sysObjFormfieldItem(JSONConfig);
const myObject2 = new sysObjLink(JSONConfig);
const myObject3 = new sysObjButton(JSONConfig);
myRootObject.addObject(myObject1);
myRootObject.addObject(myObject2);
myRootObject.addObject(myObject3);

# register new system object
sysRegister(myRootObject1, 'MyCoolObject');

# reuse and combine
let myRootObject2 = new sysBaseObject();
const myObject4 = new sysObjMyCoolObject(JSONConfig);
const myObject5 = new sysObjMyCoolObject(JSONConfig);
myRootObject2.addObject(myObject4);
myRootObject2.addObject(myObject5);

# realtime render
myRootObject2.renderObject();

⚑ Technical Details

OS Compatibility:

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 24.04 (Noble Numbat)
  • Devuan (Daedalus 5.0)

Prerequisites:

  • Apache2.0+ / WSGI or FalconAS
  • PostgreSQL 13+
  • Python3+, Psycopg2, Selenium

Kubernetes:

Deployment:

  • Linux Standalone
  • Docker
  • Google Kubernetes Engine (GKE)

πŸ” Security

PKCS 11/15 compatible. Optional advanced PKI (non-free). Full details in WEB/codeX PKI Manager.


πŸ’‘ Examples

Try 15 live examples (after local docker containers have been started):

http://x0-app.x0.localnet/python/Index.py?appid=example1
...
http://x0-app.x0.localnet/python/Index.py?appid=example15

Most examples now include a descriptive video: ./example/README.md.


πŸ“ File & Folder Structure

Partial overview, see GitHub file search:

β”œβ”€β”€ README.md
β”œβ”€β”€ INSTALL.md
β”œβ”€β”€ debian/
β”‚   └── README.md
β”œβ”€β”€ docker/
β”‚   β”œβ”€β”€ README.md
β”‚   β”œβ”€β”€ build-all.sh
β”‚   └── ...
β”œβ”€β”€ doc/
β”‚   β”œβ”€β”€ index.rst
β”‚   β”œβ”€β”€ intro.rst
β”‚   β”œβ”€β”€ dev-examples.rst
β”‚   β”œβ”€β”€ Makefile
β”‚   └── conf.py
β”œβ”€β”€ example/
β”‚   β”œβ”€β”€ example1
β”‚   └── example2
β”œβ”€β”€ conf/
β”‚   └── wsgi.conf
β”œβ”€β”€ www/
β”‚   └── sysText.js
β”œβ”€β”€ test/
β”‚   └── README.md
└── ... (more files & folders)

πŸ‘‹ Contributing

Contributions & feedback welcome! See ./CONTRIBUTING.md or open an issue.


⏰ Future Plans / Milestones


🌐 Community & Support


πŸ“ License

AGPL-3.0. See ./LICENSE.


πŸ”— External References


Made with ❀️ by Claus Prüfer / clickIT / WEBcodeX

About

Powerful Serverless OOP based JavaScript Browser RTTE (Real Time Templating Engine)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages