π₯ Youtube - FFP CHAT - Free Forever Chat
A privacy-first AI chatbot that lets you chat with different personas using your own Gemini API key. Experience conversations with tech educators, entrepreneurs, and industry experts - all while keeping your data completely local.
- Pre-built Personas: Chat with tech educators, entrepreneurs, developers, and industry experts
- Category Filtering: Easily find personas by expertise (Web Dev, AI, DevOps, etc.)
- Smart Search: Find personas by name or skills
- Tone Selection: Choose from Default, Funny, Advice, or Educational conversation styles
- No Database: All data stays on your device
- Local Storage: Chat history saved locally in your browser
- Your API Key: Use your own Gemini API key for complete control
- No Tracking: Zero data collection or external tracking
- Conversation Context: AI remembers previous messages for natural flow
- Image Support (WIP): Upload and discuss images in your conversations
- Message Reactions: Like/dislike responses for better interaction
- Copy & Regenerate: Copy responses or regenerate better answers
- Chat History: Access all your previous conversations
- Fully Responsive: Perfect experience on desktop, tablet, and mobile
- Dark Theme: Easy on the eyes with a sleek dark interface
- Real-time Feedback: Loading states, toast notifications, and smooth animations
- Keyboard Shortcuts: Press Enter to send, Shift+Enter for new lines
- Node.js 18+ installed on your system
- A Google Gemini API key (Get it free here)
-
Clone the repository
git clone https://github.com/BCAPATHSHALA/PersonaAI cd PersonaAI
-
Install dependencies
npm install # or yarn install # or pnpm install
Note: you can also run
npm install
oryarn install
to install the app but first remove thepnpm-local.yaml
file. -
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://localhost:3000
- Browse through 2 available personas (will be expanded in the future)
- Filter by category (Web Dev, AI, DevOps, etc.)
- Search by name or expertise
- Click on your preferred persona
- Default: Professional and informative
- Funny: Light-hearted with humor
- Advice: Mentoring and guidance-focused
- Educational: Detailed explanations and learning
- Get your free Gemini API key from Google AI Studio
- Enter the key in the secure input field
- Your key is stored locally and never sent to our servers
- Use conversation starters or type your own message
- Upload images for visual discussions (coming soon)
- React to responses with like/dislike
- Regenerate responses if needed
PersonaAI/
βββ app/ # Next.js app directory
β βββ api/chat/ # Chat API endpoint
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ components/ # React components
β βββ ui/ # Reusable UI components
β βββ chat-interface.tsx # Main chat interface
β βββ persona-setup.tsx # Persona selection
β βββ ... # Other components
βββ hooks/ # Custom hooks
β βββ redux.ts # Redux hooks
β βββ use-mobile.ts # Mobile detection hook
β βββ use-toast.ts # Toast notification hook
βββ lib/ # Utilities and configurations
β βββ store/ # Redux store and slices
β βββ services/ # API services
β βββ data/ # Static data (personas)
β βββ utils/ # Utility functions
βββ types/ # TypeScript type definitions
βββ public/ # Static assets
βββ .gitignore # Ignored files
βββ components.json # Shadcn/ui component config
βββ next-env.d.ts # TypeScript type definitions
βββ package.json # Project metadata
βββ pnpm-lock.yaml # Pnpm lock file (if exists for Pnpm)
βββ postcss.config.js # PostCSS configuration
βββ README.md # Project documentation
βββ tsconfig.json # TypeScript configuration
- Framework: Next.js 14 with App Router
- Language: TypeScript for type safety
- Styling: Tailwind CSS + shadcn/ui components
- State Management: Redux Toolkit with localStorage persistence
- AI Integration: Google Gemini API
- Forms: React Hook Form with Zod validation
- Icons: Lucide React
- Deployment: Vercel (recommended)
- Primary: Orange (#ef6a36) - Energy and creativity
- Background: Dark theme for reduced eye strain
- Accents: Subtle grays and whites for contrast
- Interactive: Hover states and smooth transitions
- Headings: Clean, modern sans-serif
- Body: Readable font with proper line spacing
- Code: Monospace for technical content
No environment variables needed! The app uses your locally stored API key.
- Add New Personas: Edit
lib/data/personas.ts
- Modify Themes: Update Tailwind classes in components
- Change Tones: Modify tone definitions in persona setup
- Code Splitting: Lazy loading for optimal performance
- Memoization: React.useMemo for expensive computations
- Optimized Images: Next.js Image component
- Bundle Analysis: Built-in optimization
We welcome contributions! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Follow TypeScript best practices
- Use meaningful commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
Manoj Kumar
- GitHub: @bcapathshla
- Project: FFP CHAT
- Google Gemini: For providing the AI capabilities
- Vercel: For hosting and deployment platform
- shadcn/ui: For beautiful UI components
- Next.js Team: For the amazing framework
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed information
- Join our community discussions
Made with β€οΈ by Manoj Kumar
β Star this repo if you find it helpful!