| .. | ||
| activities/migrations | ||
| auth/migrations | ||
| i18n | ||
| nickel | ||
| templates | ||
| user-dashboard/migrations | ||
| README.md | ||
Rustelo Resource Library
Base resources for all Rustelo implementations. These are the framework-level schemas, contracts, translations, and templates that any site built on Rustelo can import and override.
Structure
resources/
├── nickel/ NCL schemas and contracts (validation layer)
├── i18n/ Base FTL translations (framework-level only)
└── templates/ Base templates for email and build tooling
nickel/ — Nickel Schemas
Type contracts and default values for every configuration area. Implementations
import these to validate their site/config/ files at compile time.
| Directory | Validates |
|---|---|
site/ |
site/config/index.ncl — full site config |
rbac/ |
site/rbac.ncl — access policy |
routes/ |
Route definitions and menu entries |
themes/ |
Theme configuration |
content/ |
Content types and post metadata |
security/ |
Security headers and CSP |
server/ |
HTTP server configuration |
features/ |
Feature flags |
menus/ |
Navigation menu entries |
footer/ |
Footer configuration |
email/ |
Email provider configuration |
pipelines/ |
CI/CD and NATS pipeline configuration |
external-services/ |
Third-party service integration |
deps/ |
Dependency version constraints |
nickel/rbac/rbac-starter.ncl is a minimal starter policy to copy into a new
implementation's site/rbac.ncl.
i18n/ — Base Translations
Framework-level FTL strings covering authentication, common UI, navigation, cookie consent, generic page messages, and admin tooling.
Implementations override individual keys by providing the same key in their own FTL files — the registration system applies implementation strings with higher priority than framework defaults.
Naming convention
All keys are prefixed by their domain to avoid collisions across plugins:
auth-sign-in auth-*
nav-home nav-*
footer-copyright footer-*
cookie-accept cookie-*
content-read-more content-*
form-submit form-*
What is NOT here
Site-specific page strings (home page, about, contact, services, etc.) live
in the implementation's site/i18n/locales/ and are never part of the
framework resource library.
templates/ — Base Templates
| Directory | Contents |
|---|---|
email/ |
OTP code emails, form submission notifications |
build-tools/ |
Tera templates for build-time documentation |
Usage in implementations
# site/config/index.ncl
let C = import "path/to/rustelo/resources/nickel/site/contracts.ncl" in
{
site = { name = "My Site", ... },
...
} | C.SiteConfig
# site/rbac.ncl — start from the starter template
# cp rustelo/resources/nickel/rbac/rbac-starter.ncl site/rbac.ncl
FTL strings are loaded automatically at startup via ResourceContributor —
no manual import required. Implementation strings override framework defaults.