FLOSS/fund reached out to me again but due to some unforeseen regulatory constraints their partnership with GitHub didn't seem to work out. Instead they want to issue a wire transfer from India requiring several cross-jurisdictional paperwork but I don't feel comfortable doing that because I don't trust them, nor the India government, with processing and storing personal sensitive data (especially over insecure shared mail inbox channel).
So in the end I had to withdraw my FLOSS/fund application and decline the funding.
I've made a mistake for not researching it more carefully and not waiting for the disbursal before making big announcements and decisions, but it is what it is.
Nonetheless the main goal remains and I'll try to publish a stable PocketBase version this year (no hard promises though; the majority of the new UI functionality is already implemented but I'll have to look for something else in between before making more elaborate plans regarding the remaining tasks).
There will be a new announcement once I have more clarity and readiness to request community feedback.
I'll go ahead and lock this discussion to avoid further spamming the participants and repository watchers.
I am happy to announce that yesterday FLOSS/fund contacted me about their decision to sponsor PocketBase as part of their second funding tranche. You can find more details and the other cool projects they've chosen to support at https://floss.fund/blog/second-tranche-2025-anniversary/.
> Note that FLOSS/fund and Zerodha are planning to continue with the program next year, so if you are looking for a no strings attached sponsorship for your open source project, I encourage you to apply at https://dir.floss.fund/submit.
With the funding this means that starting from December I'll be able to work solely on PocketBase for at least one year, with the general goal to finally have a stable PocketBase release by end of next year. My short-term focus for now will be on rewriting the UI.
One of the biggest limitations of PocketBase right now is the lack of dashboard customization.
While you can create server-side plugins using the existing app event hooks (ex. the JS pb_hooks are implemented as such; see also a recent community project posted in #7273), there is no mechanism at the moment to extend the UI for things like: adding custom options to existing fields, registering new fields, customizing the settings and what is shown when in "production" mode, registering new OAuth2 providers, registering new system sections (see #7232), etc.
Usually this shouldn't be a difficult task considering that the dashboard runs entirely in the browser and loading HTML/JS/CSS dynamically is what browsers are good at, but the goal is NOT to just inject some extra assets on the page because this wouldn't really work for many of the highlighted issues above, or at least not for what I plan to use the UI plugins for.
Ideally we should be able to interact with the SPA router and the various reactivity states of the dashboard from an external script. And this unfortunately is very difficult to be implemented when using a compiler framework like Svelte because we'll have to force on everyone an additional UI Node.js build step when extending PocketBase and I want to avoid that.
I've explored other more runtime/dynamically-friendly frameworks like Vue, Preact, Lit, Solid, Alpine, Mithril, and technically any of them will do the job (Vue or Lit will be my preference) but they have their own DSL that often doesn't play nicely with other frameworks and most importantly I don't feel confident that I'll be able to maintain them on my own in case they decide to do a major refactoring, change the direction or abandon their project.
My main goal with PocketBase is that once we hit a stable release, I'll mark the project as "complete" and new changes or features will be added very rarely and most likely will follow the bi-annual Go release cycle, aka. the less dependencies we have the better.
So with that in mind, the last couple weekends I've been experimenting with a new frontend framework designed around with the minimal functionality required for PocketBase.
It is called Shablon (https://github.com/ganigeorgiev/shablon), it has 0 dependencies and it is written in plain JavaScript. I'll try to keep it as simple as possible and without the concept for "component" so everything ideally will be plain DOM elements sprinkled with optional reactivity (a "component" could be just a function that return a DOM element, no matter whether it was created using the t.[tag](attrs, ...children) helper or document.createElement(tag)).
It is certainly not as ergonomic and pretty as something like Svelte, but I believe it would be better suited for our purpose.
In the worst case if it turn out too ugly and inefficient, I'll just go back to Vue or Lit but for now I'm planning to continue experimenting with it.
I've also already started working on a new PocketBase UI kit for reusable elements like fields, buttons, popups, dropdowns, alerts, etc.
So that's it for now. Most likely sometime next week (or the week following it) there will be another announcement for an eventual minimal breaking change with the experimental relation filter resolution as subqueries but other than that, the project will enter a temporary "feature freeze" until I have something more concrete to show related to the UI (I want to take my time with it and don't want to rush it, so please be patient).
Thanks once again to FLOSS/fund and @zerodha for supporting the project!