Opensource Contribution
Last updated
Was this helpful?
Last updated
Was this helpful?
By expanding the capabilities of Lowcode platforms through open source contributions, we not only broaden the spectrum of use cases but also exponentially increase their value to the community. We commit to supporting this growth in every way possible.
Here is a small guide on where to start and which style of development we prefer.
Lowcoder has 3 main services, which are developed by the Community and us - the Lowcoder Team.
- JavaScript, TypeScript, React, ANTd
- Java, Spring, Spring WebFlux - using MongoDB and Redis
- Node.js, TypeScript
These 3 services are the main deliverables and the codebase of Lowcoder. We are happy to work with you on your contribution and express that Frontend App and API-Service are fairly complex systems. You would need to reserve a bit of time to get to know it and understand the details.
Extension of Lowcoder for and with the Community happens mainly by the Plugins and Extensions at defined Interfaces. Lowcoder has the following Plugin Systems:
Plugin API of API Service
We suggest looking first into the development of these plugins, as they offer a good abstraction that speeds up development and offers a good and fast value for the community.
The main steps are:
Local installation & preparation
Developing & preview the Components
Publish the Components to NPM
Forking of the Repository
To ensure you can develop your Component Plugin including as your repository, please fork (update) our lowcoder-org/lowcoder-create-component-plugin repository first.
Cloning of the new repository to work local
Now you can clone your new repository to develop local.
Local Development preparation
Navigate your terminal or bash to your /root folder of the cloned repository to install general dependencies and the Lowcoder SDK
Execute the Plugin Builder Script. Please name your plugin with the prefix "lowcoder-comp-" to make it easy for other users to find Lowcoder Component Pluins on NPM
Navigate your terminal or bash to the newly created Plugin folder
Install all dependencies:
Start the Playground (Components Preview): Now you can start your Plugin in the playground, so during development you have a realtime preview.
Data, methods, and properties are visible and interactive, so you can test your Component during development. The view will automatically refresh.
Find the /src folder in the new created project. Here are some demonstration files prepared. The Lowcoder Component Builder makes the development & publishing of multiple individual components as bundle possible. In the left navigation of the Components Preview you can switch between your components.
Before you publish, please cleanup all demonstration files like the "HelloWorldComp.tsx" and the references to HelloWorldComp.
Folder Structure:
lowcoder-comp-my-plugin/
├ icons/
├ locales/
└ src/
└ index.ts
In "icons" you will place an SVG, which will later displayed to drag the component to the Lowcoder Editor Canvas. In "locales" you place translation files for all displayed texts of your components And in the "src" folder you place all code. Make sure, your Copmonent is referenced right in the index.ts file.
With the following command you can publish the script to the NPM repository:
We feel honored to work with you together on Lowcoder as a Platform! A good start and procedure that allows a smooth development process is like this:
Clone it into your local environment / IDE
Create a workable local Development Environment
Create your Feature-Branch from /main branch to get the latest stable Environment
Develop your magic and enjoy the ride!
Follow up if / when we have questions at your Merge Request
Simply run the below command to start a local backend server. This is the fasted way. The Backend typically changes less frequent, so you can just run the latest version
Build a Docker image from the source
You also can build the image from the latest Source code or a special branch. However, for pure frontend development there are less reasons to go this way.
Check out the source code and change to source dir.
Use the command below to build a Docker image :
Start the fresh built Docker image
Check out the source code.
Change to /client dir in the source dir.
Run yarn to install dependencies.
Start dev server:
Vite keeps the Browser for all changes current. That means you can see the effect of your development in most cases instantly. Sometimes, Vite rebuilds briefly and reloads the App in the Browser. In most cases, however, the changes are directly rendered. If you are not sure that your changes are already active in the Browser, you can stop and restart Vite at any time.
You would need to have a MongoDB and a RedisDB ready and accessible.
If you don't have an available MongoDB, you can start a local MongoDB service with docker:
If you don't have an available Redis, you can start a local Redis service with docker:
Both, you will need to register in the application-lowcoder.yml file.
Add the VM Options: -Dpf4j.mode=development -Dpf4j.pluginsDir=lowcoder-plugins -Dspring.profiles.active=lowcoder -XX:+AllowRedefinitionToAddDeleteMethods --add-opens java.base/java.nio=ALL-UNNAMED
Create a launch.json file in the .vscode folder of your newly opened workspace. The contents should look like this:
Important is here the command -Dspring.profiles.active= - as it is responsible for the selection of the right apllication settings file too.
Make sure that the apllication settings file contains the full local configuration you need.
The apllication settings file is named application-<profile>.yaml and reside in server/api-service/lowcoder-server/src/main/resources.
The profile relates to your setting in the launch file. For example: -Dspring.profiles.active=lowcoder would make sure, lowcoder seeks the right config at application-lowcoder.yaml
Navigate to the file: server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/ServerApplication.java This is the main class. Now you can use the IDE to "run" it or "debug it".
Configure the Run/Debug configuration as shown below.
-cp
lowcoder-server
VM options
-Dpf4j.mode=development -Dpf4j.pluginsDir=lowcoder-plugins -Dspring.profiles.active=lowcoder -XX:+AllowRedefinitionToAddDeleteMethods --add-opens java.base/java.nio=ALL-UNNAMED
Main class
com.lowcoder.api.ServerApplication
Next, execute the following commands in sequence
After Maven package runs successfully, you can start the Lowcoder server with IntelliJ IDEA.
Check out the source code and change to source dir.
Use the Terminal of your IDE to execute the following commands. First, change to the server directory.
Now, you can build the sources.
And run the Server
If you run the Api-Service locally on Port 8080, remember the URL for the Frontend App would change to: LOWCODER_API_SERVICE_URL=http://localhost:8080 yarn start
Please read more information in the following guides:
To develop and test Datasource Plugins locally in the Node-Service, you should have Node.js installed in Version from v14.18.0 or from v16.0.0.
Check out the source code and change to source dir.
Use the Terminal of your IDE to execute the following commands. First, change to the server directory.
Install dependencies
Now you can start the local development Server. We use Nodemon.
We have a helper script that enables you, based on an OpenAPI Specification, to bootstrap the development of a Datasource Plugin.
Sometimes, due to network issues, the spec file cannot be downloaded correctly. In this case, it can be manually downloaded to the file src/plugins/<plugin id>/<plugin id>.spec.yaml(json)
.
Fork of
Find here more information:
This will start the local development server and open a browser on
After the preparation, a skeleton project for Lowcoder Component Plugin development was created and the SDK prepared. A new browser window should open at This is the Components Preview, which allows you to see your new component in action, as it would work in the Lowcoder Editor.
Next to this direct code development contribution, we also encourage you to contribute smart solutions and reusable Apps and Modules on the so other users can see solution patterns and Application Building Blocks.
You can follow the
Raise a PR / Merge Request to of the Lowcoder Main Repository
Please ask us directly for any related questions so we can help you the fastest way. We kindly ask you to use our for these questions. Here, especially the .
For more information, view our
As soon as the development server is ready you can access Lowcoder by . Now, you can start to develop locally.
After the dev server starts successfully, it will be automatically opened in the default browser. The local Frontend App is served by . It chooses an available port automatically. Typically, it will open at
To develop with us in the API-Service, you need to have Java - OpenJDK 17 Maven - Version 3+ (preferably 3.8+) installed. Also, it is helpful if you have knowledge of
Now, you can check the status of the service by visiting through your browser. By default, you should see an HTTP 404 error. (which, we know, is not the best welcome message ever).
If the data source you're going to develop as a plugin provides an definition file, then its plugin code can be quickly generated. Below is an example of generating Jira plugin code.