Framework de desarrollo full stack con interfaz TUI para aplicaciones web usando solo Go estándar, HTML, CSS y JavaScript vanilla. Elimina completamente los archivos de configuración usando convenciones de estructura de directorios.
- Motivación
- Características
- Instalación
- Uso
- Estructura del Proyecto
- Configuración
- Hoja de ruta
- Agradecimientos
- Contribuir
GoDev resuelve un problema específico: desarrollar aplicaciones web full stack usando únicamente la librería estándar de Go + HTML, CSS y JavaScript vanilla, sin archivos de configuración.
- Convenciones > Configuración: La estructura de directorios ES la configuración
- Solo Go estándar: Sin dependencias externas complejas
- No frameworks frontend: Sin React, Vue, Angular - solo JavaScript vanilla
- Estructura obligatoria: Fuerza una estructura específica para eliminar configuraciones
- No es un bundler como Webpack/Vite (aunque empaqueta assets)
- No es compatible con frameworks frontend (React, Vue, etc.)
- No requiere conocimiento de WebAssembly (se maneja automáticamente)
- No usa archivos de configuración (godev.yml ya no existe)
Target: Desarrolladores que aprenden Go o quieren simplicidad extrema sin configuraciones interminables.
- Estructura obligatoria: Los directorios definen el tipo de aplicación
- Detección automática:
cmd/
,web/pwa/
,web/spa/
detectados automáticamente - Cero archivos de configuración: No más
godev.yml
,package.json
,webpack.config.js
- Backend + Frontend: Compila automáticamente Go estándar y WebAssembly
- Archivos monitoreados:
.go
,.html
,.css
,.js
- Prefijos inteligentes:
b.archivo.go
(backend),f.archivo.go
(frontend) - Recarga automática: Navegador se actualiza sin intervención manual
- Backend: Solo librería estándar de Go
- Frontend: WebAssembly compilado desde Go + JavaScript vanilla
- Assets: CSS y JS vanilla minificados automáticamente
- Sin transpiling: No TypeScript, no SASS, no JSX
- Ideal para VS Code: Integración perfecta en terminal
- Automatización del navegador: Chrome controlado automáticamente (tecla
W
) - Puerto HTTPS: 4430 con certificados de desarrollo
# 1. Instalar Go desde https://go.dev/dl/
go version
# 2. Instalar GoDev
go install -v github.com/cdvelop/godev/cmd/godev@latest
# 3. Usar en cualquier proyecto
cd tu-proyecto-go
godev
# Navega a tu directorio de proyecto y ejecuta:
godev
Eso es todo. GoDev detecta automáticamente la estructura y configura todo.
GoDev detectará automáticamente la estructura de tu proyecto y configurará el entorno de desarrollo apropiado.
cmd/
: Aplicación de consola (solo una permitida)pwa/
: Progressive Web Appspa/
: Single Page Applicationmpa/
: Multi-Page Application- Combinaciones válidas:
cmd + pwa
,cmd + spa
, ocmd + mpa
- Una sola arquitectura web: Solo puede existir una arquitectura web (
pwa/
ORspa/
ORmpa/
)
Cuando múltiples arquitecturas web coexisten:
- PWA (Prioridad 1): Máxima prioridad
- SPA (Prioridad 2): Segunda prioridad
- MPA (Prioridad 3): Tercera prioridad
cmd/
presente → Aplicación híbrida (CLI + Web)pwa/
presente → Progressive Web Appspa/
presente → Single Page Applicationmpa/
presente → Multi-Page Application- Múltiples arquitecturas → Aplica orden de prioridad (PWA > SPA > MPA)
- Ninguna arquitectura → Retorna
unknown
(manejador central decide)
- No hay archivos de configuración:
godev.yml
eliminado completamente - Estructura = Configuración: Los directorios definen el comportamiento
- Puerto fijo: 4430 (HTTPS) para desarrollo local
- Detección automática: Tipo de aplicación detectado por estructura de carpetas
Directorio | Propósito | Archivos Opcionales |
---|---|---|
cmd/AppName/ |
Aplicación consola | main.go |
pwa/ |
Progressive Web App | main.server.go , main.wasm.go |
spa/ |
Single Page App | main.server.go , main.wasm.go |
mpa/ |
Multi-Page App | main.server.go , main.wasm.go |
modules/ |
Lógica modular | *.go |
Reglas de Arquitectura:
- ✅ Una sola arquitectura web permitida por proyecto
- ✅ Prioridad automática: PWA(1) > SPA(2) > MPA(3)
- ✅ Aplicación híbrida:
cmd/
+ cualquier arquitectura web - ❌ No múltiples:
pwa/
+spa/
(se aplica prioridad con warning)
- Desarrolladores aprendiendo Go que quieren hacer web
- Proyectos que necesitan simplicidad extrema
- Equipos que odian configuraciones complejas
- Desarrollo con solo Go estándar + HTML/CSS/JS vanilla
- Proyectos con React, Vue, Angular
- Aplicaciones que requieren transpilación compleja
- Desarrollo con múltiples frameworks frontend
- Proyectos que necesitan configuración granular
Este proyecto no sería posible sin:
- github.com/fsnotify
- github.com/chromedp
- github.com/tdewolff/minify
- github.com/fstanis/screenresolution
Para problemas o soporte, por favor visita GitHub Issues.
si quieres participar en el proyecto puedes contactarme con un mensaje privado