Leww.space is an open-source URL shortener and link management platform that helps you create, track, and manage your shortened URLs efficiently.
For detailed documentation and guides, please visit πππ this page. πππ
This project is structured as a monorepo using Turborepo and pnpm for efficient package management and build orchestration.
| Links List | Link Builder |
|---|---|
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
- Next.js 15
- React 19
- TypeScript
- Tailwind CSS
- Shadcn UI
- Turborepo
- pnpm (Package Manager)
- NestJS
- PostgreSQL
- Redis
- Docker
- TypeScript
The frontend follows the Feature-Sliced Design (FSD) architectural methodology, which provides a structured approach to organizing code based on business logic and features.
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)
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
- Clone the repository:
git clone https://github.com/your-username/leww.space.git
cd leww.space- Install dependencies:
# Install pnpm if you haven't already
npm install -g pnpm
# Install project dependencies
pnpm install- 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# Build all packages and applications
pnpm build
# Run development server
pnpm dev
# Run tests across all packages
pnpm test
# Lint all packages
pnpm lintPlease check the individual README files in the client/ and server/ directories for detailed setup instructions and contribution guidelines.