# webcm
**Repository Path**: mirrors_cloudflare/webcm
## Basic Information
- **Project Name**: webcm
- **Description**: 🧩 Components Manager for the Web. Free, open-source, and fast!
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2022-06-28
- **Last Updated**: 2026-02-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
**WebCM** is a proxy server implementation demonstrating the principles of a [Components Manager](https://managedcomponents.dev/getting-started/components-manager).
* **Purpose:** This repository serves as a **reference implementation** and **proof-of-concept** to illustrate how a proxy can integrate with and manage components.
* **This code is not intended for use in production environments.** It has not been rigorously tested for security or reliability. Users should be aware that, as a reference implementation, it may contain security considerations that would need hardening before any practical deployment.
It works independently from your existing HTTP server. By proxying your server, it
can add endpoints, execute server-side code, manipulate responses and
more. These capabilities allow for a very performant way to load Managed
Components.
## Usage
> 💡 **Prerequisite:** To run WebCM you need to use Node version 18. You can
> then install all dependencies with `npm i`.
It's very easy to get up and running with WebCM using `npx`!
1. Create a `webcm.config.ts` config file (use
[example.config.ts](./example.config.ts) as an example)
2. Run `npx webcm`
3. WebCM will automatically download the Managed Components you specified and
start the server
## Develop
1. `git clone git@github.com:cloudflare/webcm.git && cd webcm && npm i`
2. Create a `webcm.config.ts` config file (use
[example.config.ts](./example.config.ts) as an example)
3. Run `npm run dev`
## Build your own Managed Components
You might want to make WebCM load a locally developed Managed Component.
To do so, run:
```bash
npx webcm path/to/component.ts
```
This will run the component on a simple static site, with all permissions
enabled. If you want to proxy a different website, pass the URL as another CLI
argument:
```bash
npx webcm path/to/component.ts https://example.com
```
To pass custom settings to that component, use `--settings_` flags,
like so:
```bash
npx webcm path/to/component.ts --settings_apiKey=xxxxxxxxx
```
To test the component with different permissions, create a `webcm.config.ts`
(see [example.config.ts](./example.config.ts)) and set it to:
```ts
export default {
components: [
{
path: './path/to/component.ts',
permissions: ['execute_unsafe_scripts'],
},
],
}
```
## Read more
- See [managedcomponents.dev](https://managedcomponents.dev) for more
information about Managed Components and how they work
- Check the [Managed Component Starter
Template](https://github.com/managed-components/starter-template) for buildin
your own Managed Component