https://github.com/jrswab/go-htmx-forge
A blazing-fast Go template for building OpenBSD-ready web applications using Echo, HTMX, templ, and TailwindCSS with automated deployment workflows and Redis integration.
https://github.com/jrswab/go-htmx-forge
go-web-framework htmx openbsd tailwindcss templ
Last synced: 3 months ago
JSON representation
A blazing-fast Go template for building OpenBSD-ready web applications using Echo, HTMX, templ, and TailwindCSS with automated deployment workflows and Redis integration.
- Host: GitHub
- URL: https://github.com/jrswab/go-htmx-forge
- Owner: jrswab
- License: bsd-3-clause
- Created: 2025-01-27T02:30:38.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2025-01-27T02:56:33.000Z (3 months ago)
- Last Synced: 2025-01-27T03:25:41.512Z (3 months ago)
- Topics: go-web-framework, htmx, openbsd, tailwindcss, templ
- Language: Go
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# go-htmx-forge
A blazing-fast Go template combining Echo, HTMX, and templ for building modern hypermedia-driven web applications with minimal JavaScript and maximum efficiency.
## Features
- **Go Echo Framework** - High performance, minimalist web framework
- **Templ Integration** - Type-safe HTML templates for Go
- **TailwindCSS** - Utility-first CSS framework
- **OpenBSD Ready** - Configured for OpenBSD deployment
- **Redis Support** - Prepared for Redis integration
- **GitHub Actions** - Automated PR and Production workflows## Quick Start
```bash
# Clone the template
git clone https://github.com/jrswab/go-htmx-forge your-project-name# Navigate to project
cd your-project-name# Install dependencies
go mod tidy
go install github.com/a-h/templ/cmd/templ@latest# Start development server
make run
```To run Tailwind use Tailwind's [Standalone CLI](https://tailwindcss.com/blog/standalone-cli). This forge does not use the npm/npx version when running locally.
Visit `http://localhost:3000` to see your application running.
## Project Structure
```
.
├── .github/
│ └── workflows/ # GitHub Actions workflows
│ ├── pr-workflow.yml
│ └── prod-workflow.yml
├── cmd/
│ └── main.go # Application entrypoint
├── config/
│ └── config.go # Application configuration
├── handlers/
│ ├── handlers.go # Handlers for serving pages
│ └── utils.go # Application utilities
├── logs/ # Application logs
├── media/ # Media files
├── static/ # Static assets
│ ├── input.css # TailwindCSS input
│ ├── manifest.json # PWA Metadata for your site
│ ├── offline.html # What to serve when the client is offline
│ ├── output.css # Generated CSS
│ └── sw.js # Specific Javascript for the PWA Service Worker
├── views/
│ ├── home/
│ │ ├── home_content.templ # The content for the home page
│ │ └── home_content_templ.go # Generated Go file from Templ
│ └── layout/
│ ├── base.templ # Main structure of you website (this won't change per page)
│ └── base_templ.go # Generated Go file from Templ
```## Development
### Prerequisites
- Go 1.20 or higher
- HTMX (dowload and save into `static/`)
- Make### Available Commands
- `make run` - Starts a local development server with templ generation and TailwindCSS compilation
- `make pipeline` - Build assets for deployment (this is used by Github)## Deployment
The template includes two GitHub Actions workflows:
### PR Workflow
- Triggers on pushes to non-master branches
- Runs linting and tests
- Deploys to `/var/www/builds//`### Production Workflow
- Triggers on pushes to master
- Runs linting and tests
- Deploys to `/var/www/`
- Restarts the OpenBSD service### Required Secrets
- `SSH_HOST` - Deployment server hostname
- `SSH_USER` - SSH username
- `SSH_PRIVATE_KEY` - SSH private key
- `REDIS_HOST` - Redis server hostname (production only)
- `REDIS_PASS` - Redis password (production only)## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
This project is licensed under the BSD 3-Clause License.
## Support
If you find this template useful, consider:
- ⭐ Starring the repository
- 🐛 Opening issues for feature requests or bugs
- 🔀 Submitting pull requests
- ☕ Supporting the project on [Liberapay](https://liberapay.com/jrswab)Created by [jrswab](https://github.com/jrswab) - Building tools to enhance developer workflows.