Organizations & projects
+Workspaces with scoped org and project roles. Invite members by link, assign owner/admin/developer.
+ rbac +diff --git a/landing/.gitignore b/landing/.gitignore new file mode 100644 index 0000000..245259b --- /dev/null +++ b/landing/.gitignore @@ -0,0 +1,2 @@ +.vercel +.env* diff --git a/landing/fonts/geist-mono.woff2 b/landing/fonts/geist-mono.woff2 new file mode 100644 index 0000000..fb2f024 Binary files /dev/null and b/landing/fonts/geist-mono.woff2 differ diff --git a/landing/fonts/geist-sans.woff2 b/landing/fonts/geist-sans.woff2 new file mode 100644 index 0000000..9983e92 Binary files /dev/null and b/landing/fonts/geist-sans.woff2 differ diff --git a/landing/index.html b/landing/index.html new file mode 100644 index 0000000..9b98cca --- /dev/null +++ b/landing/index.html @@ -0,0 +1,641 @@ + + +
+ + ++ Primora is a self-hosted backend platform — auth, Postgres-backed APIs, + S3-style object storage, JSON collections, scoped API keys, and a full + audit log behind one dashboard. No hosted tier. +
+ +curl -fsSL https://raw.githubusercontent.com/Dvorinka/Primora/master/install.sh | bash
+
+
+ Inspired by the UX of Appwrite and Supabase — rebuilt as a single self-hosted stack you own outright.
+Workspaces with scoped org and project roles. Invite members by link, assign owner/admin/developer.
+ rbac +Email/password via Better Auth, optional GitHub, Google, Discord and Microsoft OAuth. JWTs verified against JWKS.
+ better-auth + jwks +S3-style buckets on your own filesystem, public or private. Upload, move, rename, inline preview.
+ local fs +Schema-flexible JSON documents stored in Postgres JSONB. Query, create and update without migrations.
+ postgres jsonb +prm_<prefix>_<secret> credentials, shown once at creation. Revocable, rate-limited per key.
Every mutating request recorded — actor, action, target. Filterable in the UI, exportable as CSV or JSON.
+ csv / json export +Scheduled jobs and live event streams. Webhooks and connectors push project events to external systems.
+ schedules + webhooks +Sign-up policy, mail transport, and rate limits managed in-app — no restart, secrets stored AES-256-GCM.
+ settings → instance +Fully client-side seeded workspace — append ?demo=true to the URL, no sign-up required.
One Postgres, one API, one process boundary per concern. Everything ships in Docker Compose.
+Browser ──▶ Nginx ──┬──▶ Frontend SolidJS + Vite + ├──▶ Auth Better Auth + Hono + └──▶ API Go + Gin + │ + ├──▶ PostgreSQL primary datastore + ├──▶ DragonflyDB cache + rate limits + └──▶ Local FS object storage+
Real UI, no mockups. Every screen is dark-first, hairline-divided, and keyboard-driven.
+
+
+
+
+
+
+ The same API powers a CLI, an MCP server, a desktop shell, and an installable PWA.
+primora manages orgs, projects, buckets, objects, keys, and audit from the terminal.
$ primora storage objects --bucket assets --limit 10
+ Exposes primora_* tools to MCP clients — drive the platform from an agent.
primora_list_projects · primora_upload_object · …
+ Tauri 2 shell that connects to your deployment, with tray presence and native notifications.
+apps/desktop · tauri 2
+ The dashboard installs on mobile and desktop browsers — same console, native frame.
+installable · offline-aware shell
+ Docker with the Compose plugin is the only prerequisite. Up in one command.
+