Replies: 2 comments 6 replies
-
Hi @nick-walt - we are currently planning the first of one of our large extensibility projects, custom components. With this, we will allow users to write plugins in pure Svelte, we're still working out all the technical details but the plan is users will import the Budibase SDK into their custom component to get access to data/automations in their apps, once your component is complete you'll be able to bundle it and import it to a Budibase installation, it will then show up as a new component in the design section! In the future we expect there will be further extensibility features as well but we believe this is a great first step towards it! |
Beta Was this translation helpful? Give feedback.
-
Sounds awesome @mike12345567 Figma recently released their Widget feature and I had the thought that it would have been very cool if Widgets were a low-code enhancement of Figma's atomic design approach instead of simply being mini plugins that extended the application. Could Budibase take an approach that fully leverages Svelte and the SDK at all levels? So adding small, discrete custom code enhancements to built-in components is going to introduce users to a pathway that includes enhancing custom designed components and writing plugins (and perhaps Widgets that, like Plugins, extend the application? How about Widgets that allow other users to modify plugins or streamline built-in or custom components visually or functionally, using low-code, to better fit their design workflows? For example, what if someone were to create a Plugin that worked really well with GraphQL database endpoints but another user wanted to begin modelling their GraphQL APIs and schemas in a visual graph with Nodes, Edges and Labels. Using Budibase they could build a new visual Widget with additional low-code custom code that leveraged that GraphQL Plugin to design a special Widget with a graph modelling UI? Just to support this example, GraphQL really starts to shine when implemented in an actual graph database where we can design complex many-to-many relationships with intuitive ease. GraphQL can put a strain on the highly rigid nature of Relational databases and their clumsy JOIN technologies but GraphQL doesn't put any strain on a Graph database that uses the user created GraphQL internally. Graph databases allow GraphQL users to ask more of their data dynamically and to allow more filtering, sorting and search capabilities in a more dynamic visual UI experience. Think "schema on read", where the user calling the GraphQL API can use code to create the schema dynamically depending on the function of the UI at that moment it is serving the user. Relational databases struggle with this but Graph databases do not. I have been exploring this with Dgraph, a graph database that uses GraphQL natively to call the database. Budibase could leverage the concept of Lambda Functions in its low-code philosophy to fit with Svelte's reactivity, which really is all about handling events in a discrete, atomic, componentised environment - ideal for a visual design low-code platform. Which is also where GraphQL and the new technology Graph databases shine :) This whole idea of discrete, componentised low-code atomics has me thinking about about how to simplify our designs. What really fits with all this atomics, whether in the UI, Lambda Function-like low-code snippets, data entities or how we model logic, are the ideas of Actors and being able to compose them and their products (entities, components, code-snippets) within Finite State Machines and Charts (charts are basically a graph of connected Machines). If you haven't come across XState JS before, there is native XState package for Svelte: The great thing about XState is that it makes the code easier to structure. It is like using Algebraic Data Types (specifically Union Types) to guarantee event and state transitions at runtime (so, low or minimal runtime errors - which occur a lot when using Booleans, for example) but on steroids. If State Machines were behind your API you could have an incredibly robust platform. Make impossible states impossible. State Machines, atomics, components, actors, messaging, objects and visual interfaces can all be beautifully represented by graphs! |
Beta Was this translation helpful? Give feedback.
-
An amazing language and framework and low-code app builder. Will it be likely that Budibase's low-code development will allow users to write pure Svelte to extend their Budibase created content?
Plugins written in Svelte, component libraries written in Svelte, low-code enhancements in Svelte.
Beta Was this translation helpful? Give feedback.
All reactions