{"id":13602283,"url":"https://github.com/appsemble/appsemble","last_synced_at":"2026-04-02T18:58:01.820Z","repository":{"id":37414039,"uuid":"226361784","full_name":"appsemble/appsemble","owner":"appsemble","description":"This is a mirror of https://gitlab.com/appsemble/appsemble","archived":false,"fork":false,"pushed_at":"2026-03-04T06:36:12.000Z","size":100236,"stargazers_count":48,"open_issues_count":1,"forks_count":11,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-04T09:25:10.773Z","etag":null,"topics":["app-builder","apps","framework","low-code","lowcode","pwa"],"latest_commit_sha":null,"homepage":"https://appsemble.app","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/appsemble.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".gitlab/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":"publiccode.yml","codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-12-06T15:52:13.000Z","updated_at":"2026-03-04T06:36:15.000Z","dependencies_parsed_at":"2026-03-04T06:04:11.718Z","dependency_job_id":null,"html_url":"https://github.com/appsemble/appsemble","commit_stats":null,"previous_names":[],"tags_count":434,"template":false,"template_full_name":null,"purl":"pkg:github/appsemble/appsemble","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appsemble%2Fappsemble","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appsemble%2Fappsemble/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appsemble%2Fappsemble/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appsemble%2Fappsemble/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/appsemble","download_url":"https://codeload.github.com/appsemble/appsemble/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/appsemble%2Fappsemble/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30372130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"online","status_checked_at":"2026-03-11T02:00:07.027Z","response_time":84,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app-builder","apps","framework","low-code","lowcode","pwa"],"created_at":"2024-08-01T18:01:18.957Z","updated_at":"2026-04-02T18:58:01.808Z","avatar_url":"https://github.com/appsemble.png","language":"TypeScript","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://gitlab.com/appsemble/brand/-/raw/main/screenshots/appsemble-studio-app-yaml.png?inline=false\" alt=\"Appsemble\" /\u003e\n\u003c/p\u003e\n\n---\n\n# ![](config/assets/logo.svg) Appsemble\n\n\u003e The open source low-code app building platform\n\n## Table of Contents\n\n- [Usage](#usage)\n  - [Live Environments](#live-environments)\n  - [Requirements](#requirements)\n  - [Getting started](#getting-started)\n    - [CLI Login](#cli-login)\n    - [Registering an Organization](#registering-an-organization)\n    - [Publishing Blocks](#publishing-blocks)\n    - [Publishing App templates](#publishing-app-templates)\n  - [Development Server](#development-server)\n  - [Tests](#tests)\n  - [Building](#building)\n- [Contributing](#contributing)\n- [Security](#security)\n- [License](#license)\n\n## Usage\n\nThese are instructions for developing the Appsemble core platform. Production setup instructions can\nbe found in [here](packages/studio/pages/docs/deployment/helm.md).\n\n### Live Environments\n\nOur production environment is available on [appsemble.app](https://appsemble.app).\n\nOur staging environment is available on [staging.appsemble.eu](https://staging.appsemble.eu). This\nenvironment hosts the latest changes in the `staging` branch. This environment is reset every night\nat 04:00 AM UTC. The point of this environment is to mimic production as closely as possible. It is\nthe last stage where changes are added to before they reach production.\n\nFor each of our internal merge requests a review environment is started at\n`${CI_MERGE_REQUEST_IID}.appsemble.review`.\n\n### Requirements\n\n**Minimum Hardware Requirements**\n\n| Resource | Minimum | Recommended |\n| -------- | ------- | ----------- |\n| CPU      | 1 GHz   | \u003e2 GHz      |\n| CPUs     | 1       | 2\u003e          |\n| RAM      | 12GB    | 16GB\u003e       |\n| Disk     | 3 GiB   | \u003e           |\n\n**Software Requirements**\n\nIn order to run the Appsemble project in development mode on Linux, macOS or Windows, the following\nmust be installed.\n\n- [Docker][]\n- [Docker Compose][]\n- [NodeJS 24][nodejs]\n\n### Getting started\n\nClone and setup the project.\n\n\u003e Note: your CLI should have elevated privileges when setting up and starting the app\n\n```sh\ngit clone https://gitlab.com/appsemble/appsemble.git\ncd appsemble\nnpm ci\n```\n\nWe use playwright to create the mermaid diagram, you can install it with\n\n```sh\nnpx playwright install\n```\n\nThe project requires a PostgreSQL database. This project contains a Docker Compose configuration to\nspin up a pre-configured database with ease.\n\n```sh\ndocker compose up -d\n```\n\nThe project can be served using the following command.\n\n```sh\nnpm start\n```\n\nTo see additional options, run the following command.\n\n```sh\nnpm start -- --help\n```\n\n#### CLI Login\n\nA new account can be registered by going to `http://localhost:9999/register`. Later you can login on\n`http://localhost:9999/login`. You can use any email address as long as it satisfies the email\nformat of `user@email-provider.ext`. As the email is sent from the localhost environment, it is\nactually not received by the user instead the email containing the verification link will be printed\nin the server logs. You need to click this link in order to verify you email and use your account.\nIf you connect your localhost environment to an SMTP server, this email will be sent normally and\nyou will receive the verification link. Similarly, if you login using `GitHub`, `Gitlab` or\n`Google`, you will be authenticated from your account.\n\nTo login using the Appsemble CLI, run the following command.\n\n```sh\nnpm run appsemble -- login\n```\n\n\u003e Note: when using Windows Subsystem for Linux (WSL), this command is **unsupported**. The\n\u003e workaround for this is manually creating OAuth2 credentials at\n\u003e `http://localhost:9999/settings/client-credentials` and passing them to the CLI by setting the\n\u003e `APPSEMBLE_CLIENT_CREDENTIALS` environment variable.\n\u003e [More details](https://gitlab.com/appsemble/appsemble/-/issues/958#note_1299145503).\n\nThis will open Appsemble studio in a new window in your browser. A panel will pop up where you must\nselect the permissions you need. You will need to select at least _blocks:write_,\n_organizations:write_ and _apps:write_ to complete the steps below. Clicking confirm creates an\nOAuth2 access token, which is required in order to publish blocks and apps. Click register and your\nOAuth2 client credentials will be shown. This will be required when you proceed with the publishing\nblocks and apps steps below.\n\n#### Registering an Organization\n\nTo get started developing locally, an Appsemble organization identified through id: `appsemble`\nneeds to be created. This organization can be created either in Appsemble Studio, or using the\nfollowing CLI command.\n\n```sh\nnpm run appsemble -- organization create --name Appsemble appsemble\n```\n\n#### Publishing Blocks\n\nAfter logging in to the CLI, Appsemble blocks can be published locally by running the following\ncommand.\n\n```sh\nnpm run appsemble -- block publish blocks/*\n```\n\nIf prompted, select the OAuth2 credential you created earlier to proceed. You will now see the\npublished blocks in the `Block store` page.\n\nAny block that is found within the workspaces listed in `package.json` will be hot-reloaded. More\ninformation about block development and hot-reloading can be found\n[here](https://appsemble.app/docs/development/developing-blocks).\n\n#### Publishing App templates\n\nIn order for users to create apps from within the Appsemble Studio, existing apps that can be used\nas a starting point must be marked as templates. This can be done using the Appsemble CLI, after\nlogging in. To publish these apps, run the following command.\n\n```sh\nnpm run appsemble -- app publish --context development apps/*\n```\n\nThe published apps will be displayed on the `App store` page.\n\n### Development Server\n\nThe development server can be started by running:\n\n```sh\nnpm run appsemble -- serve \u003cpath-to-app-directory\u003e\n```\n\nSee the [CLI readme](packages/cli/README.md#development-server)\n\n### Tests\n\nTests can be run using the following command.\n\n```sh\nnpm test\n```\n\nThe tests are ran using vitest, meaning all [vitest CLI options][] can be passed.\n\nBy default, database tests are run against the database as specified in\n[docker-compose.yml](docker-compose.yml). The database can be overridden by setting the\n`DATABASE_URL` environment variable. Note that this should **not** include the database name.\nMultiple test databases are created at runtime.\n\n```sh\nDATABASE_URL=postgres://admin:password@localhost:5432 npm test\n```\n\n### Building\n\nThe Appsemble Docker image can be configured using environment variables. Each variable can also be\npassed as a command line parameter instead, if desired. This includes adding variables for\nconnecting to an SMTP server.\n\nThe full explanation of setting up your local server, including a full list of environment\nvariables, can be found at [packages/server/README.md](packages/server/README.md).\n\nThe resulting Docker image can be built using the Docker CLI.\n\n```sh\ndocker build --tag appsemble .\n```\n\n## Contributing\n\nPlease read our [contributing guidelines](./CONTRIBUTING.md).\n\n## Security\n\nPlease read our [security policy](./SECURITY.md).\n\n## License\n\n[LGPL-3.0-only](./LICENSE.md) © [Appsemble](https://appsemble.com)\n\n[docker]: https://docker.com\n[docker compose]: https://docs.docker.com/compose\n[vitest cli options]: https://vitest.dev/guide/cli.html#options\n[nodejs]: https://nodejs.org/docs/latest-v24.x/api/index.html\n","funding_links":[],"categories":["TypeScript","apps"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappsemble%2Fappsemble","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappsemble%2Fappsemble","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappsemble%2Fappsemble/lists"}