go-cms-widgets

Guides widget definition, composition, persistence, and rendering in the Go CMS backend.

Updated Jun 15, 2026
One-click install
npx skills add https://github.com/vernal96/go-cms --skill go-cms-widgets-vernal96
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: go-cms-widgets
Source: https://github.com/vernal96/go-cms/tree/main/.codex/skills/go-cms-widgets
Command: npx skills add https://github.com/vernal96/go-cms --skill go-cms-widgets-vernal96

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Widget work in the Go CMS spans typed declarations, template layout slots, resource bindings, admin editing, and public rendering, and mixing these layers causes broken catalogs, invalid placements, and leaked internals. This Skill keeps each concern separate so widget changes stay consistent across backend, admin, and public output. ## Core Features & Use Cases - Typed widget declarations: Use typed widget/view objects in project, profile, and template code instead of raw codes or Kind discriminators. - Layout and persistence rules: Enforce body/sidebar areas, single resource-widget slots, stable binding IDs, and transactional reorder behavior. - Admin and public rendering: Drive editor metadata from the backend and render body/sidebar separately with per-widget failure isolation. - Use Case: When adding a new module widget with a custom view, follow the Skill to declare it typed, expose it through the module runtime, validate admin mutations, and render it publicly without touching global registries. ## Quick Start Ask the assistant to add or modify a Go CMS widget, its view, placement, or admin editing behavior following the widget architecture rules.

Frequently Asked Questions about go-cms-widgets

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new widget to a Go CMS module?▼

Declare the widget as a typed reference in the module, provide its runtime implementation during module runtime build, and let catalog compilation connect the reference to the implementation. Never register it in a mutable global widget registry.

How do resource widgets get placed in templates?▼

Templates declare static typed widgets plus an explicit resource-widget slot per area, limited to body and sidebar. Resource bindings replace the slot in place so ordering is preserved, with at most one slot per area.

Can a widget have multiple views in Go CMS?▼

Yes, custom views are typed profile declarations associated with a widget, and templates reference the view object directly. The default view is implicit and requires no explicit declaration.

Why does a disabled widget still appear in the admin editor?▼

Disabled resource widgets remain persisted and editable by design but are omitted from public rendering. The enabled state is part of common presentation, separate from widget business params.

What data must be persisted for a resource widget binding?▼

Persist resource ID, binding ID, widget code, area, position, view, presentation, and params. The binding needs its own stable ID because the same widget type can occur multiple times on a resource.