Currently Building:
- Voxicle: https://voxicle.app
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#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.
#buildinpublic
Added more tests to allow users to anonymous vote and downvote if they aren't logged in.
#buildinpublic
Added more tests to allow users to anonymous vote and downvote if they aren't logged in.
#buildinpublic
Working on styling the main public page and allowing the filters to work normally (unauthenticated users).
#buildinpublic
Working on styling the main public page and allowing the filters to work normally (unauthenticated users).
#buildinpublic
Decided to refactor the schema and therefore need to update a lot of code, but this will mean fewer DB calls.
#buildinpublic
Decided to refactor the schema and therefore need to update a lot of code, but this will mean fewer DB calls.
#buildinpublic
Added more tests and made them run in parallel with t.parallel in Go. They now run 50% quicker in CI. E2E tests used to take 3 mins now down to 1 minute, even though there are 2x more tests.
#buildinpublic
Added more tests and made them run in parallel with t.parallel in Go. They now run 50% quicker in CI. E2E tests used to take 3 mins now down to 1 minute, even though there are 2x more tests.
#buildinpublic
After a few days of debugging, finally managed to get RLS to work. At the service layer at least.
So now I can simplify my SQL queries, fewer WHERE clauses items.
#buildinpublic
After a few days of debugging, finally managed to get RLS to work. At the service layer at least.
So now I can simplify my SQL queries, fewer WHERE clauses items.
Worked on row level security for authorization for the multi tenant SaaS. So you can only access feedbacks based on the organization you belong to.
#buildinpublic
Worked on row level security for authorization for the multi tenant SaaS. So you can only access feedbacks based on the organization you belong to.
#buildinpublic
#buildinpublic
Fixed some of my E2E tests. Then decided to have another chill day. It was too hot in London (29 degrees). Spent some time moving from nvim-cmp to blink.cmp (neovim).
#buildinpublic
Fixed some of my E2E tests. Then decided to have another chill day. It was too hot in London (29 degrees). Spent some time moving from nvim-cmp to blink.cmp (neovim).
Worked out my issue with alpinejs, needed to get htmx to re-evaluate the `hx-delete`.
Now, users can edit their feedback. I think I will change the UX to the user can click anywhere on the card vs click a specific button.
#buildinpublic
Worked out my issue with alpinejs, needed to get htmx to re-evaluate the `hx-delete`.
Now, users can edit their feedback. I think I will change the UX to the user can click anywhere on the card vs click a specific button.
#buildinpublic
Working on allow users to edit their feedback. Currently having some issues with the modal. And alpinejs with htmx, to send the feedback ID with the request.
Anyone know potentially what is the issue?
#buildinpublic
Working on allow users to edit their feedback. Currently having some issues with the modal. And alpinejs with htmx, to send the feedback ID with the request.
Anyone know potentially what is the issue?
#buildinpublic
#buildinpublic
Had to rebuild my PC, luckily with NixOS and nixos-anywhere it was really painless to do, after I copied my home directory.
Spent the last two day adding some more E2E tests running with playwright. Testing the app from browser.
#buildinpublic
Had to rebuild my PC, luckily with NixOS and nixos-anywhere it was really painless to do, after I copied my home directory.
Spent the last two day adding some more E2E tests running with playwright. Testing the app from browser.
#buildinpublic
Add more filters feedback type as well. Added more tests and fixed a bug with the pricing not appearing. Falling back to some default values if we cannot fetch from the DB.
#buildinpublic
Add more filters feedback type as well. Added more tests and fixed a bug with the pricing not appearing. Falling back to some default values if we cannot fetch from the DB.
Went down a few random rabbit holes. But now users can select multiple status types as filters. Whereas before you could only select one. I was using the daisyui builtin filter list but that wasn't good enough. So I built my own checkbox select.
Went down a few random rabbit holes. But now users can select multiple status types as filters. Whereas before you could only select one. I was using the daisyui builtin filter list but that wasn't good enough. So I built my own checkbox select.
Question for those building multi-tenant applications. How do you guys handle user authorization i.e. can a user create a resource in the correct tenant/organization. I am currently doing this in the data layer. Before we enter the data in the DB.
Is there a better way?
Question for those building multi-tenant applications. How do you guys handle user authorization i.e. can a user create a resource in the correct tenant/organization. I am currently doing this in the data layer. Before we enter the data in the DB.
Is there a better way?
I worked on making the search bar work. So you can search through the feedback. It does take into account the current filters as well. Working out how to do this in htmx. As this will be a dynamic query param i.e. `?search=xxx`
#buildinpublic
I worked on making the search bar work. So you can search through the feedback. It does take into account the current filters as well. Working out how to do this in htmx. As this will be a dynamic query param i.e. `?search=xxx`
#buildinpublic
Added some E2E tests using playwright, I decided to make sure I spin up my actual app and run tests against that. Previously, I found myself copying a lot of the main.go into this test setup file. But now I have the skeleton to run tests as if I was a user of the app #buildinpublic.
Added some E2E tests using playwright, I decided to make sure I spin up my actual app and run tests against that. Previously, I found myself copying a lot of the main.go into this test setup file. But now I have the skeleton to run tests as if I was a user of the app #buildinpublic.
(Please ignore the day counts, I am terrible it seems to keep track of it myself 😂, from previous days). Spent the last few days writing tests, I was lacking tests. Harder to make changes. So added loads more unit and integration tests. #buildinpublic.
(Please ignore the day counts, I am terrible it seems to keep track of it myself 😂, from previous days). Spent the last few days writing tests, I was lacking tests. Harder to make changes. So added loads more unit and integration tests. #buildinpublic.