Team project and task management platform with analytics, meetings, and role-based access — built for modern organizations.
- Why Axyron Exists
- Core Capabilities
- Tech Stack
- Quick Start
- Environment Variables
- How It Works
- Development
- About this project
- Documentation
Most project management tools are either too simple or too bloated.
Axyron gives teams exactly what they need, where:
- Organizations manage multiple projects with fine-grained permissions
- Tasks have priorities, deadlines, subtasks, assignees, and activity logs
- Meetings are planned and tracked alongside project work
- Analytics provide real-time visibility into team progress
- Billing plans scale with team size via Polar.sh
- Multi-organization support with invite-based membership
- Project management with visibility controls (public/private) and archiving
- Task system with priorities, statuses, subtasks, comments, and assignees
- Meeting scheduling with attendee management
- Calendar view across all projects and tasks
- Analytics and progress charts per project
- Activity log for all task and project changes
- Role-based permissions at both organization and project level
- Subscription billing with plan-based limits (free / basic / pro)
- Multilingual interface (English, Ukrainian)
- File uploads for organization avatars via Cloudflare R2
- Next.js 16 (App Router) + React 19 + TypeScript
- tRPC v11 — end-to-end typesafe API
- Drizzle ORM + Neon — serverless PostgreSQL
- Better Auth — authentication (email/password + Google OAuth)
- Polar.sh — subscription billing with webhooks
- Cloudflare R2 — file storage (AWS S3 SDK)
- TanStack Query — server state management
- Zustand — client state management
- next-intl — internationalization
- Tailwind CSS v4 + Radix UI — UI components
- Recharts — analytics charts
- Zod — schema validation
- Biome — formatting and linting
git clone https://github.com/AnBoyvan/axyron.git
cd axyron
npm install
npm run devYou will need accounts for: Neon (PostgreSQL), Better Auth, Google OAuth, Polar.sh, Cloudflare R2.
Create a .env.local file:
# Base
APP_URL=
NEXT_PUBLIC_APP_URL=
NEXT_PUBLIC_DEVELOPED_BY=
# Database
DATABASE_URL=
# Auth
BETTER_AUTH_SECRET=
BETTER_AUTH_URL=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# Polar (Billing)
POLAR_ACCESS_TOKEN=
POLAR_WEBHOOK_SECRET=
POLAR_SERVER=sandbox
POLAR_BASIC_PRODUCT_ID=
POLAR_PRO_PRODUCT_ID=
# Cloudflare R2 (Storage)
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET_NAME=
R2_TOKEN=
NEXT_PUBLIC_R2_PUBLIC_URL=
# Vercel
CRON_SECRET=
- Users authenticate via email/password or Google OAuth (Better Auth)
- Users create or join organizations via invite links
- Admins manage projects, members, and billing plans per organization
- Tasks are created within projects and assigned to members
- All changes are logged to the activity feed
- Billing plan limits (members/projects) are enforced server-side via Polar webhooks
- File uploads (org avatars) go to Cloudflare R2
For deep technical details see: docs/architecture.md
npm run dev # Start Next.js dev server
npm run db:push # Push schema changes to database
npm run db:studio # Open Drizzle Studio
npm run lint # Run Biome linter
npm run format # Format with BiomeThis repository is a portfolio demonstration.
See: docs/description.md
Full technical documentation and architecture breakdown:
docs/architecture.md
