Welcome to my personal website!
- About
- Screenshots
- 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.
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 |
|---|---|
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)
- 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.
- 📧 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
- 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 any server-side variables you add secure and never expose them
- Test all features (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!


