"Create like the silence is watching."
Nomad Labs is a modern, aesthetic research and publishing platform designed for sharing scientific papers, lab notes, and experimental ideas. It features a distraction-free reading experience, a powerful editor, and a community-driven ecosystem for researchers and thinkers.
- 🔬 Research Publishing: Publish full research papers with abstract, citations, and versioning.
- 📝 Lab Notes: Share quick thoughts, experiments, and daily logs.
- 🎨 Aesthetic UI: A dark-mode first design with interactive physics-based backgrounds and glassmorphism effects.
- 🔐 Authentication: Secure user authentication via Supabase (Email/Password & OAuth).
- 💬 Community Interaction: Commenting system with nested replies and custom reactions (🔥, 🧠, 🚀).
- 🛡️ Admin Dashboard: Dedicated panel for managing users and content.
- ⚡ High Performance: Built on Vite and React 19 for blazing fast performance.
- Frontend: React 19, Vite
- Styling: Tailwind CSS (CDN & Configured), Lucide React (Icons)
- Backend & Auth: Supabase
- Math Rendering: KaTeX
- Routing: React Router v7
Follow these steps to set up the project locally.
- Node.js (v18 or higher)
- npm or yarn
- A Supabase account
-
Clone the repository
git clone https://github.com/currentsuspect/NomadLabs.git cd nomad-labs -
Install dependencies
npm install
-
Environment Setup Create a
.envfile in the root directory based on.env.example:cp .env.example .env
Update the variables with your Supabase credentials:
VITE_SUPABASE_URL=your_project_url VITE_SUPABASE_ANON_KEY=your_anon_key
-
Database Setup
- Go to your Supabase project dashboard.
- Open the SQL Editor.
- Copy the contents of
SUPABASE_SETUP.sqlfrom this repository. - Run the SQL script to create the necessary tables, policies, and triggers.
-
Run the Application
npm run dev
Open http://localhost:3000 to view it in the browser.
nomad-labs/
├── src/
│ ├── components/ # Reusable UI components (Layout, Auth, UI elements)
│ ├── services/ # API and Supabase service layers
│ ├── views/ # Page components (Home, Explore, Editor, etc.)
│ ├── utils/ # Helper functions
│ ├── types.ts # TypeScript interfaces and types
│ ├── constants.ts # Global constants
│ ├── App.tsx # Main application component & Routing
│ └── index.tsx # Entry point
├── public/ # Static assets
├── supabase/ # Supabase configuration (if applicable)
├── SUPABASE_SETUP.sql # SQL script for database initialization
└── README.md # Project documentation
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.