{"id":25105096,"url":"https://github.com/samznd/goscaf","last_synced_at":"2025-08-02T20:32:49.967Z","repository":{"id":275801530,"uuid":"925275911","full_name":"samznd/goscaf","owner":"samznd","description":"A command-line interface tool for quickly generating Go web application boilerplate code with a solid scaffolding structure and best practices.","archived":false,"fork":false,"pushed_at":"2025-04-18T09:15:54.000Z","size":49,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-18T22:48:27.964Z","etag":null,"topics":["api","backend","backend-development","boilerplate","cli-tool","code-generator","devtool","fiber","gin","go","go-cli","go-web","golang","gorm","open-source","postgres","project-generator","restful-api","scaffolding","web-framework"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samznd.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-31T15:15:04.000Z","updated_at":"2025-04-18T09:12:39.000Z","dependencies_parsed_at":"2025-03-26T10:40:25.370Z","dependency_job_id":null,"html_url":"https://github.com/samznd/goscaf","commit_stats":null,"previous_names":["samznd/go-boilerplate-cli","samznd/goscaf"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/samznd/goscaf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samznd%2Fgoscaf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samznd%2Fgoscaf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samznd%2Fgoscaf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samznd%2Fgoscaf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samznd","download_url":"https://codeload.github.com/samznd/goscaf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samznd%2Fgoscaf/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268448362,"owners_count":24252019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","backend","backend-development","boilerplate","cli-tool","code-generator","devtool","fiber","gin","go","go-cli","go-web","golang","gorm","open-source","postgres","project-generator","restful-api","scaffolding","web-framework"],"created_at":"2025-02-07T22:33:34.766Z","updated_at":"2025-08-02T20:32:49.936Z","avatar_url":"https://github.com/samznd.png","language":"Go","readme":"# GoScaf CLI\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/samznd/goscaf.svg)](https://pkg.go.dev/github.com/samznd/goscaf)\n[![GitHub release](https://img.shields.io/github/v/release/samznd/goscaf.svg)](https://github.com/samznd/goscaf/releases)\n\n\n**GoScaf** is a powerful command-line tool for bootstrapping Go web applications with clean architecture, flexible technology combinations, and best practices baked in.\n\n## 🚀 Features\n\n- Quick project scaffolding with interactive CLI\n- Modular selection of Web Framework, Database, and ORM\n- Clean and extensible project structure\n- Built-in support for environment configs and Docker\n- Automated dependency installation\n- Consistent and idiomatic Go code generation\n\n## 📦 Installation\n\n### Prerequisites\n\n- Go 1.16 or higher\n\n### Installation\n```bash\ngo install github.com/samznd/goscaf@latest\n\n## Getting Started.\n\n### Create a new project\n\ngoscaf init\n```\n\nThis will start an interactive prompt asking for:\n\n1. Project name\n2. Web framework selection (Fiber/Gin/Echo/Chi/Iris)\n3. Database system (Postgres/MySQL/SQLite)\n4. ORM preference (Yes/No)\n5. If Yes to ORM, choose between GORM/XORM/Ent\n\n### Example\n\n```bash\n$ goscaf init\n? What is your project name? mywebapp\n? Choose your web framework: Fiber\n? Choose your database system: Postgres\n? Would you like to use an ORM? Yes\n? Choose your ORM framework: GORM\n✅ Project initialized successfully!\n```\n\n## Project Structure\n\nThe generated project follows a standard Go project layout:\n\n```\nyour-project/\n├── cmd/\n│   └── main.go          # Application entry point\n├── config/\n│   └── database.go      # Database configuration\n├── internal/\n│   ├── middleware/      # HTTP middleware\n│   ├── models/          # Data models\n│   ├── repositories/    # Data access layer\n│   ├── services/        # Business logic\n│   ├── handlers/        # HTTP request handlers\n│   └── routes/          # Route definitions\n├── pkg/                 # Public library code\n│   ├── utils/           # Utility functions\n├── scripts/             # Build and deployment scripts\n└── .env                 # Environment variables\n```\n\n\n## Supported Technologies\n\n### Web Frameworks\n\n#### Fiber\n- High-performance, Express-inspired web framework\n- Great for REST APIs\n- Minimal memory allocation\n- Fast HTTP routing\n\n#### Gin\n- Full-featured web framework\n- Excellent middleware support\n- High performance\n- Wide community adoption\n\n#### Echo\n- Minimalist web framework\n- High performance\n- Extensible middleware\n- Built-in support for data binding and validation\n\n#### Chi\n- Lightweight, idiomatic web framework\n- Focused on composability and maintainability\n- Efficient router\n- Middleware support\n\n#### Iris\n- Fast, full-featured web framework\n- Built-in MVC support\n- Rich routing capabilities\n- Extensive middleware ecosystem\n\n### Databases\n\n- **PostgreSQL**: Advanced open-source database\n- **MySQL**: Popular open-source database\n- **SQLite**: Lightweight file-based database\n\n### ORMs\n\n- **GORM**: The most popular Go ORM\n- **XORM**: Simple and powerful ORM\n- **Ent**: Facebook's entity framework\n\n## Development\n\n### Requirements\n\n- Go 1.16+\n\n### Building from source\n\n```bash\ngit clone https://github.com/yourusername/goscaf.git\ncd goscaf\ngo build\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- [Standard Go Project Layout](https://github.com/golang-standards/project-layout)\n- [Cobra](https://github.com/spf13/cobra)\n- [Survey](https://github.com/AlecAivazis/survey)\n\n## Roadmap\n\n- [x] Add support for more web frameworks\n- [x] Add Docker configuration\n- [ ] Add GraphQL support\n- [ ] Add gRPC support\n\n \n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamznd%2Fgoscaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamznd%2Fgoscaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamznd%2Fgoscaf/lists"}