Overview

Sign inSign up

Foundation architecture · kernel v1.0.0

A platform kernel built to outlive its features.

Marvia ships a small, frozen core and nothing else. Connectors, AI agents, reports and marketplace packages attach through the SDK — so the foundation can stand for years without a rewrite.

Packages
17
Workers
6
Kernel events
78
Queues
5

Core principles

Six rules the kernel never breaks

Every module in the tree is checkable against this list. If a change violates one, the design is wrong — not the rule.

01

Open core

The kernel knows nothing about features. Everything else is an extension.

02

Extension-first

SEO, analytics, marketplace, AI, reports and connectors live outside core.

03

Provider agnostic

Database, storage, auth, AI and payments arrive as adapters — never SDK calls.

04

Schema-driven

Reports, content, forms and dashboards are generated from schemas.

05

Component reuse

One design token set, one registry, zero duplicated UI.

06

AI-friendly

Single-responsibility modules, literal naming, no hidden logic.

Subsystems

What the kernel actually contains

Contracts, schemas and registries — no feature logic, no crawler, no payment processing, no official extensions.

Workspace surfaces

The tenant boundary. Extensions attach to these surfaces; they never replace them.

projectscreditsextensionsreportsmemberssettingsknowledgehistoryintegrations

Kernel events

Frozen names, versioned envelopes, zero business logic.

workspace.createdworkspace.updatedworkspace.archivedworkspace.restoredworkspace.deletedworkspace.ownership.transferredworkspace.member.joinedworkspace.member.role.updatedworkspace.member.removedworkspace.invitation.sentworkspace.invitation.accepteduser.createduser.updateduser.deletedsession.createdsession.revokedpermission.updatedguest.convertedproject.createdwebsite.createdsnapshot.createdsnapshot.completedsnapshot.failedsnapshot.version.createdknowledge.updatedknowledge.generateduwo.generatedextension.executedextension.installedconnector.syncedcontent.createdcontent.publishedcontent.version.createdcontent.archivedcontent.indexedreport.generatedfindings.producedinsights.generatedreport.refreshedreport.exportedextension.enabledextension.disabledextension.uninstalledextension.updatedextension.failedextension.permission.requestedextension.permission.grantedextension.permission.revokedcapability.registeredconnector.connectedconnector.disconnectedconnector.sync.startedconnector.sync.completedconnector.sync.failedconnector.updatedconnector.expiredconnector.health.changedplatform.mode.enteredplatform.role.grantedplatform.role.revokedplatform.user.suspendedplatform.credits.adjustedplatform.announcement.publishedplatform.flag.toggledplatform.health.changedplatform.audit.exportedwallet.createdcredits.addedcredits.usedcredits.refundedcredits.reservedcredits.expiredsubscription.createdsubscription.updatedpayment.completedpayment.failedpurchase.completedmarketplace.sale

Queues

Typed payloads with workspace, request id and attempt on every message.

snapshotaiconnectoremailnotification

Content types

One renderer, one editor. Behaviour is a data table, not a component per type.

blogdocsguidetutorialacademyplaybookfaqrelease-noteannouncementknowledge

Non-goals

Deliberately absent

Leaving these out is the point. Each one belongs to an extension, an adapter implementation, or a later deployment concern.

  • Feature implementations (SEO, analytics, marketplace logic)
  • Extension development — only the loading architecture
  • Payment processing — only adapter interfaces
  • Crawler implementation — only the snapshot pipeline
  • Hardcoded layouts or duplicated UI
  • Supabase Auth or direct Supabase client usage