https://github.com/subhasundardass/goapp
GoApp helps you structure large applications into **independent, plug-and-play modules** while maintaining a simple and predictable core system.
https://github.com/subhasundardass/goapp
datastar entity-framework fiber-framework golang template
Last synced: 23 days ago
JSON representation
GoApp helps you structure large applications into **independent, plug-and-play modules** while maintaining a simple and predictable core system.
- Host: GitHub
- URL: https://github.com/subhasundardass/goapp
- Owner: subhasundardass
- Created: 2026-06-05T13:08:39.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-06-06T15:35:34.000Z (about 1 month ago)
- Last Synced: 2026-06-06T17:19:17.740Z (about 1 month ago)
- Topics: datastar, entity-framework, fiber-framework, golang, template
- Language: Go
- Homepage:
- Size: 451 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚀 GoApp
A **modular, scalable Go-based business application framework** designed to build modern web applications with clean architecture, high extensibility, and strong separation of concerns.
GoApp helps you structure large applications into **independent, plug-and-play modules** while maintaining a simple and predictable core system.
---
## ✨ Features
- 🧩 Fully modular architecture (plugin-style system)
- ⚡ High-performance HTTP server powered by Fiber
- 🗄️ Database integration using Ent ORM
- 🔌 Automatic module bootstrap system
- 📦 Clean architecture: Handler → Service → Repository → DB
- 🔄 Event-driven communication system (EventBus)
- ⚙️ Centralized configuration via environment variables
- 🧠 Scalable core designed for large applications
- 🔐 Middleware support (logging, CORS, recovery, etc.)
- 🚀 Built for long-term maintainability and extensibility
---
## 🏗️ Architecture Overview
GoApp follows a **core + modules architecture**:
```
Core
├── Application (Bootstrap layer)
├── Container (Dependencies)
├── Registry (Module loader)
├── EventBus (Communication layer)
└── HTTP Server (Fiber)
Modules
├── Handler (HTTP layer)
├── Service (Business logic)
├── Repository (Data access layer)
└── Routes (API definitions)
```
Each module is **independent, self-contained, and reusable**.
---
## 📦 Module System
Modules in GoApp are designed to be:
- Self-registering
- Independently testable
- Isolated from other modules
- Extensible via services or events
**Example module structure:**
```
/modules/example
├── handler/
├── service/
├── repository/
└── module.go
└── manifest.json
```
---
## 📁 Project Structure
```
/core → Core framework (registry, config, container)
/modules → Feature modules (business logic)
/ent → ORM generated code
/internal → Internal utilities
main.go → Application entry point
```
---
## ⚙️ Configuration
GoApp uses environment-based configuration:
- `.env` file supported out of the box
- Central `Config` struct
- Supports development and production environments
- Feature toggles for enabling/disabling modules
---
## 🔄 Event System
GoApp includes a lightweight **EventBus system**:
- Publish/Subscribe pattern
- Decoupled module communication
- Useful for cross-module workflows
- Keeps modules fully independent
---
## 🚀 Getting Started
### 1. Clone the repository
```bash
git clone https://github.com/subhasundardass/goapp
cd goapp
```
### 2. Install dependencies
```bash
go mod tidy
```
### 3. Set up environment
```bash
cp .env.example .env
```
### 4. Run the application
```bash
go run cmd/web/main.go
or
make dev (hot reload)
```
---
## 📖 Documentation
Full architecture details, module development guide, and system design explanation are available here:
👉 [DOCUMENTATION.md](./DOCUMENTATION.md)
---
## 🎯 Design Principles
GoApp is built with these principles:
- **Simplicity over complexity** — avoid unnecessary abstractions
- **Modular independence** — each module stands on its own
- **Clear separation of concerns** — no logic bleeds between layers
- **Scalable architecture from day one** — designed to grow
- **Event-driven communication where needed** — loose coupling via EventBus
---
## 🧠 Ideal Use Cases
GoApp is suitable for building:
- Business applications
- SaaS platforms
- Admin dashboards
- Internal tools
- API-driven backend systems
---
## 🛣️ Roadmap
- [ ] Module dependency system
- [ ] Background job processing
- [ ] Multi-tenant support
- [ ] Plugin marketplace system
- [ ] Admin UI panel for module management
- [ ] Advanced permissions system
---
## 🤝 Contribution
GoApp is designed as a foundation framework, and contributions are welcome in:
- New modules
- Core enhancements
- Middleware extensions
- Event system improvements
---
## 📜 License
[MIT License](./LICENSE)
---
## ⭐ About
GoApp is a modular backend framework designed for building scalable business applications in Go with clean architecture and long-term extensibility in mind.