Справжній сайт.
Справжній контент.
Сайт клініки, редакційний процес і адмін-панель на Angular. Усе це поєднує ForgeCMS.
Headless CMS із підходом code-first, що почувається як удома у вашому Angular-застосунку. Моделюйте в TypeScript, дайте редакторам справжню адмін-панель на Angular і залиште інтерфейс сайту за собою.
import { defineCollection, defineField } from '@forge-cms/core';
export const posts = defineCollection({
slug: 'posts',
drafts: true,
fields: {
title: defineField.text({ required: true }),
slug: defineField.slug({ autoGenerate: true, sourceField: 'title' }),
author: defineField.relation({ collection: 'users' })
}
});Колекція стає валідацією, збереженням даних, API та інтерфейсом редагування на Angular.
Жодної окремої схеми, яку треба синхронізувати.pnpm add @forge-cms/core @forge-cms/runtime @forge-cms/db @forge-cms/auth @forge-cms/storageЛіцензія MIT. ForgeCMS 1.0.0 опубліковано. Кандидат 1.0.0-rc.2 залишається в історії випусків; Agent Kit і Analytics — експериментальні.
Як складається ForgeCMS
П’ять кроків від файлу TypeScript до сайту, яким керує ваш клієнт. Кожен із них є частиною опублікованого випуску 1.0.
01 Схема · Насамперед TypeScript
Колекція — це звичайний TypeScript у вашому репозиторії: поля, чернетки, мови та правила доступу, які проходять рев’ю, як і будь-яка інша зміна.
export const services = defineCollection({
slug: 'services',
drafts: true,
locales: ['es', 'en'],
fields: {
title: defineField.text({ required: true, localized: true }),
summary: defineField.textarea({ localized: true }),
image: defineField.upload({ collection: 'media' })
}
});02 Runtime · Local API + REST
Серверний код викликає Local API без HTTP-запиту; браузери використовують REST. Обидва шляхи виконують однакові перевірки доступу, хуки, чернетки та валідацію.
// Analog server route: no HTTP hop, visitor access rules
const { docs } = await runtime.find({
collection: 'services',
locale: 'es',
overrideAccess: false,
user: null
});GET /api/v1/services?locale=es03 Angular · Типізований клієнт + SSR
Angular-клієнт перетворює колекцію на ресурс сигналів, типізований за вашою схемою, який рендериться на сервері за допомогою Analog і гідратується.
@Component({
template: `@for (s of services.value()?.docs; track s.id) {
<app-service-card [service]="s" />
}`
})
export class ServicesPage {
services = collectionResource<Schema>(() => ({
collection: 'services', locale: 'es'
}));
}Рендеринг на сервері · гідратація в браузері
04 Адмін-панель · Контроль для редакторів
Багаторазова адмін-панель на Angular монтується під вашими власними маршрутами: контент, чернетки, медіа, користувачі та обидві мови — нічого не треба збирати вручну.
05 Розгортання · Сертифіковані профілі
Cloudflare Pages із D1 і R2 або будь-який хост із Node, libSQL і S3-сумісним сховищем. Обидва профілі сертифіковано на основі запакованих артефактів.
Cloudflare
Сертифіковано на основі запакованих артефактів
Портативний
Сертифіковано на основі запакованих артефактів
Чому ForgeCMS
Code-first для розробника, зручна для клієнта і готова до розгортання на edge або будь-де, де працює Node.
Створена для Angular і Analog, типізована від схеми до шаблону, з рендерингом на сервері та гідратацією.
services.tsSchemacollectionResourcetemplateБагаторазова адмін-панель, якою ваш клієнт справді може користуватися, вбудована у ваш застосунок.
Нативно для edge на Cloudflare або портативно будь-де, де працює Node.
Необов’язкові інструменти для розробників, щоб агенти програмування дотримувалися підтримуваних патернів Forge.
Розробник ↔ клієнт
Code-first · пишете ви
defineCollection({
slug: 'services',
locales: ['es', 'en'],
fields: {
title: defineField.text({ localized: true }),
summary: defineField.textarea({ localized: true }),
image: defineField.upload({ collection: 'media' })
}
})Зручно для клієнта · редагують вони
Ви оголошуєте поля один раз. Forge рендерить форму, яку редагує ваш клієнт.
Редактори змінюють контент, а не макети. ForgeCMS — не конструктор сторінок: ваші компоненти залишаються вашими.
Для реальних клієнтських сайтів
Оголосіть мови в схемі. Поля text і textarea верхнього рівня зберігають окреме значення для кожної мови; slug, зображення та зв’язки залишаються спільними.
Форматований текст, блоки, масиви, завантаження й зв’язки в 1.0 не локалізуються.
Посібник з локалізаціїІлюстрація · адмін-панель редагує одну мову за раз
| Поле | ES | EN |
|---|---|---|
| Заголовок | Tratamientos faciales | Facial treatments |
| Опис | Cuidado de la piel con resultados naturales. | Skin care with natural-looking results. |
Agent Kit Експериментально
Одна команда підключає локальний MCP-сервер лише для читання та офіційні skills саме для встановленої вами версії. Інструменти розробки навколо ForgeCMS; сумісність може змінюватися.
pnpm add -D @forge-cms/[email protected]pnpm exec forge-cms-agent initAnalytics Експериментально
Необов’язкова аналітика переглядів сторінок у тій самій адмін-панелі на основі Cloudflare Analytics Engine. Приватна за задумом:
Analytics
Ілюстративний перегляд · не реальні дані
Перегляди сторінок
1 284
+18,4 % порівняно з попереднім періодом 7d
Динаміка
Популярні сторінки
Джерела переходів
Країни
Сайт клініки, редакційний процес і адмін-панель на Angular. Усе це поєднує ForgeCMS.
Доказ
Lumea — сайт клініки, побудований на ForgeCMS. Усе, що описано вище, працює там на реальному runtime:
Модульна основа
Типізоване використання та багаторазова адмін-панель
@forge-cms/angularТипізований клієнт, ресурси сигналів, сесія автентифікації та guard
@forge-cms/adminВбудовувана адмін-панель на Angular: контент, користувачі, вхід
Операції, транспорт і адаптери розгортання
@forge-cms/s3S3-сумісний StorageAdapter для портативного надійного зберігання файлів
@forge-cms/apiКонтракти ApiContext і HTTP-обробників
@forge-cms/runtimeLocal API, доступ, хуки, чернетки, HTTP-обробники
@forge-cms/cloudflareАдаптери бази даних D1 і сховища R2
Модель, дані, ідентичність і файли
@forge-cms/coreDSL схем, валідація, визначення колекцій і globals
@forge-cms/dbКонтракт бази даних, адаптери InMemory і libSQL, синхронізація схеми
@forge-cms/authАвтентифікація колекції користувачів, сесії, ключі API
@forge-cms/storageКонтракт сховища й адаптер InMemory
Контракти адаптерів і підтримка агентів програмування
@forge-cms/testingНабори контрактних тестів для адаптерів
@forge-cms/agentMCP-сервер лише для читання та офіційні skills для агентів програмування
ЕкспериментальноБази даних: InMemory, libSQL і Cloudflare D1. Сховище: InMemory, Cloudflare R2 і S3-сумісний сервіс (у CI сертифіковано Garage; AWS S3, Backblaze B2 і Wasabi можна налаштувати, але вони не сертифіковані). Сертифіковано два надійні профілі: Cloudflare (D1 + R2) і портативний (libSQL + S3).
Відкрити швидкий стартForgeCMS 1.0 → 2.0
ForgeCMS 1.0.0 випущено. Дорожня карта V2 зосереджена на сильніших редакційних процесах, досвіді розробників і експлуатації в продакшені.
Це продуктові етапи, а не версії npm чи дати постачання. Функції V2 залишаються намірами дорожньої карти, доки їх не випущено й не задокументовано.
10 етапів · наступний — V2-01
Завершити доопрацювання після сертифікації 1.0 і посилити правила випусків, безпеки та доступності.
Пришвидшити старт, налаштування, діагностику та створення першої колекції.
Розвинути багаторазову адмін-панель на Angular у цілісний бекофіс за замовчуванням.
Покращити керування колекціями, відновлення та робочі процеси редакторів.
Підтримати щоденну редакційну роботу портативним форматованим текстом і зручними інструментами для медіа.
Розширити структуроване й багатомовне моделювання, зберігаючи паритет адаптерів.
Додати надійні процеси рецензування, планування, аудиту та керування ідентичністю.
Дати розробникам безпечні й правдиві інструменти для огляду та діагностики проєкту ForgeCMS.
Зробити оновлення, спостережуваність і відновлення відтворюваними в усіх підтримуваних профілях.
Перевірити продукт із незалежними користувачами, сертифікованою міграцією та випуском.
Ознайомтеся з моделлю, дослідіть робочий проєкт і створіть систему контенту, яка органічно вписується у ваш Angular-застосунок.