FLOSS/fund sponsorship and UI rewrite #7287
Replies: 25 comments 16 replies
-
|
Really cool - great to hear! BTW you might want to take a little bit of inspiration from my library called nano signals that I made for a YT demo, which basically kind of like the vanilla version of Svelte 5 and I think accomplishes the same thing. Feel free to re-use any code from it. I think there is a lot more that goes into doing signals properly, but it works, and it might give you some ideas. |
Beta Was this translation helpful? Give feedback.
-
|
Super happy for you! Can't wait to see what you do with the UI! |
Beta Was this translation helpful? Give feedback.
-
|
Love this for you and for us!! Excited for the continued development of Pocketbase and all the new features to come! Thanks for continuing to put time and energy into the project. |
Beta Was this translation helpful? Give feedback.
-
|
Huge congrats Gani Thanks for this awesome project, PocketBase is amazing and this money is so well deserved |
Beta Was this translation helpful? Give feedback.
-
|
That's awesome Gani! Congrtatulations! |
Beta Was this translation helpful? Give feedback.
-
|
Congratulations and look forward to seeing what's next for pocketbase! 👏👏 |
Beta Was this translation helpful? Give feedback.
-
|
Lets gooo! Congrats Gani |
Beta Was this translation helpful? Give feedback.
-
|
happy to hear that, congrats! 🥳 |
Beta Was this translation helpful? Give feedback.
-
|
Amazing news! Congrats. 🎉 |
Beta Was this translation helpful? Give feedback.
-
|
I'd personally advise against creating your own front-end and UI frameworks, as it can slow down development. Leveraging existing ones is generally much more efficient. That said, I support your decision either way! |
Beta Was this translation helpful? Give feedback.
-
|
Congrats! Absolutely looking forward to see what the future of pocketbase holds, it's been one of the most incredible and useful tools I have used and it is absolutely amazing to see it get the love it deserves. |
Beta Was this translation helpful? Give feedback.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
|
OK, I think this discussion is starting to resemble the ones from back in #4355. I'm thankful that you want to help, but I'm not seeking suggestions for a frontend framework and I'll appreciate if people stop spamming me with their preference. |
Beta Was this translation helpful? Give feedback.
-
|
Amazing, congrats, well deserved!! Best of luck Gani. Please keep it lean and simple. |
Beta Was this translation helpful? Give feedback.
-
|
Cool, congratz! |
Beta Was this translation helpful? Give feedback.
-
|
@ganigeorgiev congrats! 👍
I periodically monitored user issues. These mostly concerned scaling/authorization via external services, as well as the lack of tools like a SQL editor/Presence API. Also, the documentation for JSVM was unclear—some areas weren't described, and the problem could only be solved by rereading GitHub or the system code itself. |
Beta Was this translation helpful? Give feedback.
-
|
Congratulations on the sponsorship and I hope you develop Pocketbase to what you want it to be. I've been following the project for about a year and i used it a few times. I love that you are responsive in the discussions and you dont tolerate PRs that dont make any meaningful contributions. I hope one day, you open user donations to the project once again. |
Beta Was this translation helpful? Give feedback.
-
|
I’d have preferred that you've used the funds on actually improving PocketBase and not to create another JS framework... 😕 |
Beta Was this translation helpful? Give feedback.
-
|
Will it be like on Directus, where different types can have X different interfaces (e.g a |
Beta Was this translation helpful? Give feedback.
-
|
Great news |
Beta Was this translation helpful? Give feedback.
-
|
Congratulations. |
Beta Was this translation helpful? Give feedback.
-
|
Huge congrats @ganigeorgiev 🎉 The funding is well deserved and can't wait for the stable release! We also appreciate the PocketBuilds shout out:
We were actually working on a Templ/HTMX rewrite to allow Admin UI overrides because we thought it would enable more Plugin options for us. Here's our WIP in case anyone finds it interesting or useful: https://github.com/pocketbuilds/admin_ui Very excited for the new UI rewrite! Shablon looks awesome! Edit: If this wasn't clear, we're planning on abandoning our approach in favor of the officially supported option. Just wanted to drop the reference in case it was helpful for Gani to see what other folks were trying, or if other Templ/HTMX users wanted to use it as a model for their own projects. |
Beta Was this translation helpful? Give feedback.
-
|
🎉 congrats Gani truly well deserved! Just finished migrating to 33 and love the new hooks. One minor suggestion for the new UI if I could make - could you add a thin line at the top that can be changed from the settings and set to green on prod? |
Beta Was this translation helpful? Give feedback.
-
|
LETS GOOOO!!! . (⌒⌒⌒) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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/.
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.
UI Rewrite
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_hooksare 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 ordocument.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!
Beta Was this translation helpful? Give feedback.
All reactions