Foundations
Editorial content model
Stories, intake candidates, media and directory records have distinct identities and lifecycle states.
On this page
Entity model
| Entity | Important distinctions |
|---|---|
| Story | Title, slug, excerpt, HTML body, topic, story type, source/author, image and publication settings. |
| Editorial classification | Creator feature, staff brief, original story, opinion and sponsored content are separate from story type. |
| Syndication | Ready, partner review, site only and hold/remove track distribution eligibility. |
| Candidate | Imported/proposed source material awaiting review; not automatically published content. |
| Media asset | Reusable file plus alt text, credit and usage metadata; not merely a URL. |
| Directory record | Business/place identity, public details and approval state. |
| Analytics | Time-bounded aggregates with readiness and update context. |
Content integrity
- Featured placement is not publication. Saving a draft is not publication. Review approval is not a universal substitute for either.
- Keep external source URLs and attribution available to editors. Do not fabricate source authority.
- State the difference between scheduled time, story date and actual publication.
- Capture fixtures must never be imported into production databases as real stories, events or organizations.
Source references
| File | Responsibility |
|---|---|
| db/schema.ts | Audited Townwell implementation; use this file when extending this interface. |
| lib/story-types.ts | Audited Townwell implementation; use this file when extending this interface. |
| lib/story-editorial.ts | Audited Townwell implementation; use this file when extending this interface. |
| components/admin/story-editor-form.tsx | Audited Townwell implementation; use this file when extending this interface. |
| lib/media-library.ts | 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