Skip to content

hvchien216/aurora

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Leww.space - Open Source URL Shortener

πŸš€πŸš€πŸš€ The Backend-side is live. πŸš€πŸš€πŸš€

Leww.space is an open-source URL shortener and link management platform that helps you create, track, and manage your shortened URLs efficiently.

Tech Stacks

Documentation (DeepWiki)

For detailed documentation and guides, please visit πŸš€πŸš€πŸš€ this page. πŸš€πŸš€πŸš€

Project Overview

This project is structured as a monorepo using Turborepo and pnpm for efficient package management and build orchestration.

Preview πŸš€πŸš€πŸš€

Links List Link Builder
Links List Link Builder

Monorepo Structure

leww.space/
β”œβ”€β”€ client/           # Frontend monorepo
β”‚   β”œβ”€β”€ apps/        # Next.js applications
β”‚   β”‚   └── web/     # Main web application
β”‚   └── packages/    # Shared packages
β”‚       β”œβ”€β”€ eslint-config/    # Shared ESLint configurations
β”‚       β”œβ”€β”€ tailwind-config/  # Shared Tailwind CSS configurations
β”‚       β”œβ”€β”€ typescript-config/# Shared TypeScript configurations
β”‚       β”œβ”€β”€ ui/              # Shared UI component library
β”‚       └── utils/           # Shared utility functions
β”œβ”€β”€ server/          # Backend API
β”‚   β”œβ”€β”€ src/         # Source code
β”‚   └── prisma/      # Database schema and migrations

Tech Stack

Frontend

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind CSS
  • Shadcn UI
  • Turborepo
  • pnpm (Package Manager)

Backend

  • NestJS
  • PostgreSQL
  • Redis
  • Docker
  • TypeScript

Architecture

Frontend Architecture (FSD)

The frontend follows the Feature-Sliced Design (FSD) architectural methodology, which provides a structured approach to organizing code based on business logic and features.

Layer Organization

src/
β”œβ”€β”€ app/          # Application setup layer
β”œβ”€β”€ processes/    # Complex processes and flows
β”œβ”€β”€ pages/        # Page components and routes
β”œβ”€β”€ widgets/      # Complex reusable components
β”œβ”€β”€ features/     # User interactions and business logic
β”œβ”€β”€ entities/     # Business entities
└── shared/       # Shared kernel (UI, libs, API, configs)

Package Dependencies

Our monorepo uses Turborepo for efficient build orchestration and caching. Key packages include:

  • @leww/ui: Shared UI components
  • @leww/utils: Common utility functions
  • @leww/eslint-config: Standardized ESLint rules
  • @leww/tailwind-config: Shared Tailwind configuration
  • @leww/typescript-config: Shared TypeScript configuration

Quick Start

  1. Clone the repository:
git clone https://github.com/your-username/leww.space.git
cd leww.space
  1. Install dependencies:
# Install pnpm if you haven't already
npm install -g pnpm

# Install project dependencies
pnpm install
  1. Start the development environment:
# Start the backend services (PostgreSQL, Redis)
cd server
docker-compose up -d postgres redis

# Start the backend development server
pnpm start:dev

# In a new terminal, start the frontend
cd ../client
pnpm dev

Development Workflow

Running Tasks with Turborepo

# Build all packages and applications
pnpm build

# Run development server
pnpm dev

# Run tests across all packages
pnpm test

# Lint all packages
pnpm lint

Contributing

Please check the individual README files in the client/ and server/ directories for detailed setup instructions and contribution guidelines.