Skip to content

slice-soft/keel

Repository files navigation

Keel

Keel is a Go framework for building REST APIs with modular architecture, automatic OpenAPI, and built-in validation.

CI Go Go Report Card Go Reference License Made in Colombia

Features

  • 🚀 Quick Project Scaffolding - Create new projects with best practices built-in
  • 🧩 Module Generation - Generate controllers, services, repositories, and more
  • 🔄 Live Reload - Built-in development server with hot reload
  • Fast & Lightweight - Written in Go, optimized for performance
  • 📦 Auto-updates - Stay up-to-date with the latest features

Installation

# Homebrew (recommended)
brew tap slice-soft/tap
brew install slice-soft/tap/keel

# Or with Go install
go install github.com/slice-soft/keel@latest

Quick Start

Create a new project

keel new my-app
cd my-app

Generate a module

keel generate module users

This creates:

  • users/module.go - Module definition
  • users/controller.go - HTTP handlers
  • users/service.go - Business logic
  • users/repository.go - Data access layer

Run development server

keel run

Commands

keel new <project-name>

Create a new Keel project with the complete structure:

keel new my-api

keel generate [type] [name]

Generate different components:

# Generate a complete module
keel generate module posts

# Generate individual components
keel generate controller posts
keel generate service posts
keel generate repository posts
keel generate middleware auth
keel generate guard admin
keel generate dto create-user
keel generate crud products

keel run

Start the development server with live reload:

keel run

keel upgrade

Upgrade Keel CLI to the latest version:

keel upgrade

keel version

Show the installed version:

keel version

Project Structure

my-app/
├── main.go           # Application entry point
├── go.mod            # Go module definition
├── .env              # Environment variables
├── air.toml          # Live reload configuration
└── modules/
    └── users/
        ├── module.go      # Module registration
        ├── controller.go  # HTTP handlers
        ├── service.go     # Business logic
        └── repository.go  # Data layer

Configuration

Keel projects use a keel.toml file for configuration:

[app]
name = "my-app"
version = "0.1.0"

[server]
port = 8080
host = "localhost"

Contributing

See CONTRIBUTING.md for setup and repository-specific rules. The base workflow, commit conventions, and community standards live in ss-community.

Community

Document
CONTRIBUTING.md Workflow, commit conventions, and PR guidelines
GOVERNANCE.md Decision-making, roles, and release process
CODE_OF_CONDUCT.md Community standards
VERSIONING.md SemVer policy and breaking changes
SECURITY.md How to report vulnerabilities
MAINTAINERS.md Active maintainers

License

MIT License - see LICENSE for details.

Links


Made by SliceSoft — Colombia 💙

About

Keel CLI — modular scaffolding and automation tooling for building structured services

Resources

License

Contributing

Stars

Watchers

Forks

Packages