SublimeGo est un framework Go moderne inspiré par Laravel Filament, conçu pour accélérer le développement d'applications web robustes avec une architecture propre et maintenable.
Le framework intègre nativement une stack technique de qualité professionnelle :
- Langage : Go 1.24+
- ORM : Ent (Facebook) - Type-safe, extensible
- Templating : Templ - Type-safe HTML templates
- UI : Tailwind CSS (v4), Alpine.js, HTMX
- Base de données : SQLite (par défaut), extensible vers PostgreSQL/MySQL
- CLI : Cobra - Génération de code et gestion de projet
- Resources System : CRUD complet avec génération automatique
- Form Builder : Constructeur de formulaires fluent avec validation
- Table Builder : Tables interactives avec tri, filtres et pagination
- Actions System : Actions personnalisables avec modales de confirmation
- Widget System : Stats cards et graphiques (ApexCharts)
- Navigation avancée : Groupes, badges, tri automatique
- Authentication : Système d'auth intégré avec sessions
- Multi-Panel : Support de plusieurs panels d'administration
# Cloner le projet
git clone https://github.com/bozz33/SublimeGo.git
cd SublimeGo
# Installer les dépendances
go mod download
# Initialiser le projet (DB, migrations, admin)
go run cmd/sublimego/main.go init
# Démarrer le serveur
go run cmd/sublimego/main.go serveLe serveur démarre sur http://localhost:8080
# Créer une nouvelle resource
sublimego make:resource Product
# Créer une migration
sublimego make:migration create_products_table
# Lister les resources
sublimego resource list# Exécuter les migrations
sublimego db migrate
# Rollback
sublimego db rollback
# Reset complet
sublimego db reset# Démarrer en mode développement
sublimego serve
# Mode production
sublimego serve --env=production# Lancer la suite de tests complète
go test ./...
# Tests avec couverture
go test -cover ./...
# Tests d'un package spécifique
go test ./pkg/actions/...- Architecture : ARCHITECTURE.md
- Resources : RESOURCES_GUIDE.md
- Templating : TEMPLATING.md
- Configuration : PANEL_CONFIG.md
SublimeGo/
├── cmd/sublimego/ # Point d'entrée CLI
├── internal/
│ ├── ent/ # Schémas et entités ORM
│ ├── resources/ # Resources CRUD
│ ├── providers/ # Providers de données
│ └── registry/ # Enregistrement des resources
├── pkg/
│ ├── actions/ # Système d'actions
│ ├── auth/ # Authentification
│ ├── engine/ # Moteur du framework
│ ├── form/ # Form Builder
│ ├── table/ # Table Builder
│ ├── widget/ # Widgets dashboard
│ └── ui/ # Templates et layouts
├── views/ # Templates Templ
├── public/ # Assets statiques
└── test/ # Tests d'intégration
package product
import (
"github.com/bozz33/SublimeGo/pkg/engine"
"github.com/bozz33/SublimeGo/pkg/form"
"github.com/bozz33/SublimeGo/pkg/table"
)
type ProductResource struct {
engine.BaseResource
}
func (r *ProductResource) Schema() *form.Form {
return form.New().SetSchema(
form.Text("name").Label("Nom").Required(),
form.Textarea("description").Label("Description"),
form.Number("price").Label("Prix").Required(),
)
}
func (r *ProductResource) Table() *table.Table {
return table.New(r.GetData()).
WithColumns(
table.Text("name").Label("Nom").Sortable(),
table.Badge("status").Label("Statut"),
table.Text("price").Label("Prix"),
).
SetActions(
actions.EditAction("/admin/products"),
actions.DeleteAction("/admin/products"),
)
}Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour les guidelines.
Ce projet est sous licence MIT. Voir LICENSE pour plus de détails.
- Inspiré par Laravel Filament
- Propulsé par Ent et Templ
Développé avec ❤️ par la BozzDev