Structify
Multilenguaje project scaffolding CLI basado en arquitecturas de software.

What is Structify
Structify ayuda a desarrolladores a arrancar proyectos con una estructura consistente y lista para extender, reduciendo el tiempo dedicado a copiar/pegar boilerplate.
En lugar de comenzar desde cero, eliges una arquitectura (por ejemplo Clean Architecture o Vertical Slice) y un lenguaje (Go, TypeScript, Rust). Structify genera la estructura base, incluyendo endpoints de ejemplo, capas y (cuando aplica) stubs por transporte u ORM.
Quick Start
go install github.com/jamt29/structify@latest
structify new --template clean-architecture-go --name my-app --output ./my-app
Installation
Homebrew (coming soon)
brew install structify # coming soon
Script (placeholder)
curl -fsSL https://structify.dev/install.sh | sh # coming soon
Go install
go install github.com/jamt29/structify@latest
Binary releases
Descarga el binario desde GitHub Releases.
Built-in Templates
| Name |
Language |
Architecture |
Description |
clean-architecture-go |
Go |
clean |
Clean Architecture en Go con stubs HTTP/gRPC |
vertical-slice-go |
Go |
vertical-slice |
Vertical Slice en Go con GET /health |
clean-architecture-ts |
TypeScript |
clean |
Clean Architecture en TS con runtime express/fastify (stubs) |
vertical-slice-ts |
TypeScript |
vertical-slice |
Vertical Slice en TS con GET /health |
clean-architecture-rust |
Rust |
clean |
Clean Architecture en Rust con transport axum/actix (stubs) |
Usage
Crear un proyecto (modo interactivo)
structify new
Crear un proyecto (modo no interactivo)
structify new --template clean-architecture-go --name testproject --output /tmp/testproj --dry-run
Output esperado (ejemplo):
Dry run — no files will be written.
Template : clean-architecture-go
Files that would be created:
cmd/main.go
internal/transport/http/router.go
Steps that would run:
✓ go mod init ...
✓ go mod tidy
Gestionar templates
structify template list
structify template info clean-architecture-go
structify template validate ./path-to-template
Instalar templates desde GitHub
structify template add github.com/<user>/<repo>
Creating Templates
Formato del repo de templates: docs/template-format.md.
Referencia del DSL scaffold.yaml: docs/dsl-reference.md.
Contributing
- Clona el repo.
- Ejecuta tests:
go test ./...
- Verifica el build:
go build ./...
Release con GoReleaser
Si no tienes GoReleaser instalado:
go install github.com/goreleaser/goreleaser@latest
Luego valida la config:
goreleaser check
License
MIT