Lumina is a modern, responsive AI chat interface built with Next.js and TypeScript, designed to provide a seamless and engaging user experience.
- Next.js 13+ (App Router): Leverages the latest features of Next.js for optimal performance and routing.
- TypeScript: Ensures type safety and maintainability with TypeScript.
- Tailwind CSS: Provides a utility-first CSS framework for rapid and consistent styling.
- Clerk Authentication: Secure and easy-to-integrate authentication with Clerk.
- File Attachments: Supports file uploads for enhanced communication.
- Dark/Light Mode: Offers a customizable user experience with a dark/light mode toggle.
- Real-time Chat: Delivers a fluid and responsive real-time chat experience.
- Modern UI Components: Utilizes
shadcn/uifor a beautiful and accessible user interface. - Responsive Layout: Adapts seamlessly to different screen sizes and devices.
Follow these steps to get Lumina up and running on your local machine.
-
Clone the repository:
git clone https://github.com/ken-rolex/Lumina.ai.git
-
Navigate to the project directory:
cd lumina -
Install dependencies:
npm install # or yarn install -
Configure Environment Variables:
Create a
.env.localfile in the root directory and add your Clerk API keys:NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_publishable_key CLERK_SECRET_KEY=your_secret_key- Note: Replace
your_publishable_keyandyour_secret_keywith your actual Clerk API keys. You can obtain these from your Clerk dashboard.
- Note: Replace
-
Run the development server:
npm run dev # or yarn dev -
Open in your browser:
Open http://localhost:3000 with your browser to see Lumina in action!
lumina/
├── app/
│ ├── api/
│ ├── layout.tsx
│ └── page.tsx
├── components/
│ ├── ui/
│ ├── nav-bar.tsx
│ └── thread.tsx
├── public/
└── styles/
app/: Contains the core routing and layout of the application, powered by Next.js's App Router.
components/ui/: Houses the modern UI components fromshadcn/ui, providing a consistent and visually appealing design.components/nav-bar.tsx: Implements the navigation bar, allowing users to navigate the application.components/thread.tsx: Renders the chat thread, displaying messages and handling user input.
We welcome contributions to Lumina! Here's how you can contribute:
-
Fork the repository: Click the "Fork" button at the top right of the GitHub page.
-
Create your feature branch:
git checkout -b feature/amazing-feature
-
Commit your changes:
git commit -m 'Add some amazing feature' -
Push to the branch:
git push origin feature/amazing-feature
-
Open a Pull Request: Submit a pull request from your feature branch to the
mainbranch of the original repository. Please provide a clear and concise description of your changes.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built using Next.js
- Styled with Tailwind CSS
- UI components from shadcn/ui
- Authentication by Clerk
Made with ❤️ by Rajan Jha