Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Ishaq74/concordia/llms.txt
Use this file to discover all available pages before exploring further.
Blog System
Concordia’s blog system provides a complete CMS for publishing articles with multi-language translations, author management, categorization, media galleries, and community engagement through comments.Overview
The blog system is built from multiple schema files:blog_posts.schema.ts- Core article structureblog_authors.schema.ts- Author profilesblog_categories.schema.ts- Content categorizationblog_translations.schema.ts- Multi-language contentblog_comments.schema.ts- Community discussionsblog_organization.schema.ts- Organization-level blogs
Blog Posts
Fromsrc/database/schemas/blog_posts.schema.ts:
Core Fields
Primary key identifier
Unique URL-friendly identifier for the post
Publication status:
draft, pending_review, published, archived, rejectedOptional reference to organization that owns this post
Publication date/time, set when status changes to
publishedDisplay Options
Whether to feature this post on the homepage
Whether to show this post in the main blog listing
Mark post as featured for special prominence
Content Metadata
Estimated reading time (e.g., “5 min”)
Total word count of the article
ISO 8601 duration format for Schema.org compatibility
Primary language code (ISO 639-1)
Community Features
Enable/disable comments on this post
Link to external discussion (e.g., forum thread)
Schema.org Integration
Content license (e.g., “CC BY-SA 4.0”)
Canonical URL for this article
Unique identifier for Schema.org structured data
Multi-Language Translations
Fromsrc/database/schemas/blog_translations.schema.ts:
Translation entry ID
Reference to parent blog post
Language code for this translation (ISO 639-1)
Article title/headline in this language
Alternative headline/subtitle
Full article content as structured JSON
Short excerpt or summary for listings
SEO-optimized page title
Meta description for search engines
SEO keywords array
Canonical URL for this translation
Translations are indexed by
post_id and in_language for efficient multilingual queries.Authors
Fromsrc/database/schemas/blog_authors.schema.ts:
Identity Fields
Author unique identifier
Unique URL slug for author profile page
First name in multiple languages
Last name in multiple languages
Display name shown on articles (multilingual)
Author biography in multiple languages
Professional title in multiple languages
Contact & Profile
Unique email address for the author
Reference to
blog_media table for avatar imageDirect URL to avatar image
Author’s personal or professional website
Array of URLs for social media profiles (Schema.org)Example:
["https://twitter.com/author", "https://linkedin.com/in/author"]Organization Affiliation
Reference to
blog_organizations tableAuthors can be affiliated with an organization, enabling organization blogs where multiple authors contribute under a shared brand.
Display Flags
Show author on homepage
Show author in blog listings
Feature this author prominently
SEO Fields
SEO title for author page
Meta description for author page
Keywords for author page
Canonical URL for author profile
Categories
Fromsrc/database/schemas/blog_categories.schema.ts:
Category identifier
Unique URL slug
Category name in multiple languages
Category description in multiple languages
Reference to featured image in
blog_mediaParent category for hierarchical structure
Show category on homepage
Show category in navigation menu
Show category in blog section
Mark as featured category
Categories support hierarchy via the
parentId field, allowing nested category structures.Comments
Fromsrc/database/schemas/blog_comments.schema.ts:
Universal Comment System
Comment identifier
ID of the entity being commented on
Type of entity:
blog, place, event, hike, classifiedParent comment ID for threaded discussions
Author Information
Commenter’s display name
Commenter’s email (for notifications, not displayed)
Content
Comment text as structured JSON (supports rich formatting)
Optional rating (0-5 stars) when comment is a review
Language code of the comment
Moderation
Moderation status:
pending, approved, rejectedOrganization Blogs
Fromsrc/database/schemas/blog_organization.schema.ts, organizations can have their own blog channels:
Identity
Organization identifier
Organization name
Unique URL slug
Alternative names array
Description in multiple languages
Organization website
Logo URL
Featured image URL
Organization slogan in multiple languages
Contact Information
Primary email
Primary phone number
Structured address object:
News Media Organization Fields
Concordia supports Schema.org NewsMediaOrganization properties for editorial transparency:Editorial standards and principles
How corrections are handled
Ethical guidelines
Diversity and inclusion policy
Ownership and funding transparency
Fact-checking procedures
Relationships
Fromblog_posts.schema.ts, posts connect to:
Authors (Many-to-Many)
Multiple authors can collaborate on a single post.
Categories (Many-to-Many)
Media (Many-to-Many)
Media usage type:
cover, inline, galleryPosition indicator for inline or gallery media
Database Indexes
Performance optimizations fromblog_posts.schema.ts:
Article Status Workflow
Fromconcordia-specs.md (lines 748-757):
Best Practices
Multi-Language Content
- Always create translations for all supported languages
- Use JSONB fields for language-specific content
- Set
inLanguageto match the primary content language
SEO Optimization
- Populate
seoTitle,seoDescription, andseoKeywordsfor each translation - Use canonical URLs to avoid duplicate content issues
- Set appropriate
timeRequiredandwordCountfor Schema.org
Organization Blogs
- Link authors to organizations via
worksForId - Set
organizationIdon posts for organization attribution - Use organization branding (logo, slogan) consistently