I'm excited to share gofred, a framework I've been working on that lets you build responsive web applications using only Go - no JavaScript required! Your Go code compiles directly to WebAssembly and runs natively in the browser.
🌟 What makes gofred special?
Pure Go Development: Write your entire web app in Go - frontend, backend, everything. No need to learn JavaScript, TypeScript, or React.
WebAssembly Performance: Near-native performance in the browser with Go's excellent concurrency model.
Modern UI Components: Rich widget library with responsive design built-in:
- Layout widgets (Container, Column, Row, Grid)
- Interactive components (Buttons, Links, Forms)
- Content widgets (Text, Icons, Images)
- Navigation (Drawers, Headers, Footers)
Responsive by Default: Built-in breakpoint system (XS, SM, MD, LG, XL, XXL) for mobile-first design.
Developer Experience: Hot reload, comprehensive documentation, and great tooling.
🚀 Live Demo
Check out the live website: https://gofred.io
The entire website is built with gofred itself - it's a perfect example of what you can create!
📖 Quick Example
Here's how simple it is to create a responsive web app:
package main
import (
"github.com/gofred-io/gofred/application"
"github.com/gofred-io/gofred/breakpoint"
"github.com/gofred-io/gofred/foundation/button"
"github.com/gofred-io/gofred/foundation/column"
"github.com/gofred-io/gofred/foundation/container"
"github.com/gofred-io/gofred/foundation/text"
"github.com/gofred-io/gofred/options"
"github.com/gofred-io/gofred/options/spacing"
"github.com/gofred-io/gofred/widget"
)
func main() {
application.Run(
container.New(
column.New(
[]widget.BaseWidget{
text.New(
"Hello, gofred!",
text.FontSize(32),
text.FontWeight("600"),
),
button.New(
text.New("Click me!"),
button.OnClick(func(this widget.BaseWidget, e widget.Event) {
// Handle click event
}),
),
},
column.Gap(16),
column.CrossAxisAlignment(options.AxisAlignmentTypeCenter),
),
container.Padding(breakpoint.All(spacing.All(32))),
),
)
}
🏗️ Architecture
gofred uses a widget-based architecture where everything is a composable component:
- Foundation widgets: Basic building blocks
- Layout system: Flexbox-inspired responsive layouts
- State management: Reactive state with automatic UI updates
- Event handling: Click, hover, form events, etc.
- Styling: CSS-in-Go with responsive breakpoints
📚 Documentation & Resources
- Framework: https://github.com/gofred-io/gofred
- Website Source: https://github.com/gofred-io/gofred-website
- Documentation: https://gofred.io/docs
🎯 Perfect for:
- Go developers who want to build web apps
- Teams looking to reduce JavaScript complexity
- Projects that need high performance
- Developers who prefer strongly-typed languages
- Anyone who wants to leverage Go's ecosystem for web development
🚀 Getting Started
# Create a new project
mkdir my-gofred-app
cd my-gofred-app
# Initialize with go mod
go mod init my-gofred-app
go get github.com/gofred-io/gofred
# Start building!
🤔 Why did I build this?
As a Go developer, I was frustrated with the complexity of modern web development. You need to learn JavaScript, TypeScript, React, Vue, or Angular just to build a simple web app. I wanted something that would let me use Go's simplicity and power for web development.
gofred is my answer to that problem - it brings Go's elegance to web development while maintaining the performance and developer experience we love.
🔮 What's next?
- More UI components and widgets
- Better tooling and IDE support
- A powerful CLI tool that will help developers quickly scaffold new gofred projects with pre-configured templates, project structure, and development tools
- Performance optimizations
- Community examples and templates
- Integration with popular Go libraries
💬 Questions?
I'd love to hear your thoughts! Have you tried building web apps with Go before? What features would you like to see in gofred? Any feedback or suggestions?
Links:
- 🌐 Website: https://gofred.io
- 📦 Framework: https://github.com/gofred-io/gofred
- 🏠 Website Source: https://github.com/gofred-io/gofred-website
- 📖 Docs: https://gofred.io/docs
Thanks for checking it out! 🚀
Top comments (0)