Finish ArenaDesk Full-Stack MVP

via Freelancer ·

Budget / SalaryHourly project
TypeFreelance project
LocationRemote
Posted1 hour ago
Milestone 1 is live—templates, event flow, and the basic fight-card builder are already deployed in our mono-repo. I now need a senior TypeScript engineer who can carry the codebase through Milestones 2 to 4 while respecting the domain rules and our strict multi-tenant isolation.

Milestone 2 – top priority
• Build the fighter-facing portal on Next.js.
• Initial scope: a clean fight-history view and a training-schedule calendar that pulls data through the existing NestJS + GraphQL API.
• All data mutations must stay inside our Prisma layer and pass the current tenancy guards.

Milestone 3
• Form-based submission system so promoters, gyms, and commissions can lodge bout agreements, medicals, and weigh-ins.
• “Human Action” queue: every submission routes to an internal review screen before it can hit the ledger.

Milestone 4
• Plug-in AI document checks (we already license an OCR/ID-auth service—SDK ready).
• Automate e-mails, webhooks, and PDF stamping.
• Spin up staging and prod on Hetzner using our Docker swarm scripts, then hand over CI/CD docs.

Tooling highlights
NestJS 10, GraphQL code-first, Prisma 5, Next.js 14 (App Router), React 18, Zod, Docker, GitHub Actions. Everything is TypeScript, linted with ESLint/Prettier, tested in Vitest.

I will grant you repo access, an isolated tenant, and a full notion spec for each milestone. Code quality, tenancy safety, and test coverage are non-negotiable; I review every PR.

Please reply with:
1. Your hourly or milestone rate.
2. Weekly availability over the next eight weeks.
3. Links to past multi-tenant or workflow-heavy projects (GitHub, demo, or screenshots).

Remote only, async friendly. I’m ready to onboard as soon as I find the right fit.
javascript html5 node.js angularjs typescript docker graphql next.js
Apply on Freelancer →

Project sourced from Freelancer.com. Applications happen directly on the original platform — we never collect your data.