Skip to content

Core Framework

Core is a Web3 Framework for building production-grade Go desktop applications using Wails v3. It replaces Electron with a native Go backend while providing a modern, service-based architecture.

Why Core?

  • Native Performance: Go backend with native webview, no Chromium bloat
  • Service Architecture: Modular, testable services with dependency injection
  • MCP Integration: Built-in Model Context Protocol support for AI tooling
  • Cross-Platform: macOS, Windows, and Linux from a single codebase
  • TypeScript Bindings: Auto-generated bindings for frontend integration

Quick Example

package main

import (
    "embed"
    "log"

    "github.com/Snider/Core/pkg/core"
    "github.com/Snider/Core/pkg/display"
    "github.com/wailsapp/wails/v3/pkg/application"
)

//go:embed all:frontend/dist
var assets embed.FS

func main() {
    // Create the Core with services
    c, err := core.New(
        core.WithAssets(assets),
        core.WithService(display.NewService),
        core.WithServiceLock(),
    )
    if err != nil {
        log.Fatal(err)
    }

    // Create Wails app
    app := application.New(application.Options{
        Name: "MyApp",
    })

    // Run
    if err := app.Run(); err != nil {
        log.Fatal(err)
    }
}

Core Services

Service Description
Core Central service container and lifecycle management
Display Window management, dialogs, tray, clipboard
WebView JavaScript execution, DOM interaction, screenshots
MCP Model Context Protocol server for AI tool integration
Config Application configuration and state persistence
Crypt Encryption, signing, key management
I18n Internationalization and localization
IO File system operations
Workspace Project and path management

Getting Started

  1. Installation - Install Go, Wails, and Core
  2. Quick Start - Build your first app
  3. Architecture - Understand the design