Enterprise SaaS Platform Built with Go, Gin, HTMX & Alpine.js

A professional, enterprise-grade SaaS application with a powerful plugin architecture, Supabase integration, and modern reactive UI.

Modern Tech Stack

Built with production-ready technologies

Go
Backend
Gin
Web Framework
Supabase
Database & Auth
HTMX
Dynamic UI
Alpine
Reactivity
Tailwind
Styling

Powerful Features

Everything you need to build and scale your SaaS

Secure Authentication

Built-in authentication with Supabase Auth. Support for OAuth, SSO, and MFA.

Plugin Architecture

Extensible plugin system for easy customization and feature additions.

Lightning Fast

Built with Go and HTMX for optimal performance and minimal JavaScript.

Supabase Integration

Seamless database and real-time subscriptions with Supabase.

Modern UI

Beautiful, responsive UI with Tailwind CSS and Alpine.js.

Developer Friendly

Clean code structure, comprehensive documentation, and easy to extend.

Plugin Architecture

Extensible system for building modular applications

How Plugins Work

  • 1

    Register

    Plugins register themselves with the plugin registry on startup.

  • 2

    Initialize

    Each plugin initializes with access to config, database, and logger.

  • 3

    Register Routes

    Plugins define their own HTTP routes and handlers.

  • 4

    Hook Events

    Plugins can respond to system events via hooks.

// Creating a Plugin
type Plugin struct {
    *plugins.BasePlugin
}

func NewPlugin() plugins.Plugin {
    return &Plugin{
        BasePlugin: plugins.NewBasePlugin(
            "myplugin",
            "1.0.0",
            "My Plugin",
            "Author",
        ),
    }
}

func (p *Plugin) RegisterRoutes(r *gin.RouterGroup, auth gin.HandlerFunc) {
    r.GET("/", auth, p.handler)
}

Project Structure

Clean, organized codebase following Go best practices

saas-platform/
├── cmd/api/              # Application entry point
├── internal/
│   ├── config/          # Configuration management
│   ├── handlers/        # HTTP request handlers
│   ├── middleware/      # Gin middleware
│   ├── plugins/         # Plugin system core
│   └── supabase/        # Supabase client
├── pkg/
│   └── logger/          # Structured logging
├── plugins/              # Plugin implementations
│   ├── dashboard/       # Dashboard plugin
│   ├── users/           # User management
│   └── settings/        # Settings plugin
├── web/
│   ├── static/          # Static assets
│   └── templates/       # HTML templates
└── migrations/           # Database migrations

Getting Started

Set up the project in minutes

1

Clone & Configure

git clone <repo>
cd saas-platform
cp .env.example .env
# Edit .env with your config
2

Install Dependencies

go mod download
go mod tidy
3

Run the App

go run cmd/api/main.go
# Server starts on :8080