Skip to content
/ godev Public

Entorno de desarrollo TUI full stack con recarga en vivo, test, despliegue, ci/cd para aplicaciones web (PWA) con Go, WebAssembly y TinyGo.

Notifications You must be signed in to change notification settings

cdvelop/godev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoDEV

Project Badges

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.

⚠️ Advertencia: Desarrollo en Progreso Este proyecto está actualmente en desarrollo activo, especialmente la interfaz TUI. Puede contener características inestables.

vista previa de godev tui

Tabla de Contenidos

Motivación

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.

🎯 Filosofía Cero 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

🚫 Lo que NO es GoDev

  • 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.

Características

🏗️ Framework por Convención

  • 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

🔥 Hot Reload Inteligente

  • 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

🌐 Stack Tecnológico Simple

  • 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

🖥️ Interfaz TUI Minimalista

  • 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

Instalación

📦 Instalación Actual (Requiere Go)

# 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

Uso

# 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.

Estructura del Proyecto

⚠️ ESTRUCTURA OBLIGATORIA - GoDev fuerza esta estructura para eliminar archivos de configuración:

📁 Tipos de Aplicación Detectados

  • cmd/: Aplicación de consola (solo una permitida)
  • pwa/: Progressive Web App
  • spa/: Single Page Application
  • mpa/: Multi-Page Application
  • Combinaciones válidas: cmd + pwa, cmd + spa, o cmd + mpa
  • Una sola arquitectura web: Solo puede existir una arquitectura web (pwa/ OR spa/ OR mpa/)

🎯 Prioridades de Arquitectura

Cuando múltiples arquitecturas web coexisten:

  • PWA (Prioridad 1): Máxima prioridad
  • SPA (Prioridad 2): Segunda prioridad
  • MPA (Prioridad 3): Tercera prioridad

📁 Detección Automática

  • cmd/ presente → Aplicación híbrida (CLI + Web)
  • pwa/ presente → Progressive Web App
  • spa/ presente → Single Page Application
  • mpa/ presente → Multi-Page Application
  • Múltiples arquitecturas → Aplica orden de prioridad (PWA > SPA > MPA)
  • Ninguna arquitectura → Retorna unknown (manejador central decide)

Configuración

Cero Configuración

  • 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

🎯 Convenciones Obligatorias

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)

🎯 ¿Para Quién es GoDev?

Ideal Para:

  • 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

NO es Para:

  • Proyectos con React, Vue, Angular
  • Aplicaciones que requieren transpilación compleja
  • Desarrollo con múltiples frameworks frontend
  • Proyectos que necesitan configuración granular

Agradecimientos

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.

Participar

si quieres participar en el proyecto puedes contactarme con un mensaje privado

About

Entorno de desarrollo TUI full stack con recarga en vivo, test, despliegue, ci/cd para aplicaciones web (PWA) con Go, WebAssembly y TinyGo.

Resources

Contributing

Stars

Watchers

Forks

Packages

No packages published