Build fast web apps with plain HTML, CSS, JavaScript, and Go
No React, no TypeScript, no rules. Just you, your code — free, wild, and fast.
Main Features
The features are planned to be implemented in Vanilla framework.
Componentization
Vanilla introduces a powerful component system that extends standard HTML. Components are written as enhanced `.html` files and compiled into Go code at build time, enabling a unified full-stack development experience.
Routing
Vanilla includes a lightweight backend routing system—simple, clean, and effective for building page-based apps.
CSS Frameworks Integration
Vanilla offers out-of-the-box support for TailwindCSS and works seamlessly with Bootstrap and other popular CSS frameworks.
Event Bindings
Vanilla uses event delegation under the hood to bind template events to DOM efficiently and cleanly.
Domain Events
Inspired by RxJS and DDD patterns, Vanilla provides a simple, efficient, and memory-safe domain event system.
Directives
Vanilla templates support expressive directives, and variable interpolation—similar to HTMX, clean and declarative UI logic.
SSG
Vanilla follows a traditional server-rendered (SSR) model—similar to JSP, PHP, or Django—and supports both SSR and Static Site Generation (SSG) for fast, dependency-free deployments.
Type Bindings
Vanilla uses the `extern` macro to define strongly typed component properties. It supports Go types (structs, maps, slices) as well as JavaScript literal types, enabling type-safe data binding.
Remote Actions
Vanilla enables declarative remote actions that tightly bind UI events to backend handlers—compiled and linked at build time.
Remote Functions
Vanilla supports remote function calls, allowing components to directly invoke backend logic as if calling local functions.
WASM Functions
Vanilla supports calling backend logic through WebAssembly (WASM), enabling cross-platform compatibility and fast execution.
IDE Support (IntelliJ & VSCode)
Vanilla provides dedicated IDE plugins for IntelliJ and VSCode, offering an all-in-one development experience with syntax highlighting, linting, and autocomplete.
PWA Integration
Vanilla comes with built-in support for Progressive Web Apps (PWA), allowing offline-ready experiences and background sync out of the box.
CSR without Reactivity
Vanilla supports Client-Side Rendering (CSR) without a reactive runtime. Data is rendered where it lives—whether it comes from the client, a PWA, browser extension, or isolated systems that the server can't access.
Upcomping Roadmap
We’ll update the upcomping roadmap to reflect recent progress.
Template Engine
Next week.
GoLand IDE Support
Next week.
Frequently Asked Questions
Why are you building Vanilla?
First, We are building the Vanilla framework not because reactive web frameworks are hard, but because we assumed they’d be easy, and they weren’t. Second, We figured Go would already have a web framework like Rails, Django, or Next.js, but surprisingly, it doesn’t.
How does it work?
Vanilla is a framework built on top of a template engine and a compiler, and the Vanilla IDE plugin gives you an all-in-one dev environment. It works by turning component templates into Go source code, then compiles everything into a single executable. During this process, Vanilla uses Go’s embed feature to bundle all the static assets you need—like CSS, JS, images, and more—right into the binary. That means you can deploy your app without worrying about external dependencies.
Do I need React technical skills to use Vanilla?
No, building a Vanilla project just need plain JavaScript, HTML, CSS technical skills.