Overview
Flight Path is the Devarno blog, demonstrating how to integrate editorial content into V01T. It shows:- Storing blog articles as ArtefactData
- Managing article metadata and publishing workflow
- Serving articles via a public API
- Rendering articles in a Next.js frontend with Notion content
Data Structure
Article Metadata
Each blog article is stored as anArtefactData record. The source is the MOCK_ARTICLES array in seed_flight_path.py:
ArtefactData Model
Each article is stored with:| Field | Type | Description |
|---|---|---|
title | string | Article headline (e.g., “Building Skyflow 1.1”) |
slug | string | URL-safe identifier (e.g., “dje-skyflow-1.1”) |
cluster | string | Always “flight-path-articles” (groups all blog posts) |
raw_data | JSON | Full article metadata |
_meta | object | System metadata (external_id, last_synced) |
Content Storage
Article content is stored separately in Notion. V01T stores only metadata (title, excerpt, tags, etc.). The actual article body is fetched from Notion via@notionhq/client at render time.
This separation allows:
- Content updates in Notion without re-seeding V01T
- Caching metadata in V01T (fast list/search)
- On-demand content fetching (reduces payload)
- Version control of editorial metadata
Seeding Articles
Automatic Seeding
Use the management command to seed all articles:- Creates the
flight-pathapplication (if it doesn’t exist) - Creates a synthetic data source of type
artefact - Defines 4 blog articles from
MOCK_ARTICLES - Creates 4
ArtefactDatarecords - Stores full metadata in
raw_data
Dry Run
Validate data without writing to the database:Custom Articles
To integrate with a different article source (e.g., Airtable, Contentful), modifyARTICLES in the command or create a new seed command following the same pattern.
API Contract
List all articles
Filter by status
Search by keyword
Sort by priority
Pagination
Frontend Integration
Using @v01t/client
Fetch article list:In Next.js
TheArticlesService in devarno-landing uses V01T for article metadata:
Fetching Article Content
The blog page (src/app/blog/[slug]/page.tsx) fetches article metadata from V01T and content from Notion:
Metrics and Insights
Track article performance via V01T metadata:Data Refresh
Manual Refresh
Automated Sync (via n8n)
A scheduled n8n workflow can:- Monitor a Google Sheets or Airtable “Article Roadmap”
- Trigger when status changes to
published - Call the seed command to add/update metadata
- Clear frontend cache (CDN purge, revalidate tags)
Publishing Workflow
Draft to Published
- Author writes in Notion
- Article status set to
draftin metadata - Editor reviews and promotes to
published - Seed command called:
python api/manage.py seed_flight_path --skip-existing=false - V01T metadata updated, frontend cache invalidated
- Article appears in blog list and search
Archive
Set status toarchived to hide from public API (query with ?search=archived for admin only).
Cluster Architecture
All articles usecluster: "flight-path-articles". This allows:
- Querying all articles with
?cluster=flight-path-articles - Grouping blog posts separately from other content types
- Future multi-blog support (e.g., engineering vs. marketing blogs)
Related
- Integration Guide — General integration patterns
- Devarno Ecosystem Integration — Organizations as NodeData
- Onboarding Guide — Getting started