Skip to content

Technology Stack

LayerTechnologyPurpose
FrontendReact, Vite, TypeScriptStatic SPA for reader and author workspaces.
UITailwind CSS, shadcn-style components, Magic UI componentsApplication layout, forms, cards, drawers and interaction polish.
Data fetchingTanStack Query, AxiosQuery caching, mutation invalidation and typed API requests.
Web3 frontendwagmi, viemWallet connection, contract reads, contract writes and transaction handling.
BackendEncore.ts, TypeScriptDomain services, authentication, API routing and infrastructure integration.
DatabaseMongoDBProfiles, posts, projects, policies, subscriptions, entitlements and activity.
Object storageMinIOPost attachments and project file objects.
Smart contractsSolidity, HardhatSubscription managers, deployment scripts and contract tests.
DeploymentDocker, nginx, GitHub Actions, CoolifyApplication container build, runtime orchestration and manual contract deployment.
DocumentationVitePress, MermaidStatic documentation portal and architecture diagrams.

Shared contracts

The repository contains a shared package with DTOs, constants, ABI exports and pure web3 helpers used by both frontend and backend. This reduces drift between API responses, frontend views and backend service contracts.

Why this stack fits the product

RequirementStack choiceReason
Static application shellReact + ViteFast build and simple nginx/static deployment.
Server state and cache invalidationTanStack QueryFits feed pages, optimistic reactions, mutation invalidation and paginated data.
Wallet and contract operationswagmi + viemNative React hooks for wallet state and low-level contract reads/writes.
Domain-oriented backendEncore.tsService boundaries, typed APIs and simple infrastructure wiring.
Protected binary storageMinIOPrivate objects, signed URLs and controllable storage accounting.
Payment verificationSolidity + HardhatExplicit contract state, events and reproducible tests/deploy scripts.
Engineering documentationVitePress + MermaidStatic portal with diagrams stored alongside the repository.