Skip to content

AnBoyvan/axyron

Repository files navigation

Axyron

Team project and task management platform with analytics, meetings, and role-based access — built for modern organizations.


Table of Contents


Why Axyron Exists

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

Core Capabilities

  • 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

Tech Stack

  • 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

Quick Start

git clone https://github.com/AnBoyvan/axyron.git
cd axyron
npm install
npm run dev

You will need accounts for: Neon (PostgreSQL), Better Auth, Google OAuth, Polar.sh, Cloudflare R2.


Environment Variables

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=

How It Works

  1. Users authenticate via email/password or Google OAuth (Better Auth)
  2. Users create or join organizations via invite links
  3. Admins manage projects, members, and billing plans per organization
  4. Tasks are created within projects and assigned to members
  5. All changes are logged to the activity feed
  6. Billing plan limits (members/projects) are enforced server-side via Polar webhooks
  7. File uploads (org avatars) go to Cloudflare R2

For deep technical details see: docs/architecture.md


Development

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 Biome

About this project

This repository is a portfolio demonstration.

See: docs/description.md

Documentation

Full technical documentation and architecture breakdown:
docs/architecture.md

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages