Migrating from the old multi-repo layout¶
In June 2026, Silex moved from a meta-repository of ~25 git submodules (under packages/*) to a
single monorepo. The full git history and every contributor's authorship were preserved.
This guide is for contributors who had a local clone, a branch, or a pull request from before the switch. If you are starting fresh, you don't need any of this — just follow the Dev setup and you're already on the new layout.
What changed¶
- The Silex app is now one package (one
package.json, one build). The code is split by role:editor/,server/,common/,grapesjs-plugins/,server-rust/,desktop/. The oldpackages/<sub>/submodules are gone. - The default branch
mainwas repointed to the new monorepo history. The old meta-repomainis preserved as the branchlegacy-mainand the tagpre-monorepo— nothing is lost. - Because
mainnow carries an unrelated history, a plaingit pullon an old clone would try to merge two histories with no common ancestor. Don't do that — follow the steps below.
Update your local clone¶
Option A — Fresh clone (simplest)¶
git clone https://github.com/silexlabs/Silex.git
cd Silex
pnpm install
pnpm build && pnpm start # editor at http://localhost:6805
You only need the dashboard submodules to run the full multi-site SaaS, not to develop the editor.
If you want them: git submodule update --init.
Option B — Update your existing clone¶
git fetch origin --prune
git switch main
git reset --hard origin/main # old main is preserved on origin as 'legacy-main' / tag 'pre-monorepo'
rm -rf node_modules
pnpm install # toolchain is now pnpm
If you had a branch or pull request in flight¶
Your branch is based on the old packages/<sub>/… layout, which does not map one-to-one onto the
new paths. Don't rebase or cherry-pick across the restructure — re-apply your change as a patch on
the new layout instead:
git diff legacy-main...my-feature > my-change.patch # export your work as a diff
git switch main && git switch -c my-feature-monorepo
git apply --reject my-change.patch # fix the paths, resolve any .rej hunks
For small changes it is usually faster to just redo the edit by hand on the new layout. Open your PR
against main — we're happy to help you port it, just ask on the chat.
Where the old repos went¶
- Old meta-repo
main→ branchlegacy-main+ tagpre-monorepo(read-only reference). - Per-package sub-repos (
silex-lib,grapesjs-*, …) → consolidated into the monorepo. The standalone repos stay online during the transition and will be archived read-only later; all new work happens in the monorepo.
Why a monorepo¶
Consolidating Silex into a single monorepo is one step in moving off proprietary platforms (GitHub, npm) toward free/libre infrastructure — part of Silex's NLnet-funded work (NGI0 Commons Fund, project 2025-10-133).
Edit this page on GitLab