## Summary - Document how people create, connect, edit, validate, and publish MDX-backed Content Blocks. - Document the complete MCP workflow, including scoped expression sources, frontmatter updates, diagnostics, conflicts, and disconnect behavior. - Add two focused screenshots for the human workflow. - Fix issues found by a low-reasoning MCP agent while executing every documented workflow. Ref #6182 ## Implementation notes - Connection confirmation uses the public `confirmReplacement` field because `confirm` is reserved as a hidden transport field. - MCP edits frontmatter with `update-content-block-frontmatter`; materialized MDX elements are not persistent targets for generic instance mutation tools. - Reload now intentionally discards a conflicted local source and accepts the Asset's latest storage revision before an edit is reapplied. - Generated MCP documentation and runtime contracts are updated from their source files. ## Checklist - [x] Document the human MDX Content Block workflow. - [x] Document MCP discovery, connection, editing, diagnostics, frontmatter, dynamic sources, conflicts, and disconnection. - [x] Add only screenshots that clarify otherwise hard-to-describe UI steps. - [x] Test every documented MDX capability through the local MCP CLI with a low-reasoning agent. - [x] Reproduce and fix the replacement-confirmation schema mismatch. - [x] Reproduce and fix persistent-session conflict reload and reapply. - [x] Add regression tests that failed before each product fix and pass afterward. - [x] Regenerate runtime contracts and generated MCP documentation. - [x] Review authoritative `docs/` content and update affected pages. - [x] Run affected tests, typechecks, formatting, and diff checks. ## Verification - Project Build: 208 affected tests passed. - Content Engine Asset session: 8 tests passed. - CLI documentation tests: 14 tests passed. - MCP docs generator: 3 tests passed. - Content Engine, Project Build, CLI, and MCP docs typechecks passed. - `pnpm oxfmt --check` passed. - `git diff --check` passed. - Low-reasoning MCP evaluation passed all documented workflows, including a real two-client revision conflict, reload, reapply, and final saved inspection.
5.3 KiB
Contributions
Contribute fixes and improvements to Webstudio as a designer or developer.
Process
If you want to contribute and don't know where to start, here is a step-by-step for a complete lifecycle, from idea to deployment.
-
If you have an idea that is not already in issues, open an issue or reach out on Discord.
-
After submitting an enhancement or a bug, we need to agree on a solution. You can jump into implementation right away, but be aware that we have to agree on the solution in the end. Communicating the problem you are solving and why you think the approach you are taking is the best is key for a quick process.
In fact, we are happy to help you communicate your ideas, so if you are not sure - talk to us on discord.
-
When the implementation is in a mergeable state, a core team member will deploy it to production.
Contributions for designers
Open the Webstudio repository in a local coding agent such as Codex and ask it to start the Builder locally. Open the URL it provides, then describe the changes you want and review them in the running interface.
The agent can handle setup, make the code changes, run the relevant checks, and help prepare the contribution. Follow the process above so the problem and solution are agreed before the change is merged.
Contributions for developers
Before contributing to the Builder UI, become familiar with the Design Docs and Webstudio Library. Use the established design system so new UI feels like a natural part of Webstudio. Ask questions or share feedback on Discord.
Running the Webstudio project using VS Code
Prerequisites
- VS Code installed: Download VS Code
- Docker installed: Install Docker
Steps
- Install the "Dev Containers" extension in VS Code:
- Open VS Code.
- Go to the Extensions view by clicking the Extensions icon in the Activity Bar on the side of the window.
- Search for "Dev Containers" and click Install. Alternatively, you can install it from the recommended extensions listed in the Webstudio project.
- Fork and clone the Webstudio repository:
- Fork the repository on GitHub.
- Clone your forked repository to your local machine.
- Open the repository in VS Code:
- Open VS Code.
- Select "File" > "Open Folder" and choose your project folder.
- Reopen in Container:
- Once your folder is open, you might see a notification asking if you want to reopen in a container. Click "Reopen in Container".
- If you don't see a notification, press
F1, typeDev Containers: Reopen in Container, and select it.
VS Code will now build the Docker container and open the Webstudio project inside it. This process will take some time as the environment is set up and dependencies are installed.
-
Run the development server:
-
After the setup completes, open the terminal in VS Code.
-
Run the following command:
pnpm dev
-
-
Open the application in your browser:
-
After running
pnpm dev, you will see a URL in the console that looks like this:➜ Local: https://wstd.dev:5173/ -
Cmd + click on the URL in the console to open it in your browser.
-
{% hint style="danger" %}
If VS Code shows you an "Open Browser" button, it will lead you to the wrong URL as they are only watching ports. Be sure to use wstd.dev and NOT localhost. The proper URL will show in the console.
{% endhint %}
Login locally
When downloading the app you will have two options for login and they both work in different ways.
Dev login
Dev login will create you a dev account so you don't need to be online or create a github app. To enable you create a file .env.development in apps/builder and include two lines:
DEV_LOGIN=true
AUTH_SECRET=a random value
To login in the app click on the "Login with Secret" button and paste your AUTH_SECRET in the input.
To log in as another user in dev mode, use your AUTH_SECRET, followed by : and any email address. For example: `abcd:example@email.com`\
GitHub Login
To login and use GitHub login you will need to create an OAuth app with the following values:
Name: Webstudio
Homepage URL: http://localhost:3000
Authorization callback URL: http://localhost:3000/auth/github/callback
When creating the app with
http://localhost:3000you will need to always open your app athttp://localhost:3000for the GitHub login to work.
After the app is created you will need to create a client secret and then copy that value and your client id to the .env file:
GH_CLIENT_SECRET=
GH_CLIENT_ID=
You are done! 🎉
Related
- Contributing to the Marketplace – Submit templates and sections
- FAQs – Common questions including licensing information
- Roadmap & Links – See what the team is working on