Nutshell is a modern, full-stack MERN web application that leverages the power of Groq's gpt-oss-120b AI model to instantly generate concise, high-quality summaries of long text.
- AI Summarization: Harnesses the open-weight 120B parameter model via Groq's LPU infrastructure for blazing-fast inference.
- Multiple Summary Types: Generate "short", "detailed", or "bulleted" summaries depending on your needs.
- User Authentication: Secure JWT-based registration and login system.
- Summary History: Automatically saves your generated summaries to MongoDB, accessible anytime via a paginated history dashboard.
- Modern UI/UX: Built with React 19 and Tailwind CSS, featuring a sleek, brutalist-inspired design and responsive layouts.
- Dark Mode Support: Fully integrated dark and light themes.
Frontend:
- React 19 (Vite)
- Tailwind CSS
- Axios
- React Router DOM
- Lucide React (Icons)
Backend:
- Node.js & Express
- MongoDB & Mongoose
- JSON Web Tokens (JWT)
- Groq SDK (
openai/gpt-oss-120b) - Security Middleware (Helmet, CORS, Express-Rate-Limit)
nutshell-text-summarizer/
├── client/ # React frontend (Vite)
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Route components (Home, Login, etc.)
│ │ ├── App.jsx # Main application entry
│ │ └── index.css # Tailwind entry and global styles
│ └── package.json
├── server/ # Express backend
│ ├── config/ # DB connection logic
│ ├── controllers/ # Route handlers (Auth, Summary)
│ ├── middlewares/ # JWT auth, error handling, etc.
│ ├── models/ # Mongoose schemas
│ ├── routes/ # Express API routes
│ ├── services/ # Groq API integration
│ ├── server.js # Server entry point
│ └── package.json
└── README.md
- Node.js (v18+)
- MongoDB Atlas account (or local MongoDB)
- Groq API Key (Available at console.groq.com)
git clone https://github.com/vikasarous/nutshell.git
cd nutshellYou need to install dependencies for both the frontend and backend.
# Install backend dependencies
cd server
npm install
# Install frontend dependencies
cd ../client
npm installBackend (server/.env)
Create a .env file in the server directory:
PORT=5001
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secure_random_string
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=openai/gpt-oss-120b
CLIENT_URL=http://localhost:5173Frontend (client/.env)
Create a .env file in the client directory:
VITE_API_URL=http://localhost:5001Run the frontend and backend simultaneously in separate terminal windows.
Start Backend:
cd server
npm run devStart Frontend:
cd client
npm run devThe application will be available at http://localhost:5173.
Before deploying to production (e.g., Vercel, Render, Heroku):
- Environment Variables: Ensure all environment variables are securely configured in your hosting provider's dashboard.
- CORS: Update
CLIENT_URLin the backend to match your live frontend domain. - Frontend API URL: Update
VITE_API_URLin the frontend build step to point to your live backend domain. - Token Security: (Recommended V2) Migrate
localStorageJWT handling toHttpOnlycookies.
(Replace these with actual screenshots of your application)

- HttpOnly Cookies for secure JWT storage.
- Request/Response compression for large text payloads.
- Graceful server shutdown handling.
- Comprehensive unit and integration testing.
- Email verification and password resets.
This project is open-source and available under the MIT License.
