Incant Plan

Copy Markdown

Incant is an Elixir/Phoenix-native control plane for resources, content, analytics, dashboards, and operations. It should feel like a spell cast over an application: ordinary Ecto schemas, content files, telemetry streams, external APIs, and business datasets become a polished, customizable LiveView admin and headless CMS.

Product thesis

Incant is not a CRUD toy. It is a code-first framework for building serious internal products:

  • ActiveAdmin/Backpex-style resource administration
  • Payload/Strapi-style headless CMS and editorial workflows
  • Grafana-style dashboards and analytical widgets
  • Retool-style operational tools, but compiled into normal Elixir modules
  • Livebook/Kino-powered exploration as an optional development layer
  • Igniter-powered generation and project integration

The core rule: Incant describes admin intent; Ecto remains the language of data truth.

Direction

The long-term direction is a unified, code-first operations UI for a deeply integrated Elixir platform: application records, analytical datasets, LLM traces, code facts, and content managed through one admin surface. See docs/platform-admin-roadmap.md for the roadmap and REFERENCES.md for the external products informing the design.

Non-goals

  • Replacing Ecto with a weaker query language.
  • Runtime click-built production schemas as the default source of truth.
  • Making Kino a production dependency.
  • Hiding Phoenix/LiveView behind opaque magic.
  • Shipping a pretty CRUD toy before validating serious analytics and operational workflows.

Package shape

Start as one package:

{:incant, "~> 0.1"}

Potential future split:

{:incant_core, "~> 0.1"}
{:incant_live, "~> 0.1"}
{:incant_ecto, "~> 0.1"}
{:incant_igniter, "~> 0.1"}
{:incant_kino, "~> 0.1"}
{:incant_content, "~> 0.1"}
{:incant_analytics, "~> 0.1"}

Keep the first public release focused: metadata DSL + LiveView resource table + dashboard widget grid + Ecto callbacks + Tailwind theme contract.