Haven't posted in a while. Picked up a new project. Aimed at the self hosted crowd (opensource etc) i.e. /r/selfhosted on reddit. My own habbit tracker (tenatively called go-routinely) Similar stack to last time, go and htmx. Also hosted on tangled: tangled.org/majiy00.tngl... #buildinpublic
Haseeb Majid
@majiy00.bsky.social
I am Haseeb, a Backend software engineer 💻, Linux enthusiast 🐧 and village cricketer 🏏. If you want to see what I write about, visit my blog. Currently Building: - Habit Tracker (Goroutinely tentative name)
🚀 Curious about Go + HTMX? Haseeb Majid presents “What I learnt building a web app with Go and HTMX”. A story of simplicity, full-stack dev, and less JavaScript. 🌟 🕑 11:30 AM 📍 Michelangelo Room #golang #golab2025 @majiy00.bsky.social
That’s a wrap! 🎉 Thanks to Haseeb Majid for “What I learnt building a web app with Go and HTMX”. A refreshing take on building full-stack apps with less JavaScript and more joy. #golang #golab2025 @majiy00.bsky.social
Tired of JS overload? So was @majiy00.bsky.social. Here's what he learned building a full-stack web app with Go, HTMX, templ, and zero JS drama. 💻 What I Learnt Building a Web App with Go and HTMX #golang #golab2025
Day 120-128 #buildinpublic Still haven't spent a lot of time on this project. Had a few other things to deal with i.e. working on my gophercon presentation and preparing for an exam. But started to work on some org related endpoints i.e. update avatar, description and project link.
Managed to figure out to fix shell completions when using a Nix development shell: https://haseebmajid.dev/posts/2025-07-02-how-to-fix-shell-completions-when-using-nix-direnv/
How to Fix Shell Completions When Using Nix Direnv and Fish Shell | Haseeb Majid
If you read this post, I finally managed to figure out how to get shell completions in fish shell when you install a tool using a devshell in Nix, while using direnv. This plugin makes sure that the fish shell completions get resynced. Currently, I am using a fork of the original plugin, as the fish shell v4 broke it but eventually can use the original. How it works: Fish will search $fish_complete_path dynamically, so the idea is to implement a function which listens for changes to $XDG_DATA_DIRS, and attempts to keep that in sync with $fish_complete_path.
haseebmajid.dev
Day 111-119 #buildinpublic Took a bit of a break on the project but started to work on the final main, part allow users to update setting for their org.
How to use Gitlab Dep Proxy in CI: https://haseebmajid.dev/posts/2025-06-18-how-to-use-the-gitlab-proxy-in-ci/
How to Use the GitLab Proxy in CI | Haseeb Majid
Personal Projects For the moment, the GitLab proxy will not work if the project is in your personal namespace i.e. gitlab.com/hmajid2301. So to make it work with my project Voxicle I had to move to its own group. GitLab Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/323773 Background The GitLab dependency proxy, allows us to cache Docker images that we pull from Docker Hub. This allows us to reduce bandwidth and speed up builds, i.e. quicker to pull Postgres for our tests in CI.
haseebmajid.dev
The last 2 weeks of Voxicle build log: https://haseebmajid.dev/posts/2025-06-23-voxicle-build-log-15/ #buildinpublic
Voxicle Build Log 15 | Haseeb Majid
⏮️ Previous Build Log Objectives Mark feedback public/private Start on settings page 🛠️ What I Worked On Mark feedback as private/public Logged in users can mark feedback as private so it won’t be shown on the public dashboard. Gitlab Dependency Proxy I started using the Gitlab dependency proxy so that we can pull in image from Docker hub using Gitlab to avoid hiting rate limits. But also means we can use image cache which should makes jobs a quicker when pulling say postgres.
haseebmajid.dev
Day 105-110 #buildinpublic Got a busy doing other random stuff. With the weather really nice outside. But managed to allow users to invite new users to their org. Then created a page to display all the users in the org and invite users.
Day 103 & 104 Spent some time setting a dev environment, previously was just using prod with some feature flag to show only the waitlist. Now I can more easily share my changes with others to demo them. Will be soon available at https://dev.voxicle.app #buildinpublic
#buildinpublic I recorded a quick update video about what voxicle can do: https://www.youtube.com/watch?v=oM9UUdwlaWA
- YouTube
Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
youtube.com
Day 99 & 100 & 101 & 102 #buildinpublic Didn't spend lots of time on Voxicle this week. I recorded a quick update video and then worked on making it, so the users can mark some feedback as private.
14th Build Log #buildinpublic https://haseebmajid.dev/posts/2025-06-02-voxicle-build-log-14/
Voxicle Build Log 14 | Haseeb Majid
⏮️ Previous Build Log Objectives Public page for feedback private and public feedbacks allow anonymous voting 🛠️ What I Worked On Public Feedback Dashboard We started of with this: And finish with this Users can now do the almost everything they can when logged in but when anonymous. We attach a deviceID cookie to them to be able to spot if its the same user. This only works for the same device and until they clear their cookies but should be good enough for most of the users I think for now.
haseebmajid.dev
Day 98 #buildinpublic I'm still working on my Gopher Con slides today but as part of that. Fixed some issues with Voxicle's setup not pushing logs, metrics and traces to a local Grafana instance.
Day 95 & 96 & 97 #buildinpublic Very little progress on Voxicle, been working on some of my slides for a conference talk about otel. Which will benefit Voxicle a bit I suppose 😓 .
Hi everyone, I just released a video about SQLC and go: https://www.youtube.com/watch?v=T-1Z3ckTv5g
- YouTube
Auf YouTube findest du die angesagtesten Videos und Tracks. Außerdem kannst du eigene Inhalte hochladen und mit Freunden oder gleich der ganzen Welt teilen.
youtube.com
Day 93 & 94 #buildinpublic Don't have much time to spend working on voxicle but managed to finish open tofu infra code for now and have it deploying via CI.
Day 91 & 92 #buildinpublic Spent most of my day outside watching/playing cricket.🏏. So only had time to set up a few smaller things. Started moving manual steps into Open Tofu (terraform). More reproducible.
Day 90 #buildinpublic My last day at my current job, switching job. Which hasn't helped in terms of keeping this as my main focus 😓 . But today managed to finish allowing users to add feedback anonymously.
Day 88–89 #buildinpublic Started to work to allow anonymous users to create feedback. Realised, the DB schema can be simplified. Worked on that and then updated tests/queries.
Day 84 - 87 #buildinpublic Spent the weekend in the peak district. So didn't code much but very much needed break. Worked on a few other small DevEx improvements. I am using mprocs to start my app locally now.
Day 83 #buildinpublic Wrote the main business logic to allow users to add anonymous feedback. Decided to take a break and work on some DevExy stuff. Like setting up Zellij to have a tab for some important tasks like running tests and linter.
Day 81 #buildinpublic Added more tests to allow users to anonymous vote and downvote if they aren't logged in.
Day 80 Spent today editing a YouTube video and then trying to improve the renovate config. So it can auto-merge MRs and update other resources. Like CDN link for HTMX and my Nix deps. #buildinpublic
Day 78 & 79 #buildinpublic Working on styling the main public page and allowing the filters to work normally (unauthenticated users).
How I built an app with templ, go & localisation #buildinpublic www.youtube.com/watch?v=r5Gl... Any feedback on the video is welcome.
Go, Templ (with HTMX) & Localisation
YouTube video by Haseeb Majid
youtube.com
Another build log, what I got up to in the last week or so haseebmajid.dev/posts/2025-0... #buildinpublic
Voxicle Build Log 13 | Haseeb Majid
I will stop making these weekly I think and produce them when there is actual stuff to share, as not make them stale and boring. Some times they may end up weekly, depending on how much progress I am ...
haseebmajid.dev
Day 77 #buildinpublic Decided to refactor the schema and therefore need to update a lot of code, but this will mean fewer DB calls.