Built with the Next.js 14.0 App Router, tRPC, TypeScript, Prisma & Tailwind
- 🛠️ Complete SaaS Built From Scratch
- 💻 Beautiful Landing Page & Pricing Page Included ( coming soon )
- 💳 Free & Pro Plan Using polar.sh ( coming soon )
- 📄 A Beautiful And Highly Functional PDF Viewer
- 🔄 Streaming API Responses in Real-Time using Vercel Ai sdk
- 🔒 Authentication Using clerk
- 🎨 Clean, Modern UI Using 'shadcn-ui'
- 🚀 Optimistic UI Updates for a Great UX
- 📤 Intuitive Drag n’ Drop Uploads
- ✨ Instant Loading States
- 🧠 Vercel Ai sdk
- 🌲 Pinecone as our Vector Storage
- 📊 Prisma as our ORM
- 🔤 100% written in TypeScript
- 🎁 ...much more
Follow these steps to set up and run the project locally:
git clone https://github.com/Abdullah-dev0/TextTalk.git
cd texttalkMake sure you have all the dependencies installed by running:
npm install-
Duplicate the
.env.examplefile and rename it to.env. -
Fill in the required environment variables in the
.envfile:# Clerk for secure, fast authentication - https://clerk.dev NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY= CLERK_SECRET_KEY= NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up NEXT_PUBLIC_CLERK_SIGN_IN_FORCE_REDIRECT_URL=/dashboard NEXT_PUBLIC_CLERK_SIGN_UP_FORCE_REDIRECT_URL=/dashboard WEBHOOK_SECRET= # Database for storing everything except PDF files - (Provider up to you, I like PlanetScale) DATABASE_URL= # Uploadthing for storing PDF files - https://uploadthing.com/dashboard UPLOADTHING_SECRET= UPLOADTHING_APP_ID= UPLOADTHING_TOKEN= # Mistral API for answering PDF questions - https://console.mistral.ai/ MISTRAL_API_KEY= # Pinecone for vector storage - https://www.pinecone.io/ PINECONE_API_KEY= # Upstash Redis (optional) - https://upstash.com/ UPSTASH_REDIS_REST_URL= UPSTASH_REDIS_REST_TOKEN= # Environment NODE_ENV=developmentRequired Services:
- Clerk - Authentication (Get started)
- Database - MongoDb
- Uploadthing - PDF file storage (Get started)
- Mistral API - AI for answering PDF questions (Get API key)
- Pinecone - Vector database for embeddings (Get started)
- Upstash Redis - For caching and rate limiting
Once the environment variables are configured, start the server:
npm run devOpen your browser and navigate to http://localhost:3000 to view the application.