Welcome to my personal website!
- About
- Screenshots
- AI Chatbot
- Getting Started
- Environment Variables
- Customization
- Features
- Technologies Used
- Deployment
- Contributing
- Contact
ronit.io is my personal website where I share my projects, blog posts, and more. It's built using Next.js and styled with Tailwind CSS. The site is designed to be fast, accessible, and easy to maintain.
The website will feature an AI-powered chatbot (coming soon) that can answer questions about my professional background and experience, making it easy for visitors to learn more about my work and projects interactively.
The website will feature an AI-powered FAQ chatbot that can answer questions about Ronit's professional background, projects, and experience.
Note: The chatbot is currently disabled and shows "Coming Soon" on hover. It will be enabled once the site is deployed to a platform that supports server-side API routes (like Vercel or Netlify) instead of GitHub Pages.
- π€ AI-Powered: Will use Google Gemini API for intelligent responses
- π‘οΈ Anti-Abuse Protection: reCAPTCHA verification to prevent spam and misuse
- π± Responsive Design: Will work seamlessly on desktop, tablet, and mobile
- π¨ Neobrutalism Theme: Clean, minimal design matching the site aesthetic
- β‘ Quick Actions: Pre-built suggestions for common questions
- π Session-Based: Verify once per session for smooth user experience
- Click the "Ask Ronit AI" button (currently shows "Coming Soon")
- Complete reCAPTCHA verification (first-time only)
- Chat with the AI about Ronit's experience, projects, and professional background
- Get instant, contextual responses with suggested follow-up questions
The chatbot will operate in two modes:
- With Gemini API: Full AI capabilities with natural language understanding
- Without API: Falls back to curated FAQ responses for basic questions
- reCAPTCHA verification prevents automated abuse and spam
- No conversation data will be stored or logged
- API calls will be rate-limited and monitored
- All interactions will be session-based (no persistent data)
To run the website locally, follow these steps:
- Clone the repository:
git clone https://github.com/ronitjadhav/ronit.io.git
cd ronit.io- Install dependencies:
npm install
# or
yarn install
# or
pnpm install- Set up environment variables:
Copy the example environment file and add your API keys:
cp .env.example .envThen edit .env with your actual values. See Environment Variables section below for details.
- Run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev- Open http://localhost:3000 in your browser to see the website.
This project requires several environment variables to function properly. Copy .env.example to .env and fill in your values:
cp .env.example .env| Variable | Description |
|---|---|
NEXT_PUBLIC_GOOGLE_RECAPTCHA_SITE_KEY |
reCAPTCHA v2 site key ("I'm not a robot" checkbox) |
- Get your keys at: Google reCAPTCHA Admin
- Choose reCAPTCHA v2 β "I'm not a robot" Checkbox
- Add
localhostto your allowed domains for local development
| Variable | Description |
|---|---|
NEXT_PUBLIC_EMAILJS_SERVICE_ID |
Your EmailJS service ID (e.g. service_xxxxxxx) |
NEXT_PUBLIC_EMAILJS_TEMPLATE_ID |
Your EmailJS email template ID (e.g. template_xxxxxxx) |
NEXT_PUBLIC_EMAILJS_PUBLIC_KEY |
Your EmailJS account public key |
- Sign up at: EmailJS
- Service ID: Create an email service (Gmail, Outlook, etc.) β copy the Service ID
- Template ID: Create an email template with variables
{{from_name}},{{email}},{{message}}β copy the Template ID - Public Key: Go to Account β General β copy your Public Key
| Variable | Description |
|---|---|
NEXT_PUBLIC_MAPBOX_ACCESS_TOKEN |
Mapbox access token for map rendering |
NEXT_PUBLIC_MAPBOX_LIGHT_STYLE_URL |
Mapbox style URL for light theme (e.g. mapbox://styles/mapbox/light-v11) |
NEXT_PUBLIC_MAPBOX_DARK_STYLE_URL |
Mapbox style URL for dark theme (e.g. mapbox://styles/mapbox/dark-v11) |
- Get your access token at: Mapbox Access Tokens
- Create custom map styles at: Mapbox Studio or use Mapbox defaults
| Variable | Description |
|---|---|
GEMINI_API_KEY |
Google Gemini API key (server-side only, not exposed to client) |
- Get your API key at: Google AI Studio
- Note: This is a server-side variable β it will NOT be exposed to the browser
- Chatbot is currently disabled; will be enabled after deployment to Vercel/Netlify
| Variable | Description |
|---|---|
ANALYZE |
Set to true to enable webpack bundle analysis during production builds |
- Copy the example file:
cp .env.example .env - Fill in your API keys and tokens
- Restart the development server (
npm run dev)
- Chatbot not working: Currently disabled (Coming Soon) - will be enabled after deployment to Vercel/Netlify
- Contact form failing: Verify
NEXT_PUBLIC_GOOGLE_RECAPTCHA_SITE_KEYand EmailJS credentials - Maps not loading: Ensure
NEXT_PUBLIC_MAPBOX_ACCESS_TOKENis valid - reCAPTCHA issues: Confirm domain is registered in Google reCAPTCHA admin
This project is designed to be easily forked and customized as your own portfolio. All personal data (name, bio, projects, skills, timeline, SEO, etc.) is centralized in a single configuration file:
src/data/site-config.ts
To make this portfolio your own:
- Fork this repository
- Edit
src/data/site-config.tswith your personal data - Replace images in
src/media/with your own - Update
.envwith your API keys - Deploy!
For a detailed step-by-step guide, see CUSTOMIZATION.md.
- π€ AI Chatbot (Coming Soon): Interactive FAQ assistant powered by Google Gemini API with anti-abuse protection
- π§ Contact Form: Secure contact form with reCAPTCHA verification and EmailJS integration
- πΊοΈ Interactive Maps: Custom Mapbox integration with light/dark theme support
- π± Responsive Design: Optimized for desktop, tablet, and mobile devices
- π¨ Neobrutalism Theme: Clean, minimal design with bold shadows and borders
- π Dark Mode: Full dark/light theme support with system preference detection
- β‘ Performance: Built with Next.js 15 and optimized for speed
- βΏ Accessibility: WCAG compliant with proper ARIA labels and keyboard navigation
- π SEO Optimized: Built-in SEO best practices with meta tags and sitemaps
- π Projects Showcase: Detailed project portfolio with descriptions and live links
- Next.js 15: React framework with App Router and Turbopack for fast development
- TypeScript: Strongly typed JavaScript for better development experience
- Tailwind CSS: Utility-first CSS framework for rapid UI development
- Google Gemini API: Advanced AI for intelligent chatbot responses
- Mapbox: Interactive maps with custom styling
- EmailJS: Client-side email sending for contact forms
- Google reCAPTCHA: Bot protection and spam prevention
- Lucide React: Beautiful, customizable icon library
- Next Themes: Dark/light theme management
- React Google reCAPTCHA: reCAPTCHA integration for React
This site can be easily deployed to platforms like Vercel or Netlify.
When deploying, make sure to add all environment variables from .env.example to your deployment platform:
- Vercel: Project Settings β Environment Variables
- Netlify: Site Settings β Environment Variables
npm run build
npm start- All
NEXT_PUBLIC_*variables are exposed to the client-side - Keep server-side variables (like
GEMINI_API_KEY) secure and never expose them - Test all features (chatbot, contact form, maps) after deployment
- Ensure your domain is registered with Google reCAPTCHA for production
Contributions are welcome! If you have suggestions, bug reports, or want to add features, please open an issue or submit a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/YourFeature) - Open a pull request
You can reach me through the Get in Touch button by visiting ronit.io.
Thank you for visiting my website!