Back

Sunday, 11. May 2025

Introducing Honkboard (My First Go Project)

It's been a while... again! I need to get into the habit of writing blog articles more frequently again. However, I do not come empty-handed for this blog post. Over the last couple of weeks, I spent some time working on my first Go project, and it's called Honkboard. Today I want to tell you a little about it and what I learned so far.

What is Honkboard?

Well like almost every other developer on planet earth, I chose to develop a Todo-List app as a first project for a new language. They cover nearly every basic topic that a language has to offer, so it's a good starting point.

Honkboard is a very simple goose themed todo list application that tries to be as minimalistic as possible in terms of features. It focuses just on the basics: Creating tasks, changing their status and deleting them. That's almost all the app can do. You have two different lists you can switch to. "Personal" and "Professional" - to keep things nicely separated. That's it. No due dates, no subtasks, no priority. Simple and easy.

Most to-do apps I used have just too many features. So many possibilities to structure, create lists, add subtasks, shift due dates and such stuff. I got lost in the details and spent way too much time on the app. So I decided to go with the simple approach in mind while developing Honkboard.

The goose theme is because I simply adore geese. I thought it would be a good idea to also include some kind of personal touch into the design, so I went with this theme. Geese are super cute, and the theme brings a nice little twist to the rather simple app.

You can check out Honkboard here or manually typing https://honkboard.com

Building Honkboard

Backend

To build Honkboard, I used Go for the backend (surprise surprise). Rather than learning a framework, I decided to build the application with the standard library. This involved a little more coding, but I was already familiar with the basic concepts from reading "Let's Go" and "Let's Go Further". I wanted to make the knowledge gathered while reading these two books stick. I tried to combine the techniques of both books into building the backend, and I also started building some extended logic and safety checks through making myself familar with building enums in Go. Furthermore I made myself familiar with Goose (I mean what else?!) For handling database migrations in Go, I digged a little into makefiles in order to streamline my development process.

Frontend

For the frontend, I also decided to keep it simple. I used Go templates and added HTMX + Alpine to create a modern behavior. If you haven't heard about HTMX yet, I suggest you check it out. It's very easy to get started with, and it solves a lot of problems that modern SPA applications have nowadays. However, it's not always the best solution for all projects. But for my simple application, it's a nice fit. With HTMX, I was able to create some nice animations between page-switching and to prevent full page reloads, which make the application feel clunky. For additional interactivity like showing confirmation modes, I used Alpine.js, which is another lightweight JS library.

Design

For the UI I searched on Figma for a design and found this one. I tweaked it a little bit, but as you can see, Honkboard is highly inspired by this design. In order to do the styling, I used Tailwind because it's just incredible fast to build something with the utility classes Tailwind provides.

The gopher in the footer is from Egon Elbre's GitHub Repo and the goose icons I created with the help of AI (I was surprised how consistently good the icons created by the Image models where).

Learnings

I learned a lot about building Honkboard. I reinforced the knowledge I gathered about Go, and I implemented some basic technologies like sending password reset links, user login, registration and sessions from scratch without using any library, which was very helpful in order to understand the underlying concepts. I also learned a lot about HTMX. I am currently reading "Hypermedia Systems" and being able to gather some practical experience alongside the theoretic knowledge definitely helped me a lot.

Overall, I am quite happy with how this project turned out, even though it took me way too long to get it done.

What's Next For Honkboard

In the upcoming weeks, I will be pretty busy, but I hope that I can improve the overall application a little. If you have any feedback regarding UI/UX, bug reports or other stuff, feel free to contact me. I also want to write some more test cases since I didn't touch this topic a lot in Go.

For the long term, I definitely plan to make a mobile app. As I said, I am currently reading "Hypermedia Systems" and since I already use HTMX for Honkboard, it just makes sense to develop the mobile app with Hyperview.

I will keep you updated on how this works.

Thank you for reading. Happy Coding!

Coding

Comments

Login or Register to write comments and like posts.


GitHub LinkedIn

© 2025