A simple help desk. That's it.
# One command to start everything
docker compose -f docker/docker-compose.yml up
# Open http://localhost:3000
# Login: [email protected] / Admin123!Database migrations run automatically.
- Customers submit and track tickets
- Agents manage, assign, and resolve tickets
- Knowledge base for self-service
- File attachments, categories, and tags
- Real-time updates and email notifications
- Two-factor authentication
| Layer | Technology |
|---|---|
| Backend | .NET 10 / ASP.NET Core |
| Frontend | Next.js 16, React 19, TypeScript, Tailwind CSS 4 |
| Database | PostgreSQL (EF Core, Npgsql) |
| Cache/Messaging | Redis (MassTransit) |
| Auth | JWT + TOTP two-factor |
| Real-time | SignalR |
| Patterns | CQRS (MediatR), FluentValidation |
| Monorepo | Nx |
Web :3000 -> API :5000 -> PostgreSQL :5432
|
Redis :6379
hickory/
├── apps/
│ ├── api/ # .NET 10 API (CQRS, feature folders)
│ ├── web/ # Next.js 16 frontend
│ ├── cli/ # CLI tool
│ ├── cli-e2e/ # CLI end-to-end tests
│ └── web-e2e/ # Playwright end-to-end tests
├── docker/ # Docker Compose, Dockerfiles
├── tests/ # Performance tests
└── scripts/ # Dev/build scripts
# Requirements: .NET 10, Node.js 20+, PostgreSQL, Redis
# Start infrastructure only
docker compose -f docker/docker-compose.yml up postgres redis -d
# Backend (auto-migrates in development)
cd apps/api && dotnet run
# Frontend (separate terminal)
cd apps/web && npm install && npm run devnpx nx run-many --target=test --all # All frontend tests (Jest)
npx nx e2e web-e2e # E2E tests (Playwright)
dotnet test # .NET unit + integration tests (Docker required for integration)
npm run test:performance # Performance testsHickory prioritizes simplicity over features. If you need multi-tenancy, complex analytics, SSO/SAML, or workflow automation -- use purpose-built tools for those. We keep the core simple so it stays maintainable.
See LICENSE file.