17 β Orchable Hub: Community Sharing
The Hub is Orchableβs community-driven platform for sharing, discovering, and remixing AI pipeline assets β including Orchestration Configs, Prompt Templates, View Components, and AI Settings Profiles.
Table of Contents
- Overview & Goals
- Asset Taxonomy
- Hub Architecture
- Database Schema
- Sharing Workflows
- Remix & Attribution
- Hub UI Structure
- Moderation & Safety
- Access Control
- Monetization Readiness
- Implementation Roadmap
- Design Decisions Log
1. Overview & Goals
What is the Hub?
The Hub (/hub) is a curated, searchable gallery of assets authored by the Orchable community. It allows users to:
- Discover pre-built pipelines, templates, and components for common use cases
- Import assets into their own workspace with a single click
- Remix existing assets and build upon othersβ work with full attribution
- Publish their own assets to share with the community
Inspiration & Benchmarks
| Platform | Sharing Mechanism | Key Takeaway |
|---|---|---|
| Dify | Marketplace β full Apps | 1-click clone with pre-configured settings |
| Coze | Bot Store + Plugin Store | Clear taxonomy, Fork with attribution |
| n8n Cloud | Template Gallery | Workflow previews, screenshots, tags |
| Flowise | JSON export + import via URL | Lightweight, no friction |
Orchable Hub combines these patterns into a unified asset gallery with deep Remix tracking.
2. Asset Taxonomy
All Hub-shareable items are unified under a single Asset concept. Each asset has a type, metadata, visibility, and attribution chain.
Supported Asset Types
| Type | ID | Current Table | Shareable? |
|---|---|---|---|
| Orchestration Config | orchestration | orchestrator_configs | β Phase 2 |
| Prompt Template | template | prompt_templates | β Phase 1 |
| View Component | component | custom_components | β Phase 1 |
| AI Settings Profile | ai_preset | ai_model_settings | β Phase 1 |
Asset Metadata (Common Fields)
Every Hub-published asset must carry:
| Field | Type | Description |
|---|---|---|
title | text | Human-readable name |
description | text | What this asset does, for whom |
tags | text[] | Use-case and domain tags |
thumbnail_url | text? | Auto-generated or user-uploaded |
license | text | orchable-free / cc0 / cc-by |
is_public | bool | Public on Hub vs. private |
install_count | int | Times imported by others |
star_count | int | Community star rating |
Suggested Tags (Non-exhaustive)
Use-case: #education #marketing #data-extraction #summarization #code-generation
#content-creation #qa #translation #classification
Domain: #healthcare #legal #ecommerce #research
Cardinality: #1to1 #1toN #batch
Model: #gemini-2.0-flash #gemini-2.5-pro3. Hub Architecture
Route Structure
/hub β Hub landing page (featured + trending)
/hub/orchestrations β Browse Orchestration Configs
/hub/orchestrations/[id] β View single orchestration
/hub/templates β Browse Prompt Templates
/hub/templates/[id] β View single template
/hub/components β Browse View Components
/hub/components/[id] β View single component
/hub/ai-presets β Browse AI Settings Profiles
/hub/ai-presets/[id] β View single preset
/hub/creators/[username] β Creator public profilePermalink
Every published asset receives a stable permalink:
orchable.app/hub/[type]/[slug]Where slug is auto-generated from the asset title (e.g., multi-stage-seo-content-writer).
Browsing & Discovery
Every Hub section supports:
- Full-text search across title, description, tags
- Filter by: type, tags, model, cardinality, license, sort order
- Sort by: newest, most installed, most starred, recently updated
- Featured curated collection on the landing page
4. Database Schema
4a. hub_assets β Central Registry
CREATE TABLE hub_assets (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
asset_type TEXT NOT NULL CHECK (asset_type IN ('orchestration', 'template', 'component', 'ai_preset')),
ref_id UUID NOT NULL, -- Foreign key to the source table row
creator_id UUID REFERENCES auth.users(id) ON DELETE SET NULL,
slug TEXT UNIQUE NOT NULL, -- URL-safe identifier
-- Metadata
title TEXT NOT NULL,
description TEXT,
tags TEXT[] DEFAULT '{}',
thumbnail_url TEXT,
-- Source Attribution
source_asset_id UUID REFERENCES hub_assets(id) ON DELETE SET NULL, -- Original Hub asset
parent_asset_id UUID REFERENCES hub_assets(id) ON DELETE SET NULL, -- Direct parent in remix chain
remix_depth INTEGER NOT NULL DEFAULT 0,
-- Visibility & Status
is_public BOOLEAN NOT NULL DEFAULT FALSE,
published_at TIMESTAMPTZ,
is_hidden BOOLEAN NOT NULL DEFAULT FALSE, -- Soft-delete by moderation
-- Monetization (Phase 4+)
license TEXT NOT NULL DEFAULT 'orchable-free', -- 'cc0', 'cc-by', 'orchable-free', 'paid'
price_cents INTEGER NOT NULL DEFAULT 0,
stripe_product_id TEXT,
-- Engagement
install_count INTEGER NOT NULL DEFAULT 0,
star_count INTEGER NOT NULL DEFAULT 0,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);4b. hub_stars β Community Stars
CREATE TABLE hub_stars (
asset_id UUID REFERENCES hub_assets(id) ON DELETE CASCADE,
user_id UUID REFERENCES auth.users(id) ON DELETE CASCADE,
starred_at TIMESTAMPTZ NOT NULL DEFAULT now(),
PRIMARY KEY (asset_id, user_id)
);4c. hub_reports β Moderation Reports
CREATE TABLE hub_reports (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
asset_id UUID REFERENCES hub_assets(id) ON DELETE CASCADE,
reporter_id UUID REFERENCES auth.users(id) ON DELETE SET NULL,
reason TEXT NOT NULL, -- 'spam', 'inappropriate', 'copyright', 'other'
details TEXT,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
resolved BOOLEAN NOT NULL DEFAULT FALSE,
resolved_by UUID REFERENCES auth.users(id)
);Auto-hide rule: If an asset accumulates β₯ 5 unresolved reports, it is automatically soft-deleted (
is_hidden = TRUE) pending admin review.
4d. Schema Additions to Existing Tables
The following columns are added to existing tables:
prompt_templates
ALTER TABLE prompt_templates ADD COLUMN hub_asset_id UUID REFERENCES hub_assets(id);
-- source_asset_id tracked via hub_assets tablecustom_components
ALTER TABLE custom_components ADD COLUMN is_public BOOLEAN DEFAULT FALSE;
ALTER TABLE custom_components ADD COLUMN hub_asset_id UUID REFERENCES hub_assets(id);orchestrator_configs
ALTER TABLE orchestrator_configs ADD COLUMN is_public BOOLEAN DEFAULT FALSE;
ALTER TABLE orchestrator_configs ADD COLUMN hub_asset_id UUID REFERENCES hub_assets(id);
ALTER TABLE orchestrator_configs ADD COLUMN tags TEXT[] DEFAULT '{}';
ALTER TABLE orchestrator_configs ADD COLUMN description TEXT;5. Sharing Workflows
5a. Publishing a Prompt Template (from Asset Library)
- User clicks βShare to Hubβ on a template card β Share Dialog opens
- Dialog form:
- Title (pre-filled from template name)
- Description (freetext, required)
- Tags (multi-select with suggestions)
- License (dropdown:
orchable-free/cc0/cc-by) - Preview of the template text (read-only)
- User clicks βPublishβ
- System:
- Validates user is authenticated (redirect to
/loginif not) - Creates
hub_assetsrow withasset_type = 'template'andref_id = template.id - Sets
is_public = TRUEandpublished_at = now() - Generates URL slug from title
- Validates user is authenticated (redirect to
- Asset appears on Hub at
/hub/templates/[slug]
5b. Publishing an Orchestration Config (from Designer)
- User opens the βShareβ dropdown on the Designer toolbar
- Share Dialog offers additional options:
- βPublish Pipeline Onlyβ β copies the config graph (nodes, edges, stage configs) without bundling templates
- βPublish Bundleβ β includes all linked Prompt Templates as embedded snapshots (recommended)
- System creates a snapshot of the config at publish time (immutable version)
- If βbundleβ mode, linked prompt templates are embedded as
hub_bundle_items(sub-assets)
[!NOTE] API Keys, n8n webhook URLs, and any sensitive credentials are always stripped before publishing. The published artifact contains only the structural and semantic configuration.
5c. Publishing a View Component
- User clicks βShare to Hubβ on a component card
- System runs a lightweight safety scan (checks for obvious XSS patterns,
eval,fetch, etc.) - If scan passes β publish flow proceeds (same as template)
- If scan flags issues β user is warned; publish requires manual override
5d. Publishing an AI Settings Profile
- User clicks βShareβ on an AI preset in Asset Library β AI Settings tab
- Published preset includes: model_id, temperature, topP, topK, maxOutputTokens, thinkingLevel/Budget, generate_content_api
- Does not include: API keys, organization codes, pricing info
5e. Batch Bundle Export
A βStarter Kitβ bundles:
- 1 Orchestration Config
- N Prompt Templates
- M View Components
- Optional: AI Settings Profiles
Users import the entire kit in one action. The system creates local copies of all sub-assets and links their source_asset_id back to the Hub record.
6. Remix & Attribution
6a. βUse Thisβ vs. βRemixβ
| Action | Behavior |
|---|---|
| Use This | Import a clean copy. Asset is ready to use. source_asset_id is set. |
| Remix | Import + open editor immediately. parent_asset_id is set. Attribution badge shown. |
6b. Attribution Chain
Every remixed asset tracks its lineage:
Original Asset (remix_depth: 0)
βββ First Remix (remix_depth: 1, parent_asset_id = Original.id)
βββ Second Remix (remix_depth: 2, parent_asset_id = FirstRemix.id)source_asset_id always points to the root of the chain (the original), regardless of depth.
6c. Attribution UI
- On every remixed asset card/page: βRemixed from [Creator Avatar] [Asset Name]β badge
- Click badge β navigates to the original Hub page (or shows βOriginal no longer availableβ if deleted)
- On the original assetβs Hub page: β[N] remixesβ counter + optional list of public remixes
6d. Asset Deletion & Attribution Stability
If the original creator deletes their Hub listing:
source_asset_idandparent_asset_idremain pointing to the deleted record (they are not nulled)- The attribution UI gracefully shows: βRemixed from a deleted asset by [author if still visible]β
- All downstream remixes continue to function β deletion only affects Hub discoverability
6e. License Enforcement
| License | What remixers can do | Attribution required? |
|---|---|---|
cc0 | Any use, including commercial | No |
cc-by | Any use, including commercial | Yes β must credit creator |
orchable-free | Use within Orchable only, no resale | No (but attribution shown) |
paid (Phase 4+) | Use only after purchase | Yes |
7. Hub UI Structure
7a. Hub Landing Page (/hub)
Header: [Search Bar] [Filter by Type] [Sort]
ββββββββββββββββββββββββββββββββββββββββββ
Featured [See all β]
[Card] [Card] [Card]
Trending This Week [See all β]
[Card] [Card] [Card] [Card]
Browse by Category
[Orchestrations] [Templates] [Components] [AI Presets]7b. Asset Card
ββββββββββββββββββββββββββββββββββββββ
β [Thumbnail / Pipeline Preview] β
β β
β π Multi-Stage SEO Writer β
β by @tonypham Β· 142 installs Β· β 28 β
β β
β [#education] [#1to1] [gemini-2.0] β
β β
β [Use This] [Preview] [β―] β
ββββββββββββββββββββββββββββββββββββββ7c. Asset Detail Page
[Back to Hub]
ββββββββββββββββββββββββββββββββββββββ
[Large Thumbnail / Pipeline Diagram]
TITLE β By @creator_name
[β 28 stars] [142 installs] [Remixed 7 times]
[Use This] [Remix] [Report]
DESCRIPTION
ββββββββββ
...
DETAILS
ββββββ
Type: Orchestration Config
License: orchable-free
Stages: 5
Model: gemini-2.0-flash
Tags: #education #summarization
LINKED TEMPLATES (if bundle)
βββββββββββββββββββββββββββββ
β’ Stage A: Extract Key Points
β’ Stage B: Summarize Section
...
REMIXES (public)
βββββββββββββββββ
@user1 β translated to Spanish variant (β 4)
@user2 β added Stage F: export to PDF (β 11)7d. Creator Profile (/hub/creators/[username])
[Avatar] Username Β· Member since Feb 2026
[12 published assets] [234 total installs] [β 89 total stars]
ASSETS BY THIS CREATOR
ββββββββββββββββββββββ
[Card] [Card] [Card] ...8. Moderation & Safety
8a. Model
Orchable Hub uses a report-based moderation model (no pre-review):
- Any user can click βReportβ on any Hub asset
- Report reasons:
Spam,Inappropriate Content,Copyright Violation,Malicious Code,Other - Reports are stored in
hub_reports - Auto-hide: If β₯ 5 unresolved reports on any single asset β soft-deleted (
is_hidden = TRUE) pending admin review - Admin reviews via Supabase dashboard (Phase 1) or dedicated Admin UI (Phase 3+)
- Admin actions:
Restore,Permanently Delete,Ban Creator
8b. Code Safety (View Components)
Since View Components contain executable TSX code, additional checks apply:
Automated scan flags:
eval()orFunction()callswindow.locationredirectsfetch/XMLHttpRequestto external URLs- Dynamic
<script>injection
Outcomes:
- Pass β publish proceeds immediately
- Flagged β user sees warning + must confirm before publishing
All component code runs in a sandboxed iframe in the Monitor page, limiting blast radius of any malicious code that slips through.
8c. Sensitive Data Stripping
Before any asset is published, the system automatically strips:
- API keys and tokens
- Webhook URLs containing authentication tokens
- n8n workflow IDs linked to private credentials
organization_codefrom AI model settings
9. Access Control
9a. Permission Matrix
| Action | Lite (no login) | Authenticated (Free Cloud/Pro) |
|---|---|---|
| Browse Hub | β | β |
| Preview assets | β | β |
| Import (Use This) | β (local only) | β (synced to cloud) |
| Remix | β (local only) | β |
| Star an asset | β | β |
| Report an asset | β | β |
| Publish to Hub | β | β |
| Edit published asset | β | β (creator only) |
| Delete published asset | β | β (creator only) |
| Admin: review reports | β | β (admin role only) |
[!IMPORTANT] Export to JSON remains available to all users including Lite β this is the escape hatch to share assets outside the Hub without an account.
9b. Authentication Guard
// In Hub publish action
const { user } = useAuth();
if (!user) {
toast.info('Sign in to publish to the Hub');
navigate('/login', { state: { returnTo: '/hub' } });
return;
}10. Monetization Readiness
Phase 1β3 of the Hub is entirely free. However, the schema and architecture are designed to support paid assets in Phase 4+.
Schema Readiness
hub_assets.license -- 'paid' when monetized
hub_assets.price_cents -- 0 for free, e.g. 500 = $5.00
hub_assets.stripe_product_id -- NULL until Stripe integration liveFuture Flow (Phase 4+)
- Creator sets
license = 'paid'andprice_cents = 500when publishing - Viewer sees β$5.00 β Buy to Useβ on the asset page
- Checkout via Stripe Checkout β on success, creates
hub_purchases(user_id, asset_id, purchased_at) - βUse Thisβ button unlocks;
install_countincrements - Creator receives revenue share via Stripe Connect
Creator Revenue Share (Placeholder)
| Tier | Orchable Cut | Creator Cut |
|---|---|---|
| Standard | 30% | 70% |
| Verified Creator | 20% | 80% |
These percentages are placeholders and will be confirmed before Phase 4 launch.
11. Implementation Roadmap
Phase 1 β Foundation (Months 1β2)
Goal: Enable sharing of Prompt Templates and View Components.
DB Migrations:
- Create
hub_assetstable - Create
hub_starstable - Create
hub_reportstable - Add
hub_asset_idtoprompt_templates,custom_components - Add
is_publictocustom_components
Frontend:
- βShare to Hubβ button on Asset Library cards (Templates + Components tabs)
- Share Dialog with title, description, tags, license
- Basic
/hub/templatesbrowse page (list, search, filter by tags) - Basic
/hub/componentsbrowse page - Single asset detail page with βUse Thisβ button
- Attribution badge on remixed assets
Backend:
-
POST /api/hub/publishβ validate, strip sensitive data, createhub_assetsrow -
POST /api/hub/import/:idβ clone asset into userβs workspace with attribution
Phase 2 β Orchestration Sharing (Months 2β3)
Goal: Enable sharing of full pipeline configs as Hub assets.
- DB: Add
hub_asset_id,tags,is_public,descriptiontoorchestrator_configs - Designer: βShareβ button on toolbar β Share Dialog with bundle option
- Bundle logic: embed linked templates as snapshots in the hub asset JSON
- Hub:
/hub/orchestrationsbrowse page with pipeline diagram preview - Studio Importer: import bundle and restore all linked assets
Phase 3 β Community Features (Months 3β5)
Goal: Build community engagement and discovery.
- Star / Unstar assets
- Remix tracking UI (attribution badge + βN remixesβ counter)
- Creator profiles (
/hub/creators/[username]) - Report button +
hub_reportsingestion - Auto-hide on β₯ 5 reports (Postgres trigger or Edge Function)
- Admin review panel (Supabase or simple internal page)
- Hub landing page with Featured + Trending sections
- AI Presets browse page
Phase 4 β Advanced & Monetization (Months 5+)
- Starter Kit / Bundle packaging UI
- Organization private Hub (org-only visibility mode)
- Asset versioning (publish new versions, pin imported version)
- Embed card HTML snippet
- JSON API (
GET /api/hub/:id) - Stripe integration for paid assets
- Creator revenue dashboard
12. Design Decisions Log
| Decision | Choice | Rationale |
|---|---|---|
| Moderation model | Report-based, no pre-review | Reduces friction at launch; report threshold auto-hides abuse |
| Who can publish? | Authenticated users only (not Lite) | Publishing to a shared community requires account accountability |
| Lite user import? | Yes β imports to local IndexedDB | Import is read-only and low-risk; promotes discovery |
| Export JSON available? | Yes, for all users | Preserves user freedom; prevents platform lock-in |
| Monetization | Schema-ready now, activate in Phase 4 | Avoids costly migrations later; keeps Phase 1 simple for users |
| Name | βHubβ | Neutral; implies central place without implying commerce |
| Attribution | Permanent chain via source_asset_id + parent_asset_id | Survives deletion; gives clear lineage tracking |
| Sensitive data | Always stripped server-side before publish | Security baseline; never rely on client-side omission |
| Component safety | Automated scan + sandboxed iframe | Catches obvious threats; sandbox limits damage of edge cases |
Last updated: 2026-02-25