GrowEasy CRM includes an advanced, AI-powered CSV lead importer that takes messy spreadsheets from any source (Facebook Ads, Google Ads, manual exports) and intelligently maps them to structured CRM fields using Large Language Models (LLMs).
- Intelligent Field Mapping: Extracts fields even if column headers are weird or messy.
- Handling Messy Datasets: Sanitizes data, fixes formats, extracts phone numbers correctly.
- Streaming/Incremental Parsing: Uses
csv-parsereadable streams for chunked incremental processing. No Out-Of-Memory errors on huge files! - Retry Mechanism: Implements exponential backoff for failed AI batches to ensure reliable completion.
- Virtualized Tables: Both the Preview and Results tables use
@tanstack/react-virtualto smoothly render 100,000+ rows without freezing the browser. - Real-time Progress Indicators: Visual progress bars and batch-level indicators track AI processing live.
- Drag & Drop Upload: Modern
react-dropzoneintegration for seamless file dropping. - Dark Mode: Next-themes integration with CSS variables for a stunning dark mode experience.
- Docker Support: Containerized via Docker and
docker-compose. - Unit Tests: Pre-configured with Jest and React Testing Library for frontend and backend logic.
- Modern Tech Stack: Next.js 14 App Router, Express.js backend, and multiple AI providers supported (Gemini, OpenAI, Anthropic).
This project is structured as a monorepo using npm workspaces:
frontend/: Next.js 14 application providing the user interface.backend/: Express.js backend server handling file uploads, stream processing, and AI integrations.shared/: Shared Typescript types for seamless type safety across the stack.
- Node.js v20+
- npm v10+
- A Google Gemini API Key (or OpenAI/Anthropic)
Create a .env file in the backend/ directory:
PORT=3001
GEMINI_API_KEY=your_gemini_key_here
AI_PROVIDER=gemini
AI_MODEL=gemini-1.5-flashCreate a .env.local file in the frontend/ directory (optional):
NEXT_PUBLIC_API_URL=http://localhost:3001Install all dependencies from the root directory:
npm installStart both the frontend and backend simultaneously:
npm run dev- Frontend:
http://localhost:3000 - Backend:
http://localhost:3001
You can spin up the entire stack using Docker Compose:
docker-compose up --buildTo run the Jest test suites across the monorepo:
npm test- Push your code to GitHub.
- Import the project in Vercel.
- Set the Root Directory to
frontend. - Set the Build Command to
npm run build. - Add the Environment Variable:
NEXT_PUBLIC_API_URLpointing to your deployed backend. - Deploy!
- Connect your repository to Render/Railway.
- Set the Root Directory to
backend(or run from root with build commandnpm run build -w shared && npm run build -w backend). - Set the Start Command to
node dist/index.js(ornpm start -w backend). - Add all environment variables from your
.envfile. - Deploy!