Skip to content

Commit cc73a0e

Browse files
authored
chore: update README.md
1 parent 3a51fd1 commit cc73a0e

File tree

1 file changed

+209
-9
lines changed

1 file changed

+209
-9
lines changed

README.md

Lines changed: 209 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
</p>
44

55
<p align="center">
6-
An open-source serverless enterprise CMS built for AWS.
6+
AI-programmable CMS for enterprises hosting on AWS
77
</p>
88

99
<p align="center">
@@ -13,22 +13,222 @@
1313
<a href="https://github.com/webiny/webiny-js/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License"></a>
1414
</p>
1515

16+
17+
# About Webiny
18+
19+
Open-source content platform. Self-hosted on AWS serverless. Built as a TypeScript framework you extend with code, not a closed product you configure through a UI.
20+
21+
Runs on Lambda, DynamoDB, S3, and CloudFront inside your own AWS account. Scales automatically. No servers to manage. Infrastructure provisioned via IaC (Pulumi) in a single `deploy` command.
22+
23+
Used in production by teams managing hundreds of millions of content records, petabytes of assets, and thousands of editors — including Amazon, Emirates, Fortune 500 companies, government agencies, and SaaS platforms that white-label Webiny inside their own products.
24+
25+
[Documentation](https://www.webiny.com/docs) · [Learn Webiny Course](https://www.webiny.com/learn) · [Community Slack](https://www.webiny.com/slack)
26+
27+
---
28+
29+
## What's Inside
30+
31+
**Headless CMS** — Custom content models, GraphQL API, field-level permissions, localization, versioning. Models can be defined through the admin UI or in code via the framework.
32+
33+
**Website Builder** — Visual drag-and-drop page editor with a Next.js SDK. Render pages through your own frontend (Vercel, CloudFront, wherever). Create custom page elements with React components.
34+
35+
**File Manager** — Digital asset management with CDN delivery, folder structure, tagging, search. Integrated into CMS and Website Builder.
36+
37+
**Publishing Workflows** — Multi-step content approval with draft states, reviewer assignments, scheduled publishing, and audit trails.
38+
39+
**Multi-Tenancy** — Native tenant isolation (data, users, assets, permissions) from a single deployment. One instance can host thousands of tenants. Tenants are created and managed programmatically via GraphQL API. Supports hierarchical tenant structures (Root → Brand → Market, Root → Client → Site, etc.).
40+
41+
**Webiny Framework** — TypeScript framework with lifecycle hooks, dependency injection, GraphQL schema extensions, admin UI extension points, and infrastructure extensions. This is the core — it's what makes Webiny programmable rather than just configurable.
42+
43+
---
44+
45+
## Architecture
46+
47+
```
48+
┌─────────────────────────────────────────────────────┐
49+
│ Your AWS Account │
50+
│ │
51+
│ ┌──────────┐ ┌──────────┐ ┌─────┐ ┌──────────┐ │
52+
│ │ Lambda │ │ DynamoDB │ │ S3 │ │CloudFront│ │
53+
│ │ (API + │ │ (Content │ │(Assets)│ │ (CDN) │ │
54+
│ │ business │ │ storage) │ │ │ │ │ │
55+
│ │ logic) │ │ │ │ │ │ │ │
56+
│ └──────────┘ └──────────┘ └─────┘ └──────────┘ │
57+
│ │
58+
│ Optional: OpenSearch (full-text search at scale) │
59+
│ Optional: VPC deployment, multi-AZ, custom config │
60+
│ │
61+
│ All provisioned automatically via Pulumi IaC │
62+
└─────────────────────────────────────────────────────┘
63+
```
64+
65+
**Stack:** TypeScript, React, GraphQL, Node.js, Pulumi, AWS serverless services.
66+
67+
**What you control:** Everything. The IaC templates are open-source. Modify Lambda memory, add CloudWatch alarms, change VPC configuration, add custom AWS resources — it's your infrastructure.
68+
69+
**What you don't manage:** Servers. Patching. Scaling. Capacity planning. That's the point of serverless.
70+
1671
---
1772

18-
## Documentation
73+
## Quick Start
74+
75+
**Prerequisites:** Node.js 22+, Yarn, AWS account with programmatic access.
76+
77+
```bash
78+
npx create-webiny-project my-project
79+
cd my-project
80+
yarn webiny deploy
81+
```
1982

20-
For full documentation, visit [webiny.com/docs](https://www.webiny.com/docs).
83+
First deploy takes 5–15 minutes (AWS provisioning). After that, you get an admin panel URL. Create your first admin account, and you're in.
2184

22-
## Extensions
85+
**Local development:**
86+
87+
```bash
88+
yarn webiny watch admin # React dev server on localhost:3001
89+
yarn webiny watch api # Local Lambda execution environment
90+
```
91+
92+
**New team member onboarding:**
93+
94+
```bash
95+
git clone <your-repo>
96+
yarn
97+
# Ready to develop
98+
```
99+
100+
---
23101

24-
Explore community extensions at [github.com/webiny/extensions](https://github.com/webiny/extensions).
102+
## AI-Assisted Development
103+
104+
Webiny ships with an **MCP server** and **AI skills** that give AI coding agents (Claude Code, Cursor, Kiro, etc.) deep context about the platform's architecture, extension points, and patterns.
105+
106+
This means you can ask an AI agent to:
107+
- Create content models with specific field types and validation
108+
- Build lifecycle hooks that trigger on content events
109+
- Extend the GraphQL API with custom queries and business logic
110+
- Scaffold admin UI extensions with React components
111+
- Wire integrations with external systems via lifecycle events
112+
- Set up multi-tenant configurations programmatically
113+
114+
The AI produces code that follows Webiny's actual patterns because the MCP server gives it real knowledge of the framework — not generic guesses.
115+
116+
**Why this works better on Webiny than most platforms:** The framework is strongly typed with explicit extension points. AI-generated code either fits the type system or it doesn't compile. There's no ambiguous plugin API where the AI has to guess. Types enforce correctness.
117+
118+
**Getting started with the MCP server:**
119+
120+
```bash
121+
# The MCP server runs locally inside your Webiny project
122+
# Connect it to your AI coding tool of choice
123+
# See docs for tool-specific setup instructions
124+
```
125+
126+
[AI-Assisted Development Guide](https://www.webiny.com/docs/build-with-ai/ai-assisted-development)
127+
128+
---
25129

26-
## Community
130+
## Extending Webiny
27131

28-
For help, discussion about best practices, or feature ideas:
132+
All customization happens in the `extensions/` folder and is registered in `webiny.config.tsx`. Four extension types:
29133

30-
[Join our Slack community](https://www.webiny.com/slack)
134+
**API Extensions** — Custom GraphQL schemas, resolvers, lifecycle hooks, business logic.
135+
136+
```typescript
137+
// extensions/NotifyOnPublish.ts — Example: send Slack notification when content is published
138+
class NotifyOnPublish implements CmsLifecycleHook.Interface {
139+
constructor(private slackService: SlackService.Interface) {}
140+
141+
async afterPublish(params: AfterPublishParams): Promise<void> {
142+
await this.slackService.notify(`Content published: ${params.entry.title}`);
143+
}
144+
}
145+
```
146+
147+
**Admin Extensions** — Custom UI components, white-label branding, new views, tenant-specific themes. Standard React — use any patterns and libraries you already know.
148+
149+
**Infrastructure Extensions** — Modify AWS resources via Pulumi. Add Lambda functions, S3 buckets, CloudWatch alarms, or change existing resource configuration.
150+
151+
**CLI Extensions** — Custom commands for deployment workflows, data migrations, code generators.
152+
153+
[Extensions Guide](https://www.webiny.com/docs/core-concepts/extensions)
154+
155+
---
156+
157+
## When to Use Webiny
158+
159+
- You need a self-hosted CMS and don't want to run servers
160+
- You need multi-tenancy as a first-class primitive, not a workaround
161+
- You want to extend the CMS with real code (TypeScript), not just configuration
162+
- You need to embed a CMS inside your own product (white-label)
163+
- Data ownership and compliance requirements rule out SaaS CMS
164+
- You want AI agents to be able to build on your content platform effectively
165+
- You're on AWS (or planning to be)
166+
167+
## When Not to Use Webiny
168+
169+
**Be honest with yourself about these:**
170+
171+
- **Simple sites or blogs.** Webiny is built for complex projects. If you need a blog with 10 pages, use something simpler.
172+
- **Not on AWS.** Webiny only runs on AWS. No GCP, no Azure, no on-prem. If that's a dealbreaker, it's a dealbreaker.
173+
- **No TypeScript/React skills on the team.** The entire extension model is TypeScript and React. If your team works in a different stack and doesn't want to adopt these, Webiny won't be a good fit.
174+
- **You want a no-code, plug-and-play SaaS CMS.** Webiny is a platform for developers to build on. If you want zero development involvement, this isn't it.
175+
176+
---
177+
178+
## Licensing
179+
180+
**Community Edition** — MIT license. Free forever. Includes Headless CMS, Website Builder, File Manager.
181+
182+
**Business Edition** — Commercial license starting at $79/mo. Adds RBAC, multi-tenancy, publishing workflows.
183+
184+
**Enterprise Edition** — Custom pricing. Adds SSO, audit logs, team management, priority support, managed hosting option.
185+
186+
All plans: unlimited content entries, pages, assets, API calls, roles, and workflows. No per-seat pricing traps. No API metering.
187+
188+
[Pricing Details](https://www.webiny.com/pricing)
189+
190+
---
191+
192+
## Project Structure
193+
194+
```
195+
my-webiny-project/
196+
extensions/ # Your custom code lives here
197+
public/ # Admin app static assets
198+
webiny.config.tsx # Project configuration (React components, type-safe)
199+
package.json
200+
tsconfig.json
201+
```
202+
203+
Single `package.json`. Single `tsconfig.json`. Configuration in `webiny.config.tsx` uses React components for type safety and IDE auto-completion.
204+
205+
---
206+
207+
## Key Commands
208+
209+
```bash
210+
npx create-webiny-project <name> # Create new project
211+
yarn webiny deploy # Deploy to AWS
212+
yarn webiny deploy core api # Deploy specific apps
213+
yarn webiny watch admin # Local admin dev server
214+
yarn webiny watch api # Local Lambda dev environment
215+
yarn webiny info # Show endpoints and URLs
216+
yarn webiny destroy # Tear down all AWS resources
217+
```
218+
219+
---
220+
221+
## Resources
222+
223+
- **[Learn Webiny Course](https://www.webiny.com/learn)** — Structured course covering architecture, extensions, deployment, and AI-assisted development
224+
- **[Documentation](https://www.webiny.com/docs)** — Full reference docs
225+
- **[Community Slack](https://www.webiny.com/slack)** — Community chat
226+
- **[Website Builder Next.js Starter](https://github.com/webiny/website-builder-nextjs)** — Starter kit for rendering Webiny pages with Next.js
227+
228+
---
31229

32230
## Contributing
33231

34-
If you're interested in contributing to Webiny, please read our [contributing docs](/docs/CONTRIBUTING.md) **before submitting a pull request**.
232+
We welcome contributions. See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.
233+
234+
Before opening a PR, please check existing issues or start a discussion — it helps us give you better guidance and avoids duplicate work.

0 commit comments

Comments
 (0)