<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Harry Kim</title>
    <description>The latest articles on Forem by Harry Kim (@itsharrykim).</description>
    <link>https://forem.com/itsharrykim</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3571689%2F957a9a12-7531-48bb-9ae7-f1ac68b3c5aa.png</url>
      <title>Forem: Harry Kim</title>
      <link>https://forem.com/itsharrykim</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/itsharrykim"/>
    <language>en</language>
    <item>
      <title>🚀 Introducing Gojang: a modern, batteries-included web framework in Go + HTMX</title>
      <dc:creator>Harry Kim</dc:creator>
      <pubDate>Fri, 17 Oct 2025 20:24:07 +0000</pubDate>
      <link>https://forem.com/itsharrykim/introducing-gojang-a-modern-batteries-included-web-framework-in-go-htmx-28kn</link>
      <guid>https://forem.com/itsharrykim/introducing-gojang-a-modern-batteries-included-web-framework-in-go-htmx-28kn</guid>
      <description>&lt;p&gt;I’m excited to share my open-source pet project, Gojang, a new web framework built with Go and HTMX (&lt;a href="https://gojang.io" rel="noopener noreferrer"&gt;https://gojang.io&lt;/a&gt; &amp;amp; &lt;a href="https://github.com/gojangframework/gojang" rel="noopener noreferrer"&gt;https://github.com/gojangframework/gojang&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;My aim with Gojang is to help Go developers build rich, interactive web apps without the complexity and overhead of heavy JavaScript front-end frameworks.&lt;/p&gt;

&lt;p&gt;Here’s what makes Gojang compelling:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🌟 Key Highlights &amp;amp; Philosophy&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Batteries Included&lt;/strong&gt; - Gojang comes with built-in support for many essential features so you can focus on your application logic, not plumbing: authentication, admin panel (auto-generated CRUD for any model), ORM, security middleware, logging, etc. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTMX-First Approach&lt;/strong&gt; - Dynamic UX doesn’t require building a separate SPA. Instead, you can sprinkle HTMX-powered interactions (via hx-* attributes) to make pages more responsive and interactive. Gojang is optimized for that.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type Safety via Ent ORM&lt;/strong&gt; - Under the hood, Gojang uses Ent (a Go ORM with schema and code generation) for compile-time safety, meaning many errors can be caught early.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Product-Ready Features Out of the Box&lt;/strong&gt; - Security (CSRF protection, rate limiting, encryption), audit logs, structured logging, error recovery, middleware support, and testing support are part of the core.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer Experience Focus&lt;/strong&gt; - including hot reloading, automated model, CRUD, and page generation. Also lean project structure, minimal boilerplate, and clear docs to help onboard developers quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy Deployment&lt;/strong&gt; - Go projects are built to a single executable binary. That's all you need to ship to run the server.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;🧱 Getting Started (in ~5 minutes)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s a minimal flow to spin up Gojang:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/gojangframework/gojang
cd gojang
go mod download
task dev
task seed (insert admin account)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once running, visit &lt;a href="http://localhost:8080" rel="noopener noreferrer"&gt;http://localhost:8080&lt;/a&gt; and you’ll see your baseline app in action.&lt;/p&gt;

&lt;p&gt;From there you can use the interactive generators:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;task addmodel&lt;/strong&gt; — scaffold a new model (schema, CRUD handlers, templates, admin) in seconds&lt;br&gt;
&lt;strong&gt;task addpage&lt;/strong&gt; — quickly add static pages like “About,” “Contact,” etc.&lt;/p&gt;

&lt;p&gt;You define your schema using Ent’s fluent API, generate code, and then register your model so the admin panel and routes are wired automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💬 Why Gojang?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the Go ecosystem, many frameworks lean minimal (just a router + handlers) and expect you to assemble all pieces yourself. Meanwhile, in the front-end world, frameworks like React / Vue / Svelte dominate SPA patterns that often separate concerns and create friction in full stack development.&lt;/p&gt;

&lt;p&gt;With HTMX rising in popularity, there’s room to rethink how we build modern web interfaces — more server-centric, less JS boilerplate. Gojang sits at that intersection: you use Go everywhere, benefit from server safety and consistency, and only sprinkle dynamic behaviors where needed.&lt;/p&gt;

&lt;p&gt;I built Gojang to:&lt;/p&gt;

&lt;p&gt;Let teams ship features faster (fewer decisions needed up front)&lt;br&gt;
Keep the mental model simple: Go + HTML + HTMX&lt;br&gt;
Ensure safety, structure, and maintainability from day one&lt;br&gt;
Cater to developers who want modern UX but with less front-end complexity&lt;/p&gt;

&lt;p&gt;🔗 Links&lt;br&gt;
Website &amp;amp; docs: &lt;a href="https://gojang.io" rel="noopener noreferrer"&gt;https://gojang.io&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/gojangframework/gojang" rel="noopener noreferrer"&gt;https://github.com/gojangframework/gojang&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know what you think, and let’s build something great together.&lt;/p&gt;

</description>
      <category>go</category>
      <category>showdev</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
