Spacewave
Self-host anything in the browser.
Local-first apps on a portable Go + WebAssembly + TypeScript stack.
Open source. Cloud optional.
๐ Spacewave
Self-host anything in the browser. Local-first apps with optional cloud sync, running natively or in the browser.
- ๐ Local-first Apps run in the browser against an OPFS-backed object store
- โ๏ธ Optional cloud Fast cross-device sync and backup on Cloudflare
- ๐ฆซ Portable Same Go code runs as WASM in the browser and natively as a CLI
- ๐งฉ Composable ObjectTypes, plugins, and packfile-based content addressing
Get started with Spacewave โ
ocpipe
Build LLM pipelines with OpenCode and Zod.
- Type-safe Define inputs and outputs with Zod schemas
- Modular Compose modules into complex pipelines
- Checkpoints Resume from any step
- Multi-model Works with 75+ providers through OpenCode
const Greet = signature({ doc: "Generate a greeting.", inputs: { name: field.string("Name to greet") }, outputs: { greeting: field.string("The greeting") }, }); const result = await pipeline.run(module(Greet), { name: "World" });
Get started ยท OpenCode Discord
๐๏ธ Projects
Spacewave is built on the App Stack below. Get started building your own application on the stack with the project template!
๐งฑ App Stack
- ControllerBus - Dynamically configurable communicating control loops
- Bifrost - Cross-platform networking engine with pluggable transports
- goscript - Transpile Go to TypeScript
- ocpipe - Build LLM pipelines with OpenCode and Zod
SkiffOS is a minimal Linux distribution designed to run containers on embedded devices. It uses Buildroot to cross-compile a tiny system image with support for Docker and other container runtimes. SkiffOS enables running any Linux distribution or application in lightweight containers on embedded hardware.
๐ชถ Lightweight Protobuf
These are lightweight reflection-free code-generation based implementations of Protobuf designed to optimize binary size and performance, especially for WebAssembly (wasm) applications.
- StaRPC - Protobuf 3 RPC services over any stream multiplexer
- protobuf-es-lite - Lightweight TypeScript protobuf implementation
- protobuf-go-lite - Lightweight Go protobuf implementation
- protobuf-project - Template repository for projects using protobufs
Protobuf libraries like protobuf-es and protobuf-go focus on spec compliance and feature-complete implementations. These lite libraries focus on just the base proto2 and proto3 spec including RPCs to simplify the implementation.
๐ QuickJS WASI Reactor
Run QuickJS-NG JavaScript engine in Go and TypeScript using the WASI reactor model for re-entrant execution:
- quickjs - QuickJS-NG fork with WASI reactor build target
- go-quickjs-wasi - Go module with embedded QuickJS-NG WASI command binary
- go-quickjs-wasi-reactor - Go module with embedded QuickJS-NG WASI reactor binary
- js-quickjs-wasi-reactor - Run QuickJS-NG within JavaScript with WASI reactor model
๐ Libraries
Common Go/TypeScript libraries:
- Common - Common project configuration files and Protobuf toolchain.
- Util - Go utilities for easy concurrent programming.
- go-kvfile - File format for storing a compressed key/value store
Lightweight / modified forks of other libraries:
- Cayley - Go Graph database forked from cayleygraph
- FlexLayout - Interactive drag/drop layout manager for React
- fastjson - Reflection-free json parser and validator
- go-brotli-decoder - Pure Go Brotli decompressor
- go-indexeddb - Low-level Go driver for IndexedDB in Wasm
- goprotowrap - Package-at-a-time wrapper for protoc
- json-iterator-lite - Minimal and fast reflection-free json marshal and unmarshal for Go
๐ Support
Please open a GitHub issue with any questions / issues / suggestions.
... or feel free to reach out via Email or Discord!
License
MIT or Apache-2.0
An Aperture Robotics, LLC project.