442e5c7f126be1ecfc1fd071871c5ad17ca3eb1b
Fes
A lightweight static site generator built with Go and Lua. Write your websites in Lua and generate beautiful HTML with a modern dark theme.
Features
- 🚀 Simple & Fast: Minimal setup, fast development workflow
- 🎨 Beautiful Default Theme: Modern dark theme with clean typography
- 📝 Lua-Powered: Write your site logic in Lua for flexibility
- ⚙️ TOML Configuration: Simple configuration via
Fes.toml - 🔧 Easy CLI: Two simple commands to get started
Installation
Prerequisites
- Go 1.25.4 or later
- Git (for author name detection)
Build from Source
git clone <repository-url>
cd fes
go build -o fes
Usage
Create a New Project
fes new <project_dir>
This creates a new project directory with:
www/index.lua- Your main Lua fileFes.toml- Project configuration
Run Development Server
fes run <project_dir> [-p <port>]
Starts a local development server (default port: 3000).
Example:
fes run my-site -p 8080
Project Structure
my-site/
├── Fes.toml # Project configuration
└── www/
└── index.lua # Main Lua file
Configuration
Edit Fes.toml to configure your site:
[site]
name = "My Site"
version = "0.0.1"
authors = ["Your Name"]
[fes]
version = "1.0.0"
CUSTOM_CSS = "" # Optional custom CSS
Writing Your Site
Your www/index.lua file should use the Fes API to build your site:
local fes = require("fes")
local site = fes.site_builder()
site:h1("Hello, World!")
site:h2("Welcome to Fes")
site:custom("<p>This is a custom HTML paragraph.</p>")
return site
Available Methods
site:h1(text)- Heading 1site:h2(text)- Heading 2site:h3(text)- Heading 3site:h4(text)- Heading 4site:h5(text)- Heading 5site:h6(text)- Heading 6site:custom(html)- Insert custom HTMLsite:version()- Get site version from config
Standard Library
Access version information via fes.std:
local fes = require("fes")
local site = fes.site_builder()
site:h2("Fes version: " .. fes.std.fes_version())
site:h2("Site version: " .. fes.std.site_version())
return site
Example
See the test/ directory for a complete example project.
License
ISC License
Copyright (c) 2025 fSD
See COPYING for full license text.
Description
Languages
Lua
53.3%
Go
46.7%