Skip to content
AlmasixORBIT

Python admin that stays in orbit — fluent, package-shaped, yours.

Describe resources once. Orbit paints the shell, tables, and forms on Conduit + Alpine — semantic .or-* CSS included, ten packages under one import tree.

$ pip install almasix-orbit

meta-package · ten modules · one gravity well

✓ OrbitServiceProvider discovered

✓ import path: almasix.orbit…

# hang a panel on the app

from almasix.orbit import Panel, PanelRegistry

panel = (
    Panel.make("admin")
    .path("orbit")
    .brand_name("Acme Admin")
    .resources([PostResource])
)
app.make(PanelRegistry).register(panel)

# app/orbit/post_resource.py

class PostResource(Resource):
    model = Post
    navigation_label = "Posts"
    navigation_group = "Content"

    @classmethod
    def form(cls, form: Form) -> Form:
        return form.schema([
            TextInput.make("title").required(),
            TextInput.make("slug").required(),
        ])

# same resource · table()

@classmethod
def table(cls, table: Table) -> Table:
    return table.columns([
        TextColumn.make("title")
            .searchable()
            .sortable(),
        TextColumn.make("status").badge(),
    ])

# what you get → index table

# forms · sections · validation

form.schema([
    Section.make("basics")
    .heading("Basics")
    .schema([
        TextInput.make("title")
            .required()
            .max_length(200),
        Select.make("status")
            .options("draft": "Draft"),
        Textarea.make("body").rows(8),
    ]),
])

# what you get → create / edit

# actions · confirm · notify

DeleteAction.make()
    .requires_confirmation()
    .success_notification("Deleted")

CreateAction.make()
EditAction.make()
ViewAction.make()
# wired automatically when slots are empty

$ pip show almasix-orbit

✓ panels · support · schemas

✓ forms · tables · actions · infolists

✓ notifications · widgets · query-builder

install the meta · or pick packages standalone

Hover to pause · pin a step · ← → to move · code then UI

Orbit is how you build admin panels in Almasix without leaving Python.

Declare a panel. Point it at resources. Describe forms, tables, and actions with a fluent API. Orbit renders semantic .or-* markup on Conduit + Alpine.js — server is the source of truth, the browser stays snappy.

Ten packages, one install, one import tree.