Nebulo is a web application designed to analyze GitHub codebases. It provides repository analysis, AI-powered question answering, and automated README generation. Users can purchase credits to unlock advanced features.
- Frontend: Next.js, React, TypeScript, Tailwind CSS, Framer Motion
- Authentication: Clerk.js
- Backend: tRPC, Prisma ORM, PostgreSQL (NeonDB)
- AI Integration: Google Gemini API
- Payments: Razorpay API
- Others: Vector database for embeddings, GitHub API
- Landing page with hero section, navigation, and feature highlights
- Collapsible sidebar for navigation and project selection
- AI-powered question answering about codebases
- Automated README generation from the codebase
- Billing page for purchasing credits
- Project creation and GitHub repo syncing
- Responsive UI with protected routes and loading indicators
- Dashboard page
- QnA page
- Readme generator
- Billing section
- Create project page
- Sign up and log in with Clerk authentication.
- Create a project by entering your GitHub repository URL.
- Analyze your codebase, ask AI questions, and generate README in the QA/README section.
- Use the Billing page to purchase credits if needed.
- Navigate easily between projects using the collapsible sidebar.
nebulo/
├── prisma/
│ └── schema.prisma # Prisma schema definition
├── public/ # Public assets
├── src/
│ ├── app/
│ │ ├── (protected)/
│ │ │ ├── api/
│ │ │ │ ├── razorpay/
│ │ │ │ │ └── route.ts # Razorpay API route
│ │ │ ├── billing/ # Billing page
│ │ │ ├── create/ # Project creation page
│ │ │ ├── dashboard/ # Project dashboard
│ │ │ ├── join/ # Join project page
│ │ │ ├── qa/ # AI Q&A page
│ │ │ └── readme/ # Automated README generation
│ │ ├── AppSidebar.tsx # Sidebar component
│ │ ├── layout.tsx # Protected layout
│ │ └── loading.tsx # Loading spinner
│ ├── _components/ # Reusable components
│ ├── api/
│ │ ├── trpc/ # tRPC API routes
│ │ └── webhooks/
│ │ └── razorpay/
│ │ └── route.ts # Razorpay webhook handler
│ ├── sign-in/ # Sign-in page
│ ├── sign-up/ # Sign-up page
│ ├── sync-user/ # Sync GitHub user data
│ ├── layout.tsx # Root layout
│ └── page.tsx # Landing page
├── components/ # UI components
├── hooks/
│ ├── use-mobile.ts # Mobile detection hook
│ ├── use-project.ts # Project context hook
│ └── use-refetch.ts # Custom refetch logic
├── lib/
│ ├── gemini.ts # Google Gemini integration
│ ├── github-loader.ts # GitHub repo loader
│ ├── github.ts # GitHub API helpers
│ └── utils.ts # Utility functions
├── server/
│ ├── api/ # Server-side API
│ └── db.ts # Prisma client setup
├── styles/ # Global styles
├── trpc/ # tRPC server setup
├── env.js # Environment validation
├── middleware.ts # Next.js middleware
├── .gitignore
├── README.md
├── bun.lock
├── components.json
├── eslint.config.js
├── next.config.js
├── package.json
├── package-lock.json
├── postcss.config.js
├── prettier.config.js
├── start-database.sh
└── tsconfig.json
| Variable Name | Description |
|---|---|
| DATABASE_URL | URL for the database connection. |
| NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY | Clerk publishable Key. |
| CLERK_SECRET_KEY | Clerk auth secret key |
| NEXT_PUBLIC_CLERK_SIGN_IN_URL | URL for Clerk sign-in page |
| NEXT_PUBLIC_CLERK_SIGN_UP_URL | URL for Clerk sign-in page |
| NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL | Fallback URL for sign-in |
| NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL | Fallback URL for sign-up |
| NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL | URL for forced redirect after sign-up |
| NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL | URL for forced redirect after sign-in |
| GITHUB_TOKEN | Personal GitHub token for GitHub API Usage |
| GEMINI_API_KEY | Google Gemini API Key for LLM access. |
| RAZORPAY_KEY_ID | Razorpay Key ID for payment processing. |
| RAZORPAY_KEY_SECRET | Razorpay Key Secret for payment processing. |
| NEXT_PUBLIC_RAZORPAY_KEY_ID | Razorpay Key ID for payment processing. |
| APP_URL | The URL of the deployed application |
| RAZORPAY_WEBHOOK_SECRET | Secret for webhook integration of Razorpay |





