Orbis - Complete Project Overview
Project Summary
Orbis is the ultimate community hub for Hytale, inspired by SpigotMC/CurseForge for Minecraft. The project is community-driven and open-source, reflecting Hytale's philosophy.
What's inside?
This Turborepo monorepo includes the following packages & apps:
Apps and Packages
.
├── apps
│ ├── api # NestJS app (https://nestjs.com) - Backend API
│ └── web # Next.js app (https://nextjs.org) - Frontend web application
└── packages
├── @repo/auth # Authentication package with Better Auth
├── @repo/database # Prisma database schema and client
├── @repo/eslint-config # `eslint` configurations (includes `prettier`)
├── @repo/jest-config # `jest` configurations
├── @repo/typescript-config # `tsconfig.json`s used throughout the monorepo
└── @repo/ui # Shareable stub React component library
Each package and application are mostly written in TypeScript.
Tech Stack
This project uses:
- TypeScript for static type-safety
- Next.js for the frontend
- NestJS for the backend API
- Prisma for database ORM
- Better Auth for authentication with email support
- ESLint for code linting
- Prettier for code formatting
- Jest & Playwright for testing
- Turborepo for monorepo management
Commands
Development
# Run the development server for all apps & packages
pnpm run dev
Build
# Build all apps & packages
pnpm run build
# Note: If you plan to build apps individually,
# please make sure you've built the packages first.
Test
# Launch test suites for all apps & packages
pnpm run test
# Run end-to-end tests
pnpm run test:e2e
# See `@repo/jest-config` to customize the behavior.
Lint
# Lint all apps & packages
# See `@repo/eslint-config` to customize the behavior.
pnpm run lint
Format
# Format all supported `.ts,.js,json,.tsx,.jsx` files
# See `@repo/eslint-config/prettier-base.js` to customize the behavior.
pnpm format
Remote Caching
[!TIP] Vercel Remote Cache is free for all plans. Get started today at vercel.com.
Turborepo can use a technique known as Remote Caching to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.
By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can create one, then enter the following commands:
npx turbo login
This will authenticate the Turborepo CLI with your Vercel account.
Next, you can link your Turborepo to your Remote Cache by running the following command from the root of your Turborepo:
npx turbo link
Contributing
Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
Useful Links
Learn more about the technologies used: