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.