VOOZH about

URL: https://thenewstack.io/pagoda-a-web-development-starter-kit-for-go-programmers/

⇱ Pagoda: A Web Development Starter Kit for Go Programmers - The New Stack


TNS
SUBSCRIBE
Join our community of software engineering leaders and aspirational developers. Always stay in-the-know by getting the most important news and exclusive content delivered fresh to your inbox to learn more about at-scale software development.
REQUIRED
It seems that you've previously unsubscribed from our newsletter in the past. Click the button below to open the re-subscribe form in a new tab. When you're done, simply close that tab and continue with this form to complete your subscription.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.
Welcome and thank you for joining The New Stack community!
Please answer a few simple questions to help us deliver the news and resources you are interested in.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Great to meet you!
Tell us a bit about your job so we can cover the topics you find most relevant.
REQUIRED
REQUIRED
REQUIRED
REQUIRED
REQUIRED
Welcome!

We’re so glad you’re here. You can expect all the best TNS content to arrive Monday through Friday to keep you on top of the news and at the top of your game.

What’s next?

Check your inbox for a confirmation email where you can adjust your preferences and even join additional groups.

Follow TNS on your favorite social media networks.

Become a TNS follower on LinkedIn.

Check out the latest featured and trending stories while you wait for your first TNS newsletter.

PREV
1 of 2
NEXT
VOXPOP
As a JavaScript developer, what non-React tools do you use most often?
Angular
0%
Astro
0%
Svelte
0%
Vue.js
0%
Other
0%
I only use React
0%
I don't use JavaScript
0%
Thanks for your opinion! Subscribe below to get the final results, published exclusively in our TNS Update newsletter:
NEW! Try Stackie AI
From clobbered drafts to real-time sync
Apr 14th 2026 10:00am, by David Moore
TypeScript 6.0 RC arrives as a bridge to a faster future
Mar 14th 2026 9:00am, by Darryl K. Taft
Mastra empowers web devs to build AI agents in TypeScript
Jan 28th 2026 11:00am, by Loraine Lawson
2025-03-19 06:10:44
Pagoda: A Web Development Starter Kit for Go Programmers
Backend development / Frontend Development / Go

Pagoda: A Web Development Starter Kit for Go Programmers

Mike Stefanello found the JS framework world to be chaotic. Needing a quick way to start web development projects in Go, he created Pagoda.
Mar 19th, 2025 6:10am by Loraine Lawson
👁 Featued image for: Pagoda: A Web Development Starter Kit for Go Programmers
Photo by Andre Frueh on Unsplash.

In 2020, Mike Stefanello fell in love with Go.

“It’s the first time I ever said that I loved a programming language or even a technology or tool, but it was that kind of reaction — I just really, really fell in love with it,” the software engineer said. “I knew I wanted to work with it.”

Stefanello also did a lot of web development in the form of personal projects and at that time, most web development was PHP-based. One day, he saw a Hacker News post asking developers what their web stack of choice was for personal projects.

“I sat there just thinking, ‘I actually don’t have an answer to that question,’” he said. “I don’t want to go back to all the stuff in PHP that I was using previously. I love Go. I’m very obsessive and I couldn’t not have an answer to that question.”

Out of that frustration and exploration, Pagoda was born.

“It was more about the love of Go and the love of web development,” he said. “It wasn’t like I was thinking about which language should I use to get into web — I started in web development.”

Pagoda: A Starter Kit for Go

Pagoda is not a framework — Stafanello stressed this repeatedly. It’s a starter kit for web development that provides frontend and backend libraries glued together by Go code. The Go generates the HTML server-side to create the web pages.

The starter pack approach may seem strange to frontend developers who are used to a universe of JavaScript frameworks, but backend developers want to keep it simple if they have to work with the frontend, Stefanello told The New Stack.

“Most of us don’t want to have to switch languages, especially if you’re not using JavaScript in the backend,” he said. “I can understand if you are, then you’re used to that ecosystem. But if you’re not used to it — and I’m really not, I haven’t really gotten hands-on with JavaScript in a very long time — it feels like a bit of a chaotic ecosystem, and it’s really hard to grasp.”

But that left him with the quandary of how to build a modern, sleek web app without having to open up JavaScript and commit to big frameworks, such as React and Vue, he said.

“Nothing at all against them,” he added. “They’re all amazing projects, obviously, but it just comes down to personal choice. If you’re a backend developer, you want to be focusing on the frontend as little as possible.”

But why not make Pagoda a Go framework? Because the Go community doesn’t seem interested in that, he said. Whereas in PHP, there’s a mega singular framework — Laravel — there’s not really an equivalent in Go, he said.

