Skip to content

Commit 6cad211

Browse files
add why-oc-section
1 parent 47baef4 commit 6cad211

File tree

2 files changed

+50
-1
lines changed

2 files changed

+50
-1
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
5+
# Why OpenComponents?
6+
7+
> A pragmatic, language-agnostic approach to micro-frontends for organisations where multiple autonomous teams own different parts of the UI.
8+
9+
## Key Benefits
10+
11+
1. **Server-side rendering without Node on your edge**
12+
The OC Registry (a lightweight Node service) can render components and return ready-to-inject HTML to any host—C#, PHP, Java, Go… This decouples consumer stacks from JavaScript runtimes while still delivering SSR, SEO, and fast first paint.
13+
14+
2. **Immutable, semantically versioned artifacts**
15+
Each publish creates a new, immutable version (`my-header/1.4.2`). Consumers select a range (`1.x.x`, `~1.4.0`) at runtime, enabling safe rollbacks and deterministic builds.
16+
17+
3. **True team autonomy**
18+
Components live in separate repos, pipelines, and deploy schedules. The registry is the only contract—no shared monorepo or Webpack configuration required.
19+
20+
4. **Built-in CDN offload**
21+
Static assets (JS, CSS, images) are automatically pushed to the configured storage adapter (S3, GCS, Azure Blob). Consumers fetch a single optimized URL.
22+
23+
5. **Framework-agnostic templates**
24+
ES6 by default, with first-class support for React, Vue, Svelte, or custom renderers.
25+
26+
6. **Language-agnostic consumption**
27+
Because the contract is plain HTTP + HTML, any backend or CMS can compose pages with OpenComponents, making it ideal for brownfield or polyglot environments.
28+
29+
## Feature Comparison
30+
31+
| Capability | OpenComponents | Module Federation (Webpack) |
32+
| --------------------------- | -------------------------- | --------------------------- |
33+
| **SSR on non-Node host** | ✅ via Registry | ❌ Node required |
34+
| **Runtime version pinning** |`my-comp/1.x.x` | ⚠️ Bundled at build time |
35+
| **Ecosystem lock-in** | None (plain HTTP) | Webpack-specific |
36+
| **Static asset CDN** | Built-in upload | External setup |
37+
| **Team independence** | Separate repos & pipelines | Shared build config |
38+
39+
## When to Choose OpenComponents
40+
41+
- Your organisation runs mixed stacks (e.g., .NET, Java, PHP) but wants shared micro-frontends.
42+
- You need deterministic, semver-based rollout and rollback mechanisms.
43+
- Each squad should deploy UI independently without a central build.
44+
- SEO or performance goals require SSR, but migrating your main app to Node is not an option.
45+
46+
## Learn More
47+
48+
- [Architecture Overview](./architecture-overview.md)
49+
- [Quick-Start Tutorial](/docs/quick-start-tutorial)

website/sidebars.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ const sidebars = {
2020
{
2121
type: "category",
2222
label: "Introduction & Concepts",
23-
items: ["concepts/architecture-overview"],
23+
items: ["concepts/why-opencomponents", "concepts/architecture-overview"],
2424
},
2525
{
2626
type: "category",

0 commit comments

Comments
 (0)