Lumina is a premium, high-performance web application designed to be your ultimate digital sanctuary for knowledge management. Built with cutting-edge technologies, Lumina offers a seamless, beautiful, and secure experience for organizing and accessing your most important resources.
- 🎨 Exquisite Design: A stunning, modern interface featuring glassmorphism, smooth micro-animations, and a curated dark-mode aesthetic.
- 🔐 Secure Authentication: Robust user management powered by NextAuth.js v5, supporting secure credentials and session handling.
- 🚀 Advanced Workflows: Automated onboarding and background processes utilizing Upstash Workflow and QStash for high reliability.
- 🖼️ Rich Media Support: seamless image uploading and processing integrated with ImageKit.io.
- ⚡ High-Performance Database: Blazing fast data access with Neon PostgreSQL and Drizzle ORM for type-safe queries.
- 🛡️ Rate Limiting & Protection: Infrastructure-level security with Upstash Redis to ensure system stability.
- Framework: Next.js 15+ (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 4 & Radix UI
- Database: Drizzle ORM + Neon (PostgreSQL)
- Authentication: NextAuth.js v5
- Infrastructure: Upstash (Redis, QStash, Workflow)
- Storage: ImageKit.io
- Formatting/Linting: Biome
Follow these steps to set up Lumina locally.
Ensure you have the following installed:
- Node.js 20+
- pnpm (recommended)
Create a .env.local file in the root directory and add the following keys:
# Database
DATABASE_URL=your_neon_postgresql_url
# Authentication
AUTH_SECRET=your_next_auth_secret
# ImageKit
NEXT_PUBLIC_IMAGEKIT_URL_ENDPOINT=your_endpoint
NEXT_PUBLIC_IMAGEKIT_PUBLIC_KEY=your_public_key
IMAGEKIT_PRIVATE_KEY=your_private_key
# Upstash (Redis & QStash)
UPSTASH_REDIS_URL=your_redis_url
UPSTASH_REDIS_TOKEN=your_redis_token
QSTASH_URL=your_qstash_url
QSTASH_TOKEN=your_qstash_token
QSTASH_CURRENT_SIGNING_KEY=your_signing_key
QSTASH_NEXT_SIGNING_KEY=your_next_signing_key
# External Services
RESEND_TOKEN=your_resend_api_key
NEXT_PUBLIC_API_ENDPOINT=http://localhost:3000/apipnpm installSynchronize your database schema:
pnpm db:generate
pnpm db:migrateStart the development server:
pnpm devOpen http://localhost:3000 with your browser to experience Lumina.
pnpm dev: Starts the development server.pnpm build: Creates an optimized production build.pnpm start: Runs the built application in production mode.pnpm lint: Runs ESLint and checks for code quality.pnpm db:generate: Generates database migration files.pnpm db:migrate: Applies migrations to the database.pnpm db:studio: Opens Drizzle Studio for visual database management.
Lumina is built for the future of digital organization. If you'd like to contribute, please fork the repository and submit a pull request.
Built with ❤️ by Yahya Elmoshneb