Patterns
Story authoring and publication
Separate writing, saving, editorial classification, scheduling and publication in a purpose-built CMS workflow.
On this page
Task and context
Separate writing, saving, editorial classification, scheduling and publication in a purpose-built CMS workflow.
Flow and composition
| Stage | Interface responsibility |
|---|---|
| Open | Choose a record from Stories or create a new draft. |
| Details | Set title, slug, type, topic, source and author context. |
| Content | Write structured body and manage story imagery. |
| Publishing | Review distribution, featured placement and timing. |
| Save | Persist the intended draft changes with pending/error feedback. |
| Publish/preview | Confirm visibility separately; preview clearly identifies draft context. |
Decisions and handoff
- Publication, featured placement and syndication are independent decisions.
- The editor form retains mounted tab panels; hidden fields still belong to the submission.
- Check timezone and server validation before scheduling.
Recovery and acceptance
- Preserve edits after a failed save.
- Confirm public visibility only from the actual server result and public route.
- Capture copy uses no-op actions, so screenshots certify layout rather than successful publication.
Source references
| File | Responsibility |
|---|---|
| components/admin/story-editor-form.tsx | Audited Townwell implementation; use this file when extending this interface. |
| app/admin/(shell)/stories/actions.ts | Audited Townwell implementation; use this file when extending this interface. |
| components/admin/admin-publication-control.tsx | Audited Townwell implementation; use this file when extending this interface. |
Examples from the app
Actual Boise Today and Townwell UI with synthetic editorial, business, review, media metadata and analytics. Existing Boise imagery; no live data changes. Captured at 2× resolution or higher. Select an image to inspect it full size.
Related topics
Source audit: 2026-10-07 · Revision ce8bc72b96da · Documentation v0.1