Texity AI is a full-stack writing workspace with real-time chat, AI-assisted writing tools, file analysis, web search, authentication, and subscription billing.
Live portfolio: raimhaider.vercel.app
LinkedIn: Rai Muhammad Haider
Contact: raimuhammadalihaider@gmail.com
- Email and password authentication with OTP login and password reset
- Real-time Stream Chat conversations with a Groq-powered AI assistant
- AI writing templates, writing analysis, and conversation summaries
- Document upload and analysis for PDF, DOCX, and TXT files
- DuckDuckGo web search from the writing workflow
- User preferences, theme support, and responsive React UI
- Stripe-backed billing endpoints and Swagger documentation for the auth API
| Directory | Purpose | Default port |
|---|---|---|
frontend |
React, Vite, Tailwind CSS, and Stream Chat client | 5173 |
Backend |
Express service for Stream Chat tokens and Groq AI features | 33333 |
project-name |
NestJS API for authentication, MongoDB, billing, and API docs | 3000 |
- React 18, TypeScript, Vite, Tailwind CSS, Radix UI
- Node.js, Express, NestJS, TypeScript
- Stream Chat, Groq, MongoDB/Mongoose, Stripe
- JWT, Nodemailer, Swagger, Jest
- Node.js 20 or newer
- npm
- A MongoDB instance
- Stream Chat API credentials
- A Groq API key
Optional integrations include Stripe and SMTP credentials for billing and email delivery.
git clone https://github.com/RaiMuhammadHaider/Texity.git
cd Texity
cd Backend
npm install
cd ../frontend
npm install
cd ../project-name
npm installCopy each example file to .env in its corresponding directory. Never commit .env files or real credentials.
Backend/.env
STREAM_API_KEY=your_stream_api_key
STREAM_API_SECRET=your_stream_api_secret
GROQ_API_KEY=your_groq_api_key
PORT=33333frontend/.env
VITE_STREAM_API_KEY=your_stream_api_key
VITE_AUTH_URL=http://localhost:3000
VITE_AI_URL=http://localhost:33333
VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_keyproject-name/.env
mongoURL=mongodb://localhost:27017/texity
JWT_SECRET=replace_with_a_long_random_value
PORT=3000
FRONTEND_URL=http://localhost:5173
EMAIL_USER=your_smtp_email
EMAIL_PASS=your_smtp_password
STRIPE_SECRET_KEY=your_stripe_secret_keyOpen three terminals from the repository root:
cd Backend
npm run devcd frontend
npm run devcd project-name
npm run start:devOpen the frontend at http://localhost:5173. Swagger documentation for the NestJS API is available at http://localhost:3000/api.
| Service | Command | Description |
|---|---|---|
| Frontend | npm run dev |
Start the Vite development server |
| Frontend | npm run lint |
Run ESLint |
| Frontend | npm run build |
Create a production build |
| AI service | npm run dev |
Start the Express service with reload |
| AI service | npm run start |
Compile and run the Express service |
| API | npm run start:dev |
Start the NestJS API with reload |
| API | npm test |
Run unit tests |
| API | npm run test:e2e |
Run end-to-end tests |
Run each command from the matching service directory.
Contributions are welcome. Please read CONTRIBUTING.md before opening an issue or pull request.
For security issues, do not open a public issue or commit credentials. Email raimuhammadalihaider@gmail.com instead.
Texity AI is available under the MIT License.
Built by Rai Muhammad Haider. View more work at raimhaider.vercel.app.