Files
zeekayandHanzo Dev 34ba5b1cee hanzo-base-runtime: compare with Firebase, Supabase and Convex
The prior-work section describes the 2022 backend by category, and the
comparison table and production section cover the systems Base is
measured against. hanzo-stack-comparison and hanzo-datastore drop one
reference each. hanzo-base.pdf had no source in the repo and is
superseded by hanzo-base-runtime. Committed PDFs rebuilt with make.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-11 10:22:23 -07:00

107 lines
3.7 KiB
TeX

% Hanzo Base: The Single-Binary Runtime for Sovereign Applications
\documentclass[11pt]{article}
\usepackage{../shared/hanzocover}
\usepackage{amsmath, amssymb, amsthm}
\usepackage{mathtools}
\usepackage{bm}
\usepackage{graphicx}
\usepackage{booktabs}
\usepackage{hyperref}
\usepackage{enumitem}
\usepackage{xcolor}
\usepackage{float}
\usepackage{multirow}
\usepackage{listings}
\input{../shared/lstlang}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,fit}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\hypersetup{colorlinks=true,linkcolor=black,citecolor=blue,urlcolor=blue}
\definecolor{codegreen}{rgb}{0,0.6,0}
\definecolor{codegray}{rgb}{0.5,0.5,0.5}
\definecolor{codepurple}{rgb}{0.58,0,0.82}
\definecolor{backcolour}{rgb}{0.95,0.95,0.92}
\lstdefinestyle{mystyle}{
backgroundcolor=\color{backcolour},
commentstyle=\color{codegreen},
keywordstyle=\color{codepurple},
numberstyle=\tiny\color{codegray},
stringstyle=\color{codegreen},
basicstyle=\ttfamily\footnotesize,
breakatwhitespace=false,
breaklines=true,
captionpos=b,
keepspaces=true,
numbers=left,
numbersep=5pt,
showspaces=false,
showstringspaces=false,
showtabs=false,
tabsize=2
}
\lstset{style=mystyle}
\newtheorem{definition}{Definition}
\title{HANZO BASE\\[0.3em]
{\large The Single-Binary Runtime for\\Sovereign Applications}}
\author{
Hanzo AI Research \\
\textit{Hanzo Industries Inc (Techstars '17)} \\
\texttt{[email protected]}
}
\date{March 2026}
\begin{document}
\hanzocoverpage
% ============================================================================
% ABSTRACT
% ============================================================================
\begin{abstract}
We present Hanzo Base, the application runtime for sovereign software. Base is
not a backend framework. It is the personal computer of Web5---a single Go
binary that packages an encrypted embedded database (SQLite with sqlcipher), a
realtime API layer, CRDT-based collaboration, a JavaScript plugin runtime
(Goja VM), Hanzo IAM authentication, and field-level KMS encryption into one
process. Firebase assumes a cloud provider and Supabase assumes PostgreSQL;
Base assumes neither. It runs on a
laptop, a phone, a Raspberry Pi, or a Kubernetes pod with the same binary and
the same API surface. Data stays local by default. Replication is opt-in.
Chain anchoring is available but never required. We describe the architecture,
the data plane (local vault, provider-optional replication, Lux receipt
anchoring), Base Functions (TypeScript in Goja, event-driven, zero cold start),
Base Collections (schemaless records with access rules and field-level
encryption), Base Sync (CRDT log, conflict-free merge, offline-first,
peer-to-peer or server-relay), and integration with Lux Network
chains (K-Chain key policy, I-Chain identity, T-Chain threshold controls).
Benchmarks on an M4 MacBook show 10,400 writes/sec for encrypted collections
and sub-millisecond read latency. In production since December 2022, Base
serves as the default runtime for 2,800+ applications across the Hanzo
ecosystem.
\end{abstract}
% ============================================================================
\input{sections/01-introduction}
\input{sections/02-architecture}
\input{sections/03-base-as-data-plane}
\input{sections/04-base-functions}
\input{sections/05-base-collections}
\input{sections/06-base-sync}
\input{sections/07-lux-network-integration}
\input{sections/08-comparison-to-existing-systems}
\input{sections/09-hanzoai-sqlite}
\input{sections/10-performance}
\input{sections/11-production-deployment}
\input{sections/12-related-work}
\input{sections/12a-prior-work}
\input{sections/99-conclusion}
\end{document}