👁 A home page made with Pagoda

A sample home page made in Pagoda by Mike Stefanello. The functional website is included in the repo.

“If you’re new to Go, it’s confusing: Why isn’t there one and why don’t people like it?” Stefanello said. “But I think the more you use Go, the more you begin to appreciate that.”

Pushup is an exception in that it’s a Go web development framework. There is also GoBuffalo, which notes on its site that it could be a framework, but instead describes itself as a “Go web-development ecosystem” that’s “mostly an ecosystem of Go and JavaScript libraries curated to fit together.”

Stefanello made the choice early on not to create a framework because he didn’t like the idea of being bound by a singular, mega framework.

“They tend to be overly bloated,” he said. “They tend to really force patterns where you have to do it.”

Also, developers tend to outgrow frameworks but then are locked in by the framework, he added. And then there’s the risk that the framework authors will stop maintaining it.

By comparison, starter kits let web developers quickly jumpstart web development without the drawbacks of a full framework, he added.

“The nice thing about the starter kit is it solves all those problems,” he said. “There are no strict patterns to follow. I provide some ideas and patterns and I glue things together just to make things easy and kind of get you up and running. But none of that is forced. There’s nothing strict about it.”

Even if he stops maintaining Pagoda, web developers have what they need to continue.

“I’m basically just doing a lot of the work for you, and then you can take over from there,” he said. “You don’t have to worry about if I stop maintaining it because as soon as you copy the starter kit, it’s yours — 100% of it’s yours. ”

The Pagoda Frontend

Pagoda includes three libraries for the frontend:

  1. HTMX, which provides access to AJAX, CSS transitions, web sockets, and server events directly in HTML. “The beauty of something like HTMX is that it enables you to have that Ajax-type behavior where you don’t have to do full-page reloads,” he said. “It’s the kind of functionality you expect or you see a lot on the JavaScript-driven single-page apps. You can use as much or as little as you want but without having to write a line of JavaScript, you can take regular HTML and create really good interactivity on your site.”
  2. Alpine.js, which Stefanello said was much like JQuery, but for the modern web. It’s a minimal tool for composing behavior directly in markup. “What’s really nice about it, too, is that it all works inside of — for the most part — your HTML, so you don’t even have to actually write standalone JavaScript,” he said. “You can just add a bunch of Alpine tags and some declarations and tell the HTML what to do. And it’s really quite remarkable how far you can get with that. It’s a project that I really enjoy using.”
  3. Bulma, an easy-to-use CSS framework. “It’s just really easy — you just throw some classes and you have a pretty decent-looking UI,” he said.

If you don’t like those libraries, you can switch them out. For instance, Tailwind could replace Bulma, he said, and it can be done in minutes.

The Backend of Pagoda

On the backend, Pagoda includes:

  1. Echo: A high-performance, extensible, minimalist Go web framework.
  2. Ent: A powerful ORM for modeling and querying data.
  3. Gomponents: HTML components written in pure Go. They render to HTML 5, and make it easy to build reusable components.

Again, Stefanello stressed that any of these libraries could be replaced — in fact, this month, he replaced Go templates with Gomponents.

“If you ever go through any of the Go communities, whether it’s Reddit or Slack or Discord or whatever, there’s a lot of frustration with the template — especially when it comes to HTML, they do leave a lot to be desired, “ he said.

He enumerated the problems: They aren’t type-safe; if the code has an error, you can’t tell until you run the application; it’s difficult to pass data between different templates; and finally, it’s tricky to get them to compile in a way that’s easy to use within a web application.

Gomponents is a library created by Markus Wüstenberg, and it renders to HTML 5, making it easy to build reusable components.

“That was probably the single biggest code change that I made in the project […] since the project started,” he said. “This was a big fundamental change, to go away from the Go standard library templates to using a third-party solution.”

SQLite provides the primary data storage as well as persistent, background task queues, according to the documentation. However, it can be swapped out if a developer prefers to use Postgres or Redis.

The project has even been forked to create GoShip, which is a Go plus HTMX boilerplate with all the essentials for SaaS, AI tools or web apps.

TRENDING STORIES
Loraine Lawson is a veteran technology reporter who has covered technology issues from data integration to security for 25 years. Before joining The New Stack, she served as the editor of the banking technology site Bank Automation News. She has...
Read more from Loraine Lawson
SHARE THIS STORY
TRENDING STORIES
SHARE THIS STORY
TRENDING STORIES
TNS DAILY NEWSLETTER Receive a free roundup of the most recent TNS articles in your inbox each day.
The New Stack does not sell your information or share it with unaffiliated third parties. By continuing, you agree to our Terms of Use and Privacy Policy.