Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)
    Ring Platform Logo

    Loading documentation...

    Preparing Ring Platform content

    Ring Platform Logo

    Loading documentation...

    Preparing Ring Platform content

    Ring Platform Logo

    Loading documentation...

    Preparing Ring Platform content

    Profile Account Widgets

    Use Founder / Developer tabs in the docs sidebar to filter this page. Public /{username} surfaces are separate — see Public Profile Pages. Entity catalog powering Organization is documented under Entities.

    Signed-in members manage account vitals on /profile. The Professional tab ships three composed widgets under components/profile/ (app UI — not MDX ring-widgets):

    WidgetJob
    OrganizationEntitySelectPick organization from all Entities via Davinci-droplist
    PositionTagCloud / SkillsTagCloudMulti-tag FsModal clouds (shared ProfileTagCloud)
    CurriculumVitaeWidgetMarkdown CV editor + profile:cv file upload

    Human catalog (with Davinci-droplist call sites): components/docs/WIDGETS-README.md → App UI profile widgets. Machine index: AI-CONTEXT/concepts/ring-docs.nodus.json → ring_widgets.index.sections.app_ui_profile.

    Why this matters for your clone

    Professional fields turn a bare account into a hireable / partnerable face: which organization the member represents, which roles and skills they claim, and a CV they can edit on a phone without fighting chrome padding.

    Typical scenarios:

    1. Member opens /profile → Professional → taps Organization → searchable Entity list (FsModal) → selection saves immediately.
    2. Member adds Position / Skills tags from the known catalog or custom text; selected chips stay visible inside the picker modal.
    3. Member taps Edit on My Curriculum Vitae, writes markdown fullscreen on mobile, relies on local draft autosave, then Save & Exit to persist into the profile.

    Public profile

    After username claim, public trust face at /.

    Entities

    Organization droplist reads the same Entities catalog members join and showcase.

    Module map (verified)

    SurfacePath
    Account shellfeatures/auth/components/profile-content.tsx
    Organizationcomponents/profile/organization-entity-select.tsx → DavinciDroplist → GET /api/entities
    Tag cloudscomponents/profile/profile-tag-cloud.tsx (+ position-tag-cloud.tsx, skills-tag-cloud.tsx)
    Tag catalogsfeatures/auth/lib/profile-tags.ts, position-tags.ts, skill-tags.ts
    CV widgetcomponents/profile/curriculum-vitae-widget.tsx
    CV editordynamic WikiRichEditor (features/wiki/components/wiki-rich-editor.tsx) — markdown SSOT
    Persist Server Action — / / / FormData

    Related documentation

    Public Profile Pages

    Next-step: public /{username} trust face after Professional fields are filled.

    Entities

    Depends-on: OrganizationEntitySelect lists Entities from GET /api/entities.

    Authentication

    Same-workflow: /profile vitals and Auth.js session.update after updateProfile.

    Scientific Editor

    See-also: publications use useAutoSave against /api/publications; CV drafts use useLocalStorage instead.

    Profile Account Widgets

    Use Founder / Developer tabs in the docs sidebar to filter this page. Public /{username} surfaces are separate — see Public Profile Pages. Entity catalog powering Organization is documented under Entities.

    Signed-in members manage account vitals on /profile. The Professional tab ships three composed widgets under components/profile/ (app UI — not MDX ring-widgets):

    WidgetJob
    OrganizationEntitySelectPick organization from all Entities via Davinci-droplist
    PositionTagCloud / SkillsTagCloudMulti-tag FsModal clouds (shared ProfileTagCloud)
    CurriculumVitaeWidgetMarkdown CV editor + profile:cv file upload

    Human catalog (with Davinci-droplist call sites): components/docs/WIDGETS-README.md → App UI profile widgets. Machine index: AI-CONTEXT/concepts/ring-docs.nodus.json → ring_widgets.index.sections.app_ui_profile.

    Why this matters for your clone

    Professional fields turn a bare account into a hireable / partnerable face: which organization the member represents, which roles and skills they claim, and a CV they can edit on a phone without fighting chrome padding.

    Typical scenarios:

    1. Member opens /profile → Professional → taps Organization → searchable Entity list (FsModal) → selection saves immediately.
    2. Member adds Position / Skills tags from the known catalog or custom text; selected chips stay visible inside the picker modal.
    3. Member taps Edit on My Curriculum Vitae, writes markdown fullscreen on mobile, relies on local draft autosave, then Save & Exit to persist into the profile.

    Public profile

    After username claim, public trust face at /.

    Entities

    Organization droplist reads the same Entities catalog members join and showcase.

    Module map (verified)

    SurfacePath
    Account shellfeatures/auth/components/profile-content.tsx
    Organizationcomponents/profile/organization-entity-select.tsx → DavinciDroplist → GET /api/entities
    Tag cloudscomponents/profile/profile-tag-cloud.tsx (+ position-tag-cloud.tsx, skills-tag-cloud.tsx)
    Tag catalogsfeatures/auth/lib/profile-tags.ts, position-tags.ts, skill-tags.ts
    CV widgetcomponents/profile/curriculum-vitae-widget.tsx
    CV editordynamic WikiRichEditor (features/wiki/components/wiki-rich-editor.tsx) — markdown SSOT
    Persist Server Action — / / / FormData

    Related documentation

    Public Profile Pages

    Next-step: public /{username} trust face after Professional fields are filled.

    Entities

    Depends-on: OrganizationEntitySelect lists Entities from GET /api/entities.

    Authentication

    Same-workflow: /profile vitals and Auth.js session.update after updateProfile.

    Scientific Editor

    See-also: publications use useAutoSave against /api/publications; CV drafts use useLocalStorage instead.

    Profile Account Widgets

    Use Founder / Developer tabs in the docs sidebar to filter this page. Public /{username} surfaces are separate — see Public Profile Pages. Entity catalog powering Organization is documented under Entities.

    Signed-in members manage account vitals on /profile. The Professional tab ships three composed widgets under components/profile/ (app UI — not MDX ring-widgets):

    WidgetJob
    OrganizationEntitySelectPick organization from all Entities via Davinci-droplist
    PositionTagCloud / SkillsTagCloudMulti-tag FsModal clouds (shared ProfileTagCloud)
    CurriculumVitaeWidgetMarkdown CV editor + profile:cv file upload

    Human catalog (with Davinci-droplist call sites): components/docs/WIDGETS-README.md → App UI profile widgets. Machine index: AI-CONTEXT/concepts/ring-docs.nodus.json → ring_widgets.index.sections.app_ui_profile.

    Why this matters for your clone

    Professional fields turn a bare account into a hireable / partnerable face: which organization the member represents, which roles and skills they claim, and a CV they can edit on a phone without fighting chrome padding.

    Typical scenarios:

    1. Member opens /profile → Professional → taps Organization → searchable Entity list (FsModal) → selection saves immediately.
    2. Member adds Position / Skills tags from the known catalog or custom text; selected chips stay visible inside the picker modal.
    3. Member taps Edit on My Curriculum Vitae, writes markdown fullscreen on mobile, relies on local draft autosave, then Save & Exit to persist into the profile.

    Public profile

    After username claim, public trust face at /.

    Entities

    Organization droplist reads the same Entities catalog members join and showcase.

    Module map (verified)

    SurfacePath
    Account shellfeatures/auth/components/profile-content.tsx
    Organizationcomponents/profile/organization-entity-select.tsx → DavinciDroplist → GET /api/entities
    Tag cloudscomponents/profile/profile-tag-cloud.tsx (+ position-tag-cloud.tsx, skills-tag-cloud.tsx)
    Tag catalogsfeatures/auth/lib/profile-tags.ts, position-tags.ts, skill-tags.ts
    CV widgetcomponents/profile/curriculum-vitae-widget.tsx
    CV editordynamic WikiRichEditor (features/wiki/components/wiki-rich-editor.tsx) — markdown SSOT
    Persist Server Action — / / / FormData

    Related documentation

    Public Profile Pages

    Next-step: public /{username} trust face after Professional fields are filled.

    Entities

    Depends-on: OrganizationEntitySelect lists Entities from GET /api/entities.

    Authentication

    Same-workflow: /profile vitals and Auth.js session.update after updateProfile.

    Scientific Editor

    See-also: publications use useAutoSave against /api/publications; CV drafts use useLocalStorage instead.

    Username reservation

    @handle lives on Messengers tab (above Telegram) — not in the Professional hero.

    updateProfile
    curriculumVitae
    organization
    position
    skills
    UploadPOST /api/uploads purpose profile:cv (lib/uploads/upload-types.ts)
    Storage shapeusers.data.curriculumVitae (CurriculumVitae in features/auth/types.ts)
    DraftsuseLocalStorage key profile_cv_draft_{userId} + useDebounce (same hydration-safe pattern as chat composer)
    ShellFsModal — mobile hideTitleOnMobile, closeClassName="max-sm:hidden", footer Close + Save & Exit

    Davinci-droplist placement

    OrganizationEntitySelect is a migrated Davinci-droplist call site (theme enhancer §7 / DL11), alongside CountrySelect, TimezoneSelect, ProductRepSelect, VendorEntitySelect. ProfileTagCloud reuses DavinciDroplistItem + QuickSearchFilter inside FsModal for multi-tag confirm (not single-select close-on-tap).

    CV mobile editor chrome

    Desktop keeps Cancel + Save labels and the default top-right .modal-close-button.

    1. 1

      Wire Organization

      Import OrganizationEntitySelect into the Professional tab; pass current organization string and onSaved to refresh local profile state after updateProfile.

    2. 2

      Wire Position / Skills

      Use PositionTagCloud / SkillsTagCloud wrappers (or ProfileTagCloud directly with a field + knownTags). Selected chips render both outside and inside the FsModal.

    3. 3

      Wire Curriculum Vitae

      Mount CurriculumVitaeWidget with value={user.curriculumVitae}. Ensure upload purpose profile:cv is allowed in upload-core and that updateProfile parses curriculumVitae JSON into users.data.

    Doc System

    Deep-dive: WIDGETS-README App UI profile widgets + ring-docs.nodus app_ui_profile section.

    Username reservation

    @handle lives on Messengers tab (above Telegram) — not in the Professional hero.

    updateProfile
    curriculumVitae
    organization
    position
    skills
    UploadPOST /api/uploads purpose profile:cv (lib/uploads/upload-types.ts)
    Storage shapeusers.data.curriculumVitae (CurriculumVitae in features/auth/types.ts)
    DraftsuseLocalStorage key profile_cv_draft_{userId} + useDebounce (same hydration-safe pattern as chat composer)
    ShellFsModal — mobile hideTitleOnMobile, closeClassName="max-sm:hidden", footer Close + Save & Exit

    Davinci-droplist placement

    OrganizationEntitySelect is a migrated Davinci-droplist call site (theme enhancer §7 / DL11), alongside CountrySelect, TimezoneSelect, ProductRepSelect, VendorEntitySelect. ProfileTagCloud reuses DavinciDroplistItem + QuickSearchFilter inside FsModal for multi-tag confirm (not single-select close-on-tap).

    CV mobile editor chrome

    Desktop keeps Cancel + Save labels and the default top-right .modal-close-button.

    1. 1

      Wire Organization

      Import OrganizationEntitySelect into the Professional tab; pass current organization string and onSaved to refresh local profile state after updateProfile.

    2. 2

      Wire Position / Skills

      Use PositionTagCloud / SkillsTagCloud wrappers (or ProfileTagCloud directly with a field + knownTags). Selected chips render both outside and inside the FsModal.

    3. 3

      Wire Curriculum Vitae

      Mount CurriculumVitaeWidget with value={user.curriculumVitae}. Ensure upload purpose profile:cv is allowed in upload-core and that updateProfile parses curriculumVitae JSON into users.data.

    Doc System

    Deep-dive: WIDGETS-README App UI profile widgets + ring-docs.nodus app_ui_profile section.

    Username reservation

    @handle lives on Messengers tab (above Telegram) — not in the Professional hero.

    updateProfile
    curriculumVitae
    organization
    position
    skills
    UploadPOST /api/uploads purpose profile:cv (lib/uploads/upload-types.ts)
    Storage shapeusers.data.curriculumVitae (CurriculumVitae in features/auth/types.ts)
    DraftsuseLocalStorage key profile_cv_draft_{userId} + useDebounce (same hydration-safe pattern as chat composer)
    ShellFsModal — mobile hideTitleOnMobile, closeClassName="max-sm:hidden", footer Close + Save & Exit

    Davinci-droplist placement

    OrganizationEntitySelect is a migrated Davinci-droplist call site (theme enhancer §7 / DL11), alongside CountrySelect, TimezoneSelect, ProductRepSelect, VendorEntitySelect. ProfileTagCloud reuses DavinciDroplistItem + QuickSearchFilter inside FsModal for multi-tag confirm (not single-select close-on-tap).

    CV mobile editor chrome

    Desktop keeps Cancel + Save labels and the default top-right .modal-close-button.

    1. 1

      Wire Organization

      Import OrganizationEntitySelect into the Professional tab; pass current organization string and onSaved to refresh local profile state after updateProfile.

    2. 2

      Wire Position / Skills

      Use PositionTagCloud / SkillsTagCloud wrappers (or ProfileTagCloud directly with a field + knownTags). Selected chips render both outside and inside the FsModal.

    3. 3

      Wire Curriculum Vitae

      Mount CurriculumVitaeWidget with value={user.curriculumVitae}. Ensure upload purpose profile:cv is allowed in upload-core and that updateProfile parses curriculumVitae JSON into users.data.

    Doc System

    Deep-dive: WIDGETS-README App UI profile widgets + ring-docs.nodus app_ui_profile section.

    ts
    
    // Draft key SSOT (curriculum-vitae-widget.tsx)
    const draftKey = userId ? `profile_cv_draft_${userId}` : 'profile_cv_draft'
    const [storedDraft, setStoredDraft] = useLocalStorage<string>(draftKey, '')
    text
    
    max-sm: full viewport, body padding 0, header hidden
    footer: [Close] ············ [Save & Exit]
    draft:  useLocalStorage autosave while open
    action: Save & Exit → updateProfile → clear draft → close
    ts
    
    // Draft key SSOT (curriculum-vitae-widget.tsx)
    const draftKey = userId ? `profile_cv_draft_${userId}` : 'profile_cv_draft'
    const [storedDraft, setStoredDraft] = useLocalStorage<string>(draftKey, '')
    text
    
    max-sm: full viewport, body padding 0, header hidden
    footer: [Close] ············ [Save & Exit]
    draft:  useLocalStorage autosave while open
    action: Save & Exit → updateProfile → clear draft → close
    ts
    
    // Draft key SSOT (curriculum-vitae-widget.tsx)
    const draftKey = userId ? `profile_cv_draft_${userId}` : 'profile_cv_draft'
    const [storedDraft, setStoredDraft] = useLocalStorage<string>(draftKey, '')
    text
    
    max-sm: full viewport, body padding 0, header hidden
    footer: [Close] ············ [Save & Exit]
    draft:  useLocalStorage autosave while open
    action: Save & Exit → updateProfile → clear draft → close
    1. Docs
    2. /Features
    3. /Profile Account Widgets

    Updated Aug 5, 20263 min listen

    1. Docs
    2. /Features
    3. /Profile Account Widgets

    Updated Aug 5, 20263 min listen

    1. Docs
    2. /Features
    3. /Profile Account Widgets

    Updated Aug 5, 20263 min listen