Frontend layer

Shell

Shell is the component and wake runtime. It owns markup, local UI state, SSR adoption and view rendering.

.shell files

A .shell file is a component file. It can export a Props type, render markup, use local Shell state, and be compiled for DOM and SSR.

ts
<script lang="ts">  export type Props = {    readonly title: string  }</script><section>  <h1>{props.title}</h1></section>

Typed props

The component owns its props contract. Today resource-side page typing is explicit TypeScript. Later the VS Code extension can make this flow tighter from .shell files.

Control flow

Shell templates use explicit tags such as <when> and <each>. They keep the template readable without hiding the render model behind a client router.

View outlet

The <view> outlet renders a selected view from the generated view registry. It is not a router. Shield decides the view; Shell renders it.

ts
<view name={props.view} props={props.props} />

Wake

Wake adopts server-rendered HTML. It does not re-own the page as an SPA by default. Enhanced links and forms can make navigation feel warm while the server still owns the result.

ts
import './style.css'import { wakeRoot } from '@schildw3rk/shield/client'import App from './App.shell'wakeRoot(App)