Core Concepts

Block Types

Reference for all available block types in EpicContext, organized by section.

EpicContext uses typed blocks to ensure your product context is structured and consistent. Each block type defines a specific schema with required and optional fields.

Block Types by Section

Brand

Block TypeDescription
brand_positioningCore positioning statement, target audience, differentiators
brand_visual_identityColors, typography, logo usage, imagery guidelines
tone_of_voiceWriting style, personality traits, do's and don'ts
messaging_frameworkKey messages, value propositions, taglines
brand_moodboardVisual inspiration and reference imagery

Product

Block TypeDescription
product_overviewHigh-level product description, vision, mission
featureIndividual feature with description, user stories, priority
product_strategy_canvasStrategic product planning framework
glossaryDomain-specific terms and definitions

Users & Journeys

Block TypeDescription
personaUser persona with demographics, goals, pain points
jtbdJobs to be done framework entries
journey_mapEnd-to-end user journey with stages and touchpoints

Technical

Block TypeDescription
tech_stackTechnologies used with rationale
architecture_diagramSystem architecture documentation
api_endpointIndividual API endpoint specification
api_specFull API specification document
data_modelData model and schema documentation
integrationThird-party integration details
constraintTechnical constraints and limitations

Development

Block TypeDescription
epicLarge body of work with linked user stories
user_storyUser story with acceptance criteria
taskImplementation task with estimates
roadmapProduct roadmap with timeline

Decisions

Block TypeDescription
decisionArchitecture Decision Record (ADR)
meeting_notesMeeting notes with action items

Custom block types

If the built-in types don't fit your needs, you can define custom block types with your own schema. See your project settings for the block type editor.

Block Schema Structure

Every block type is defined by a schema that specifies its fields:

{
  "type": "persona",
  "fields": [
    { "key": "name", "type": "text", "required": true },
    { "key": "description", "type": "textarea" },
    { "key": "goals", "type": "textarea" },
    { "key": "pain_points", "type": "textarea" },
    { "key": "behaviors", "type": "textarea" }
  ]
}

Field Types

Blocks can use these field types:

Field TypeDescription
textSingle-line text input
textareaMulti-line text
richtextRich text with formatting (Tiptap editor)
numberNumeric value
urlURL with validation
emailEmail address
colorColor picker (hex value)
selectSingle selection from options
multiselectMultiple selections from options
dateDate picker
booleanToggle/checkbox
jsonRaw JSON editor

Relationships Between Blocks

Blocks can reference other blocks to create a connected knowledge graph. For example:

  • A Feature can link to the Persona it serves
  • A User Story can link to its parent Epic
  • A Decision can reference the Feature it applies to

These relationships are maintained in the block's value and visualized in the Context Map.

Last updated: 2026-02-18