Command Palette

Search for a command to run...

What is Statigo

A lightweight Go web framework for building static-first, SEO-optimized websites.

What is Statigo?

Statigo is a framework designed for content-driven websites that prioritize performance and search engine optimization. Unlike dynamic-heavy frameworks, Statigo takes a static-first approach:

  • Prerender pages at build time for instant page loads and perfect SEO
  • Serve static HTML by default, with optional dynamic features
  • Cache everything with a two-tier (memory + disk) caching system
  • Deploy as a single binary with all assets embedded

It's ideal for documentation sites, blogs, marketing pages, and any content-focused web application where speed and SEO matter more than real-time dynamic features.

Features

  • Performance - Two-tier caching (memory + disk) with Brotli compression
  • SEO - Canonical URLs, hreflang links, sitemaps, and structured data
  • i18n - Multi-language support with URL-based language routing
  • Security - Rate limiting, IP banning, honeypot, security headers
  • Deployment - Single binary with embedded assets
  • CLI - Prerender and cache management commands

Quick Start

# Clone the repository
git clone https://github.com/statigo/statigo.git
cd statigo

# Run the development server
make dev

# Or build and run
make build
./statigo

Visit http://localhost:8080 to see the example site.

Documentation

Project Structure

statigo/
├── framework/          # Framework packages
│   ├── router/        # Multi-language routing
│   ├── middleware/    # HTTP middleware
│   ├── cache/         # Two-tier caching
│   ├── templates/     # HTML rendering
│   ├── i18n/          # Internationalization
│   ├── security/      # IP ban list
│   ├── health/        # Health checks
│   ├── logger/        # Structured logging
│   ├── client/        # HTTP client
│   ├── cli/           # CLI commands
│   └── ...
├── example/           # Example handlers
├── templates/         # HTML templates
├── static/           # Static assets
├── translations/     # Translation files
├── config/           # Configuration files
└── main.go           # Application entry point

Configuration

Copy .env.example to .env and configure:

PORT=8080
BASE_URL=http://localhost:8080
LOG_LEVEL=INFO
CACHE_DIR=./data/cache
RATE_LIMIT_RPS=10
RATE_LIMIT_BURST=20

License

MIT License - see LICENSE for details.