# byt.la - URL Shortener > URL shortener with analytics, custom codes, and link management ## Features - **URL Shortening**: Convert long URLs into short, memorable links - **Custom Short Codes**: Create personalized short codes for your links - **Analytics Tracking**: Track clicks, referrers, and link performance - **Link Expiration**: Set time-based expiration for temporary links - **User Dashboard**: Manage all your shortened URLs in one place - **Secure Authentication**: User registration and login with bcrypt password hashing - **Rate Limiting**: 10 requests per minute per IP address - **Fast Redirects**: Built with Next.js and PostgreSQL for optimal performance ## API Endpoints ### Shorten URL POST /api/shorten { "url": "https://example.com/long-url", "customCode": "my-link", "expiresIn": 24 } ### Authentication POST /api/auth/register - Create new account POST /api/auth/login - Sign in POST /api/auth/logout - Sign out GET /api/auth/me - Get current user ### URL Management PATCH /api/urls/[id] - Update URL DELETE /api/urls/[id] - Delete URL ## Technology Stack - Next.js 16 with App Router - React 19 - TypeScript 5.9 - PostgreSQL 16 - Drizzle ORM - Tailwind CSS - Docker & Docker Compose ## Project Structure /src /app - Next.js app router pages /components - React components /lib /auth - Authentication utilities /db - Database schema and connection /seo - SEO metadata and structured data ## Links - Documentation: See AUTHENTICATION.md for auth system details - API: RESTful API with JSON responses - GitHub: Open source URL shortener project