Skip to main content
TokoTubeIC OS

AgoraFora

A decentralized marketplace and forum platform for censorship-resistant commerce and discussion.

AgoraFora

AgoraFora

AgoraFora is a decentralized marketplace and forum platform for censorship-resistant commerce and discussion, built on the Internet Computer using a scalable multi-canister architecture.

It combines a modern discussion experience with marketplace primitives and on-chain governance patterns, giving communities a place to talk, trade, and coordinate without relying on centralized platforms.

dApp source

Overview

AgoraFora is designed as the decentralized home for your community:

  • Forum-style discussions with threads, rich content, media attachments, and reactions.
  • Marketplace features for listing goods and services, coordinating trades, and handling value flow.
  • Token-aware interactions like token-gated posts, polls, and contribution tracking.
  • Censorship-resistant infrastructure running entirely on the Internet Computer.

Instead of hosting your community on corporate platforms that can deplatform you at any time, AgoraFora lets you run your own infrastructure while still benefiting from a modern UX and robust backend.

Marketplace + forum in one dApp

AgoraFora blurs the line between “discussion board” and “marketplace”:

  • Communities can host general discussion boards, proposal threads, and buy/sell listings side by side.
  • Posts can represent anything from long-form discussions to trade offers, gated content, or governance proposals.
  • Reactions, polls, and stats give you visibility into what the community cares about.

This makes AgoraFora useful for:

  • DAO governance and proposals
  • Niche marketplaces with active discussion (hardware, art, software, etc.)
  • Web3 project communities that want on-chain signaling and coordination

Key features

  • Decentralized marketplace for goods and services.
  • Integrated forums for threaded conversations and community building.
  • Community-first design with real-time-friendly updates, activity feeds, and modern navigation.
  • Customizable themes powered by a Tailwind + shadcn-svelte design system and a light/dark mode watcher.
  • Pseudonymous participation using Internet Identity and optional avatars.
  • Escrow- and token-aware posts via structured token and gating fields on posts.
  • Rich post model including polls, attachments, reactions, reports, and thread statistics.
  • Advanced moderation tooling backed by structured logs, passes/subscriptions, and per-community settings.
  • Community-level governance with room for future on-chain voting and access control.
  • Censorship-resistant hosting on the Internet Computer with data stored in CanDB.

Architecture

AgoraFora reuses the same scalable CanDB architecture pattern used in other Dappjak Labs projects like Seachan, but tailored for communities:

  • Index Canister ("battery")

    • Tracks partition keys and canister mappings.
    • Creates and auto-scales service canisters.
    • Manages cycles and exposes status/metrics.
  • Service canisters

    • AppService (app partition):
      • Global configuration, moderation options, feature flags, and stats.
      • Stores app-level metadata and configuration markdown (e.g. whitepaper text).
    • UserService (user partition):
      • User profiles, avatars, presence, links, and account metadata.
      • Avatar files are stored as metadata + chunked binary data.
    • CommunityService (community#<communityId> partitions):
      • Community metadata (name, slug, description, tags).
      • Posts, threads, polls, reactions, reports, and per-thread stats.
      • File metadata and chunks for attachments.

All of these are built on CanDB, which stores data in stable memory and automatically scales across multiple canisters when size thresholds are reached. The SvelteKit frontend talks to these canisters via a CanDB TypeScript client and IndexClient/ActorClient wrappers.

Post and community model

The backend is structured around a rich post model:

  • Posts include body text, subject, thread ID, and a properties field for flags like pinned/locked/flagged.
  • Attachments are represented via filemetadata#<sha256> keys plus chunked file storage.
  • Polls allow multiple options, write-ins, deadlines, and per-option vote tracking.
  • Gating fields let communities require specific token amounts or NFTs to access certain content or features.
  • Reactions capture quick feedback with emoji-style reactions and timestamps.
  • Thread stats aggregate metrics like post counts, file counts, total file size, visits, and activity timestamps.

This structure gives AgoraFora enough flexibility to act as both a classic forum and a governance/marketplace tool where posts can carry economic or decision-making weight.

For community members

From a user’s perspective, AgoraFora aims to feel familiar while quietly using decentralized infrastructure under the hood:

  • Sign in with Internet Identity rather than centralized accounts.
  • Browse communities, threads, and listings with a modern SvelteKit UI.
  • Create posts, reply, react, and participate in polls.
  • Attach files and media that are backed by on-chain metadata and chunked storage.

Because the backend is token-aware, future iterations can support:

  • Token-gated access to specific communities or threads.
  • Reputation and badges tied to on-chain activity.
  • Direct integration with payments and escrow flows.

For community operators

AgoraFora is also built for operators who need control and observability:

  • Configure app-level settings (moderation, cooldowns, maintenance modes) through AppService data.
  • Manage user profiles and avatars via UserService.
  • Spin up and manage multiple communities, each backed by its own community#<id> partition in CommunityService.
  • Leverage structured logs and stats for understanding activity and scaling behavior.

The cycles "battery" pattern in the Index canister helps ensure that communities keep running by automatically topping up canisters as needed, within configured limits.

Technology stack

  • Backend

    • Motoko canisters on the Internet Computer.
    • CanDB for scalable, partitioned key-value storage in stable memory.
    • Multi-canister Index + App/User/Community service pattern.
  • Frontend

    • SvelteKit for the application shell and routing.
    • TypeScript for type safety.
    • Tailwind CSS v4 for utility-first styling.
    • shadcn-svelte for composable UI components.
    • mode-watcher for light/dark theme management.
    • Lucide icons for a consistent icon set.
  • Clients & integration

    • IndexClient and ActorClient from the CanDB TypeScript ecosystem.
    • Internet Identity integration for authentication.

Development status

AgoraFora is under active development with a canister deployed at the URL above. The backend architecture, data model, and client patterns are in place, with ongoing work focusing on:

  • Iterating on the community and post UX.
  • Expanding marketplace-specific flows and escrow patterns.
  • Refining moderation and governance tooling.
  • Hardening scaling and cycles management for larger communities.

The project is fully open source under the MIT license and explicitly welcomes contributions, from UI improvements to new governance and moderation features.

The bigger picture

AgoraFora fits into Dappjak Labs’ broader vision of decentralized, censorship-resistant social infrastructure.

By combining:

  • A modern community UX
  • Marketplace and governance primitives
  • A scalable, token-aware multi-canister backend

AgoraFora aims to give communities a place to live, trade, and coordinate that they can actually own - without handing control to centralized platforms.