Ddonisgo
Features

A pragmatic toolbox for modular Go backends

Infrastructure in the core, features in plugins. Here's what donisgo ships with so you can focus on your business logic.

Differentiators

What makes donisgo different

πŸ€–

Dibangun untuk AI

Sangat mudah dipahami oleh AI β€” clear patterns, explicit interfaces, tidak ada magic. AI agents bisa baca, pahami, dan extend project dengan minimal context. Cocok untuk alur kerja AI-assisted development.

  • βœ“ Pattern yang clear dan predictable
  • βœ“ Generate plugin, handler, service dengan benar
  • βœ“ Tidak ada hidden magic β€” semua explicit
πŸŽ“

Cocok untuk Belajar Go

Belajar Go dengan pola yang benar dari awal. Plugin system mengajarkan services, interfaces, dependency injection, dan clean architecture secara natural β€” bukan teori, tapi dipraktikkan langsung.

  • βœ“ Services, interfaces, DI dari hari pertama
  • βœ“ Explicit registration β€” tidak ada auto-discovery ajaib
  • βœ“ Pisah handler β†’ service β†’ DB secara natural
Features

Dan banyak lagi

Beyond that, here's everything donisgo ships with out of the box.

🧩

Plugin architecture

A single Plugin interface covers middleware, routes, services, migrations and console commands. Features are self-contained packages in plugins/, keeping the framework core clean and upgradeable.

πŸ”Œ

Plugin Registry contracts

Typed interface contracts in plugins/plugin_registry let plugins provide and consume services without importing each other. Delegation functions are nil-guarded β€” a missing provider is a safe no-op, not a crash.

⚑

CLI plugin generator

console plugin new scaffolds a plugin with minimal, CRUD or middleware templates, including handlers, services, events and timestamped migration files in Laravel style.

πŸ—„οΈ

Database & migrations

GORM over PostgreSQL, MySQL or MariaDB. Versioned up/down SQL migrations with core + per-plugin ordering, run via console migrate.

πŸ“¨

Event bus

Async pub/sub with events.Publish / Subscribe plus a request–reply helper for safe synchronous data sync between plugins, with deadline-aware cancellation.

πŸ›‘οΈ

Auth & JWT utilities

Stateless, DB-agnostic JWT sign/parse, custom claims, opaque refresh tokens, secret encryption β€” designed to be wrapped by your own auth plugin.

🌐

Built-in pages plugin

A framework-owned plugin (always registered last) serves your SPA and catches wildcard routes, redirects /spa to /, and returns JSON 404 for unknown API paths.

πŸ“¦

Storage & cache

Local/S3 storage abstraction with public URL helpers, plus a KeyDB/Redis client for flash messages and fast lookups.

βœ‰οΈ

Mailer & transaction helpers

SMTP mailer with an async queue, and WithTransaction helpers for deterministic, short-lived DB transactions.

πŸ“„

Swagger out of the box

Auto-generated API docs via swaggo/gin-swagger β€” annotate your handlers and get browsable docs served by the framework.

πŸ”

CORS & environment config

Composable CORS origins from env, centralized env-driven configuration (.env), and permissive-umask file handling for group deployments.

πŸ› οΈ

Console toolbelt

Migration commands, plugin generator, seed command, and a user-management stub β€” everything runs from one Cobra-based CLI.

See it in action

Run the quick start and have a plugin generating in under a minute.