Build full-stack web apps in pure Go — tiny WebAssembly bundles, zero JS toolchain, built for the age of AI assistants.
TinyWasm is an ecosystem of Go libraries (and a batteries-included dev environment) for building web apps where Go is the only language — backend, frontend, and shared logic — compiled to the frontend via WebAssembly with the smallest possible binary (TinyGo-first).
👉 Start here: tinywasm/app — the TUI dev environment with live reload, MCP for AI assistants, and one-command setup (installation and quick start live there).
- 🟦 One language everywhere — share types, validation, and logic across client and server. No TypeScript, no npm, no bundlers.
- 🪶 Tiny WASM — ~200 KB–2 MB depending on mode; TinyGo-first, no hidden allocations.
- 🤖 Built for AI — a Model Context Protocol server lets assistants see your UI, read logs, and control compilation.
- 🧰 Typed construction harness — APIs designed so the code is easy to read and hard to get wrong: the compiler rejects mistakes, so even an assistant that doesn't know a library builds correctly.
- 🔧 Zero config — your project structure is the configuration.
Go's WebAssembly potential is huge, but standard-library packages (fmt, strings, strconv, errors) bloat binaries — hurting web performance, edge deployment, and distribution. TinyWasm provides lightweight, TinyGo-compatible implementations with a familiar API: drastic size reduction, no compilation warnings, predictable performance.
The libraries you'll use to build apps. The Activity badge shows each repo's last commit, pulled live from GitHub — click it to open that library's history.
| Package | Description | Activity |
|---|---|---|
| app | Full stack TUI development environment with live reload, test, deploy, CI/CD for web applications (PWA). | |
| binary | High-performance binary serialization library for Go, specifically designed for TinyGo compatibility. | |
| components | HTML components for the go web framework tinywasm. | |
| context | Minimalist context library for TinyGo. | |
| crypto | CryptoAutoLib port for TinyGo. | |
| deploy | Automated deployment service for Go applications. | |
| devflow | Complete Go development automation: project init, testing, versioning, updates, and backups. | |
| dom | Ultra-minimal DOM & event toolkit for Go (TinyGo WASM-optimized). | |
| fetch | A lightweight Go library that unifies HTTP requests across environments. | |
| fmt | Lightweight Go library that provides comprehensive string manipulation and formatting. | |
| form | Form generation using DOM and structs. | |
| goflare | Lightweight handler for building and deploying Go-based WebAssembly and JavaScript modules to Cloudflare. | |
| imagemin | Image size reduction tool for web projects. | |
| indexdb | IndexDB implementation with WebAssembly compiled with Go. | |
| json | A lightweight JSON wrapper for Go that optimizes WebAssembly binary size. | |
| jsvalue | Efficient conversions between JavaScript and Go for a WebAssembly environment. | |
| kvdb | TinyGo–compatible key–value store with a minimal API. | |
| mcp | Go implementation of the Model Context Protocol (MCP). | |
| PDF library designed for web rendering with WebAssembly, optimized for TinyGo compatibility. | ||
| postgres | PostgreSQL adapter implementing the tinywasm/orm Adapter interface. |
|
| sqlite | WebAssembly-first port of modernc.org/sqlite. | |
| sse | Client and event server, SSE protocol compatible with TinyGo. | |
| time | TinyGo-compatible time package for Go. | |
| unixid | Go library for generating unique, time-based IDs using Unix timestamps. | |
| user | User management library. |
We're building a Go-first web ecosystem and welcome contributions — Go ports of browser APIs, performance tools, starter templates, docs, and bug reports.
- 💬 Discussions · 🐞 Issues
- ⭐ Star the libraries you find useful — it helps others discover the ecosystem.