Directory Structure
Directory Structure
The project follows a standard Next.js 15 App Router architecture. It is designed with a "Neo-brutalist" aesthetic, utilizing Tailwind CSS for styling and Recharts for data visualization.
/app (Routing & Pages)
The app directory defines the application's routes and global layouts.
| Path | Description |
| :--- | :--- |
| layout.tsx | The root layout containing global fonts (Space Grotesk), SEO metadata, and Vercel Analytics. |
| page.tsx | The Home Page. Displays high-level hero statistics, recent deals, and quick insights. |
| analytics/page.tsx | The Analytics Dashboard. Visualizes trends, sector distributions, and investor patterns. |
| explore/page.tsx | The Search & Discovery hub. Features comprehensive filtering for sectors, stages, locations, and funding ranges. |
| deal/[id]/page.tsx | Deal Detail dynamic route. Displays granular information about a specific funding round. |
| globals.css | Global styles including Tailwind directives and custom Neo-brutalist utility classes (e.g., neo-border, neo-shadow). |
/components (UI Building Blocks)
Components are modular and reusable, categorized by their role within the dashboard.
Core UI Components
Header.tsx: Persistent navigation bar containing the site search functionality.DealCard.tsx: A summary card for a single funding deal, used in lists and grids.FilterPanel.tsx: A sidebar component used in the/explorepage to manage complex data filtering.
Data & Visualizations
AnalyticsDashboard.tsx: A complex client-side component usingrechartsto render bar, line, and pie charts.HeroStats.tsx: Calculates and displays aggregate metrics (Total Funding, Most Active Sector, etc.) for the landing page.QuickInsights.tsx: Generates "Trending Sectors" and "Most Active Investors" rankings based on the dataset.
Functional Components
DealsList.tsx: Handles the rendering logic for arrays of deal data, including "No results" states.DealDetail.tsx: The primary view for individual deal records, including investor lists and source links.
/data & /config
This directory serves as the "database" for the static site.
funding-data.ts: The primary TypeScript file containing the array of startup funding objects.currency.js(referenced): Configuration for the USD to INR conversion rates.
Tip: To update the data, modify
funding-data.tsand ensure theidfor each deal is unique. To update currency rates, edit the configuration and run the data generation script:npm run generate-data
/lib (Utilities)
The lib folder contains shared helper functions used across the application.
utils.ts
The primary utility file includes:
cn(...): A wrapper forclsxandtailwind-mergefor conditional class manipulation.formatFundingAmount(amount: number): Formats raw numeric data (in Lakhs) into readable Indian Rupee strings.// Example Usage: formatFundingAmount(100) // Returns "₹1Cr" formatFundingAmount(100000) // Returns "₹1.00B" formatFundingAmount(50) // Returns "₹50L"isFundingDisclosed(amount: number): Logic to determine if a funding round value should be displayed or hidden.
Key Styling Conventions
The application uses specific CSS classes defined in globals.css to achieve its unique look:
.neo-border: Applies the thick black 4px border characteristic of the design..neo-hover: Adds a "lift" effect and shadow on interaction..neo-shadow: Applies a hard-angled drop shadow.