Technical Architecture (Proposed)

This is a starting proposal for when build begins — intentionally boring/proven technology choices, consistent with this org's existing stack (see the CRM platform at crm.dmll.in for precedent: Node/Express + React + MySQL, Apache-fronted). Revisit once real requirements (team size, timeline) are locked in.

High-level shape

┌─────────────┐     ┌──────────────────┐     ┌───────────────┐
│  React SPA   │────▶│  Node/Express API │────▶│  MySQL          │
│  (frontend)  │     │  (REST, JWT auth)  │     │  (primary data) │
└─────────────┘     └──────────────────┘     └───────────────┘
                             │
                 ┌───────────┼────────────┐
                 ▼           ▼            ▼
          ┌───────────┐ ┌──────────┐ ┌──────────────┐
          │ Payment    │ │ Object    │ │ Notification  │
          │ Gateway    │ │ Storage   │ │ (email/SMS/   │
          │ (Razorpay/ │ │ (media/   │ │  in-app push) │
          │ Cashfree)  │ │ portfolio)│ │               │
          └───────────┘ └──────────┘ └──────────────┘

Core services/modules

Data model sketch (core entities, not exhaustive)

Integration points requiring early decisions

  1. Payment gateway (Razorpay/Cashfree/PayU) — determines escrow implementation details (some gateways have native marketplace/escrow/split-payment products, e.g., Razorpay Route — strongly prefer using a gateway's native marketplace payment product over hand-rolling escrow logic if one fits, to reduce compliance/PCI burden).
  2. Social platform APIs — Instagram Graph API (business accounts only, requires app review), YouTube Data API (more open), TikTok API (restrictive). v1 should not depend on deep API access being approved before launch — design verification (07-trust-safety.md) to degrade gracefully to manual/self-reported methods.
  3. Object storage for portfolio media/deliverables — S3-compatible storage (matches common patterns), with CDN in front for profile/portfolio media that gets repeatedly viewed.
  4. SMS/Email provider — transactional email (existing org pattern uses Resend per other DMCoder-managed services) + an SMS provider for India (MSG91/Twilio).

Hosting note (this environment)

Given DNS for hireforgig.dmll.in already resolves to this host's infrastructure (same pattern as crm.dmll.in, my2ndbrain.dmll.in), the natural path is: Apache-fronted, Node/Express API + pm2, MySQL database, React SPA build served as static files — identical operational pattern to the CRM platform already running here, which keeps ops/monitoring/deploy tooling consistent across this org's projects.

Non-functional requirements worth calling out early