gowebly – Una herramienta CLI de última generación para crear increíbles aplicaciones web en Go utilizando htmx e hyperscript
English | Русский | 中文 | Español
Esta herramienta CLI puede construir fácilmente increíbles aplicaciones web con Go en el backend, utilizando htmx & hyperscript y los más populares atomic/utility-first frameworks CSS en el frontend.
Características:
- 100% gratis y de código abierto bajo la licencia Apache 2.0 licencia;
- Para cualquier nivel de conocimiento y experiencia técnica del desarrollador;
- Bien documentado, con muchos consejos y ayudas de los autores;
- CLI inteligente que hace la mayor parte de la rutina de configuración y preparación para la producción;
- Ayuda a entrar más rápidamente en la pila tecnológica Go + htmx + hyperscript;
- La posibilidad de añadir simplemente a tu proyecto un framework CSS atómico/utility-first listo para usar y completamente personalizado;
- Admite el modo live-reloading para sus estilos CSS.
- Dispone de una biblioteca de ayudantes de fácil uso para su código Go;
- Contiene un completo ejemplo de cómo utilizarlo fuera de la caja.
💬 De los autores: Para que conozcas a fondo el proyecto, hemos grabado un breve 📺 vídeo y preparado un 📝 artículo de introducción en el que se muestran las principales características de la CLI
gowebly
.
Primero, descarga e instala Go. Se requiere la
versión 1.21
(o superior).
Ahora, puedes utilizar gowebly
sin instalación. Simplemente,
go run` para crear un nuevo proyecto con una
configuración por defecto:
go run github.com/gowebly/gowebly@latest create
¡Ya está! 🔥 Una maravillosa aplicación web, usando el paquete integrado net/http (como backend de Go), htmx & hyperscript está disponible en tus plantillas HTML de Go.
Si todavía quieres instalar gowebly
CLI en tu sistema por Golang, usa el
comando go install
:
go install github.com/gowebly/gowebly@latest
GNU/Linux y Apple macOS usuarios disponibles manera de instalar gowebly
CLI a través de Homebrew.
Toque una nueva fórmula:
brew tap gowebly/tap
Instale gowebly
:
brew install gowebly/tap/gowebly
Siéntete libre de usar gowebly
CLI desde nuestra
imagen Docker oficial y ejecutarlo en el contenedor aislado:
docker run --rm -it -v ${PWD}:${PWD} -w ${PWD} gowebly/gowebly:latest create
Descargue archivos exe
para Windows, deb
, rpm
, apk
o Arch Linux
desde la página Releases.
Para obtener una guía completa de uso y comprender los principios básicos de
la CLI gowebly
, hemos preparado una explicación exhaustiva de cada comando
a la vez en este archivo README.
💬 De los autores: Siempre valoramos tu tiempo y queremos que empieces a crear productos web realmente geniales en esta impresionante pila tecnológica lo antes posible.
Esperamos que encuentres respuesta a todas tus preguntas 👌 Pero, si no encuentras la información que necesitas, no dudes en crear una issue o enviar un PR a este repositorio.
Comando para crear un archivo de configuración por defecto
(.gowebly.yml
) en la carpeta actual.
gowebly init
💡 Nota: Por supuesto, puedes saltarte este paso si te sientes cómodo con la siguiente configuración por defecto para tu nuevo proyecto:
- Los nombres de los módulos Go (
go.mod
) ypackage.json
se establecen en project;- Sin ningún framework Go para la parte backend (sólo paquete integrado net/http);
- Sin ningún framework CSS para la parte frontend (sólo estilos por defecto para el código de ejemplo);
- El entorno de ejecución JavaScript para la parte frontend utilizará Node.js;
- El puerto del servidor es
5000
, tiempo de espera (en segundos):5
para lectura,10
para escritura;- Últimas versiones de htmx & hyperscript.
Normalmente, un archivo de configuración creado contiene las siguientes opciones:
backend:
module_name: project # (string) option can be any name of your Go module (for example, 'github.com/user/project')
go_framework: default # (string) option can be one of the values: 'fiber', 'echo', 'chi', or 'default'
port: 5000 # (int) option can be any port that is not taken up on your system
timeout:
read: 5 # (int) option can be any number of seconds, 5 is recommended
write: 10 # (int) option can be any number of seconds, 10 is recommended
frontend:
package_name: project # (string) option can be any name of your package.json (for example, 'project')
css_framework: default # (string) option can be one of the values: 'tailwindcss', 'unocss', or 'default'
runtime_environment: default # (string) option can be one of the values: 'bun', or 'default'
htmx: latest # (string) option can be any existing version
hyperscript: latest # (string) option can be any existing version
Pero, puedes elegir cualquier Go framework para el backend de tu proyecto:
Go framework | Descripción |
---|---|
default |
No uses ningún framework Go (solo el paquete integrado net/http) |
fiber |
Utilizar un backend Go con el framework web Fiber |
echo |
Utilizar un backend Go con el framework web Echo |
chi |
Utilizar un backend Go con el enrutador componible chi |
Además, puedes elegir versiones de htmx, hyperscript, y uno de los más populares atomic/utility-first CSS framework para tu proyecto:
CSS framework | Descripción |
---|---|
default |
No utilice ningún framework CSS (solo estilos por defecto para el ejemplo de código) |
tailwindcss |
Utilizar Tailwind CSS como framework CSS |
unocss |
Utilizar UnoCSS como framework CSS |
Además, puede establecer uno de los entornos de ejecución de JavaScript para su parte frontend:
JavaScript runtime | Descripción |
---|---|
default |
Utilizar Node.js como en torno de ejecución de JavaScript |
bun |
Utilizar Bun como en torno de ejecución de JavaScript |
Comando para crear un nuevo proyecto con el backend Go, htmx & hyperscript, y (opcionalmente) atomic/utility-first CSS framework.
gowebly create
💡 Nota: Si no ejecutas el comando
init
para crear un archivo de configuración (.gowebly.yml
), el CLI degowebly
crea un nuevo proyecto con una configuración por defecto.
Cada vez que haga crear
comando para su proyecto:
- CLI valida la configuración y aplica todos los ajustes al proyecto actual;
- CLI prepara la parte backend de tu proyecto (genera la estructura del
proyecto y los archivos de utilidades necesarios, ejecuta
go mod tidy
); - CLI prepara la parte frontend de tu proyecto (genera los archivos de
utilidades necesarios, ejecuta
npm|bun install
ynpm|bun run build:dev
por primera vez); - CLI descarga versiones minimizadas de htmx y hyperscript (desde
el CDN oficial y de confianza unpkg.com) a la carpeta
./static
y las coloca como etiquetas separadas<script>
(al final de la etiqueta<body>
) en la plantilla Go HTMLtemplates/main.html
.
Típicamente, un proyecto creado contiene los siguientes archivos y carpetas:
.
├── assets
│ └── styles.css
├── static
│ ├── favicon.ico
│ ├── htmx.min.js
│ ├── hyperscript.min.js
│ └── styles.css
├── templates
│ ├── pages
│ │ └── index.html
│ └── main.html
├── .gitignore
├── go.mod
├── go.sum
├── handlers.go
├── main.go
├── package-lock.json
├── package.json
└── server.go
Comando para ejecutar su proyecto en modo desarrollo (no producción).
gowebly run
💡 Nota: Si no ejecutas el comando
init
para crear un fichero de configuración (.gowebly.yml
), el CLI degowebly
ejecuta tu proyecto con una configuración por defecto.
Cada vez que haga run
comando para su proyecto:
- CLI válida la configuración y aplica todos los ajustes al proyecto actual;
- CLI prepara la parte frontend de tu proyecto (ejecuta
npm|bun run watch
); - CLI prepara una versión de desarrollo (no de producción) del framework
CSS seleccionado en la carpeta
./static
y lo coloca como una etiqueta<link>
(al final de la etiqueta<head>
) en la plantilla Go HTMLtemplates/main.html
; - CLI inicia el backend de un proyecto con los ajustes de la configuración
por defecto (o del archivo de configuración
.gowebly.yml
) mediante un simple comandogo run
.
Comando para construir su proyecto para producción y preparar los archivos Docker para el despliegue.
gowebly build [OPTION]
💡 Nota: Si no ejecutas el comando
init
para crear un archivo de configuración (.gowebly.yml
), el CLI degowebly
construye tu proyecto con una configuración por defecto.
Puedes añadir las siguientes opciones:
Opción | Descripción | Requerido? |
---|---|---|
--skip-docker |
Omitir el proceso de generación de los archivos Docker (es útil si usted tiene su propio) | no |
Cada vez que haga build
comando para su proyecto:
- CLI valida la configuración y aplica todos los ajustes al proyecto actual;
- CLI descarga versiones minimizadas de htmx y hyperscript (desde
el CDN oficial y de confianza unpkg.com) a la carpeta
./static
y las coloca como etiquetas separadas<script>
(al final de la etiqueta<body>
) en la plantilla Go HTMLtemplates/main.html
; - CLI prepara una versión de producción del CSS framework seleccionado
y lo coloca como una etiqueta
<link>
(al final de la etiqueta<head>
) en la plantilla Go HTMLtemplates/main.html
; - Si la opción
--skip-docker
no está activada, CLI genera unos archivos Docker claros y bien documentados (.dockerignore
,Dockerfile
,docker-compose.yml
) en la raíz de la carpeta del proyecto para desplegarlo en contenedores aislados vía Portainer (recomendado), o manualmente, a tu servidor remoto.
La CLI gowebly
tiene una librería de helpers
amigables para tu código. Esto te ayudará a empezar a construir hermosas
aplicaciones web en Go aún más rápido.
go get -u github.com/gowebly/helpers
💡 Nota: La librería
gowebly helpers
está ya incluida en el backend Go que se crea con el comandocreate
, pero puedes usar estos helpers en otros proyectos también.
Cuéntanos, ¿cuántas veces has tenido que empezar un nuevo proyecto desde cero y has tenido que hacer dolorosas configuraciones manuales? 🤔 Especialmente, cuando recién te estás familiarizando con una nueva tecnología o stack, donde todo es nuevo para ti.
Para muchos desarrolladores, incluidos nosotros, este proceso es lo más tedioso e incluso deprimente posible, y no conlleva ninguna carga de trabajo útil. Es un proceso muy frustrante que puede alejar mucho a cualquier desarrollador de la tecnología.
¿Por qué no dar todo ese horrible trabajo manual a las máquinas? Dejemos que hagan todo el trabajo duro por nosotros, y nos limitaremos a crear increíbles productos web sin tener que pensar en compilar y desplegar.
Es por eso que hemos generado la CLI gowebly
y su biblioteca de ayudantes,
que le ayuda a iniciar una increíble aplicación web en Go utilizando
htmx, hyperscript y populares atómica/utilidad-primero
frameworks CSS.
¡Estamos aquí para salvarte (y salvarnos) de este dolor rutinario! ✨
💬 De los autores: Anteriormente, ya hemos salvado el mundo una vez, fue Create Go App (sí, ese también es nuestro proyecto). Las estadísticas de GitHub stars de este proyecto no pueden mentir: más de 2.2k desarrolladores de cualquier nivel y diferentes países comienzan un nuevo proyecto a través de esta herramienta CLI.
¡Si te ha gustado el proyecto gowebly
y te ha resultado útil para tus
tareas, por favor, dale un 🌟 GitHub Star y haz clic en 👁️ Watch para
no perderte las notificaciones sobre nuevas versiones!
Y ahora, ¡te invito a participar en este proyecto! Trabajemos juntos para crear la herramienta más útil para desarrolladores en la web hoy en día.
- Issues: haz preguntas y envía tus funcionalidades.
- Pull requests: envía tus mejoras a la corriente.
¡Tus PR y issues son bienvenidos! Gracias 😘
gowebly
es un software libre y de código abierto licenciado
bajo la Licencia Apache 2.0, creado y soportado por
Vic Shóstak con 🩵 para personas y robots. Logotipo oficial
distribuido bajo Licencia Creative Commons (CC BY-SA
4.0 International).