Welcome! This guide will help you customize and deploy your personal website.
your-website/
βββ index.html # Main HTML file (structure and content)
βββ styles.css # CSS stylesheet (design and layout)
βββ script.js # JavaScript file (interactivity)
βββ images/ # Folder for your images (create this)
β βββ profile.jpg # Your profile photo
β βββ project1.jpg # Project images
β βββ project2.jpg
β βββ project3.jpg
βββ README.md # This documentation file
Open index.html and search for the following placeholders. Replace them with your information:
| Placeholder | What to Replace | Where to Find |
|---|---|---|
[Your Name] |
Your full name | Throughout the file |
[Your Profession] |
Your job title/field | Hero section |
[Your Institution/Company] |
Where you work/study | Hero and contact sections |
your.email@example.com |
Your actual email | Multiple locations |
yourusername |
Your GitHub/LinkedIn username | Social links |
Tip: Use Find & Replace (Ctrl+F or Cmd+F) to update all instances at once!
Open styles.css and scroll to the CSS VARIABLES section at the top. Change these values:
:root {
/* Change these colors to match your brand */
--primary-color: #2c5f7c; /* Main brand color */
--secondary-color: #e67e22; /* Accent color */
/* Change fonts if you want different typography */
--font-primary: -apple-system, BlinkMacSystemFont, 'Segoe UI', ...;
--font-heading: 'Georgia', 'Times New Roman', serif;
}Color Picker Tools:
- Coolors.co - Generate color palettes
- Adobe Color - Color wheel and themes
Font Resources:
- Google Fonts - Free web fonts
- To use a Google Font, add this to your
<head>inindex.html:Then update the CSS variable:<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
--font-primary: 'Roboto', sans-serif;
- Create an
images/folder in your website directory - Add your images with these recommended names:
profile.jpg- Your professional headshot (square, at least 500x500px)project1.jpg,project2.jpg, etc. - Project screenshots (1200x800px recommended)
Image Optimization Tips:
- Use JPG for photos, PNG for graphics with transparency
- Compress images using TinyPNG or ImageOptim
- Keep file sizes under 500KB for faster loading
Find this section in index.html:
<section id="about" class="section about-section">
<div class="about-text">
<p>
Write a paragraph or two about yourself...
</p>
</div>
</section>Replace the placeholder text with your biography. Include:
- Your background and education
- Current position and institution
- Research interests or professional focus
- What motivates your work
Each project uses this structure:
<div class="project-card">
<div class="project-image">
<img src="images/project1.jpg" alt="Project 1">
</div>
<div class="project-content">
<h3 class="project-title">Project Title 1</h3>
<p class="project-description">
Brief description of your project...
</p>
<div class="project-tags">
<span class="tag">Tag1</span>
<span class="tag">Tag2</span>
</div>
<a href="#" class="project-link">Learn More β</a>
</div>
</div>To add a new project:
- Copy the entire
<div class="project-card">...</div>block - Paste it below the existing projects
- Update the image, title, description, and tags
- Change the link to point to your project page or GitHub repo
To remove a project:
- Delete the entire
<div class="project-card">...</div>block
Each publication follows this format:
<div class="publication-item">
<div class="publication-year">2024</div>
<div class="publication-content">
<h3 class="publication-title">
Title of Your Publication
</h3>
<p class="publication-authors">
<strong>Your Name</strong>, Co-Author 1, Co-Author 2
</p>
<p class="publication-venue">
<em>Journal/Conference Name</em>, Volume(Issue), Pages
</p>
<div class="publication-links">
<a href="#" class="pub-link">PDF</a>
<a href="#" class="pub-link">DOI</a>
<a href="#" class="pub-link">Code</a>
</div>
</div>
</div>Tips:
- Use
<strong>Your Name</strong>to bold your name in the author list - Link to actual PDFs, DOI pages, and GitHub repositories
- Add or remove link buttons as needed
- Sort by year (most recent first)
To add or remove sections from the navigation:
- Find the
<nav>section inindex.html - Add/remove menu items:
<li class="nav-item"><a href="#newsection" class="nav-link">New Section</a></li>- Create a matching section in the HTML:
<section id="newsection" class="section">
<div class="container">
<h2 class="section-title">New Section</h2>
<!-- Your content here -->
</div>
</section>The contact form needs to be connected to a service to actually send emails. Here are your options:
- Go to Formspree.io and create a free account
- Create a new form and get your form endpoint (e.g.,
https://formspree.io/f/xvgpqazn) - Open
script.jsand find the contact form section - Replace the demo code with:
fetch('https://formspree.io/f/YOUR_FORM_ID', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(formData)
})
.then(response => response.json())
.then(data => {
alert('Thank you! Your message has been sent.');
contactForm.reset();
})
.catch(error => {
console.error('Error:', error);
alert('Sorry, there was an error. Please try emailing directly.');
});- Sign up at EmailJS.com
- Follow their setup guide
- Use their JavaScript SDK in your
script.js
- Add
netlifyattribute to your form inindex.html:
<form id="contactForm" name="contact" method="POST" data-netlify="true">- That's it! Netlify handles the rest automatically.
If you don't want a form service, you can use a simple email link:
const mailtoLink = `mailto:your.email@example.com?subject=Message from ${formData.name}&body=${formData.message}`;
window.location.href = mailtoLink;- Create a GitHub account at github.com
- Create a new repository named
yourusername.github.io - Upload your website files to the repository
- Your site will be live at
https://yourusername.github.io
Step-by-step:
# In your website folder
git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/yourusername/yourusername.github.io.git
git push -u origin main- Go to netlify.com
- Sign up with GitHub
- Click "Add new site" β "Deploy manually"
- Drag and drop your website folder
- Your site is live! (You'll get a URL like
random-name.netlify.app)
Custom Domain:
- Netlify lets you change to
yourname.netlify.appfor free - You can also connect a custom domain you purchase
- Go to vercel.com
- Sign up with GitHub
- Import your repository
- Deploy!
The website uses CSS Grid and Flexbox for layout. Key sections to modify:
About Section (2-column layout):
.about-content {
display: grid;
grid-template-columns: 1fr 2fr; /* Change ratio here */
gap: 3rem;
}Projects Grid:
.projects-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
/* Change 320px to adjust card minimum width */
}The website includes fade-in animations. To add more:
/* In styles.css */
.your-element {
animation: fadeInUp 0.8s ease;
}- Create a new section in
index.html:
<section id="blog" class="section">
<div class="container">
<h2 class="section-title">Blog</h2>
<!-- Add blog posts here -->
</div>
</section>- Add styling in
styles.css:
.blog-post {
margin-bottom: 2rem;
padding-bottom: 2rem;
border-bottom: 1px solid var(--border-color);
}- Add to navigation menu
The site is already responsive! Test it by:
- Opening your browser's Developer Tools (F12)
- Clicking the device icon to toggle device mode
- Trying different screen sizes
To adjust mobile breakpoints, modify in styles.css:
@media (max-width: 768px) {
/* Mobile styles */
}- Check file path: Make sure
images/profile.jpgmatches your actual filename - Case sensitivity: Use exact filename case (Profile.jpg β profile.jpg)
- File format: Ensure images are .jpg, .png, or .webp
- Check that section IDs match navigation links
- Example:
<a href="#about">should point to<section id="about">
- Clear your browser cache (Ctrl+Shift+R or Cmd+Shift+R)
- Check that
styles.cssis in the same folder asindex.html - Verify the
<link>tag in the HTML<head>
- Make sure you've configured a form service (see Contact Form section)
- Check browser console for errors (F12 β Console tab)
- MDN Web Docs - Comprehensive web development documentation
- freeCodeCamp - Free coding courses
- CSS-Tricks - CSS tutorials and guides
- Heroicons - Free SVG icons
- Font Awesome - Icon library
- Feather Icons - Simple, clean icons
- Replace all
[Your Name]placeholders - Update email addresses and social media links
- Add your profile photo to
images/profile.jpg - Write your About section
- Add at least 3 projects
- Add your publications (if applicable)
- Customize colors in CSS variables
- Test on mobile (use browser dev tools)
- Set up contact form service
- Check all links work
- Optimize and compress images
- Test in different browsers (Chrome, Firefox, Safari)
- Add a favicon (optional but nice!)
- Keep it simple: Don't add too much content at once. Start with the essentials.
- Update regularly: Add new projects and publications as they happen.
- Test thoroughly: Check your site on different devices and browsers.
- Use high-quality images: Professional photos make a big difference.
- Keep loading fast: Compress images and minimize unnecessary scripts.
- Get feedback: Ask friends or colleagues to review your site.
- SEO basics: Include descriptive alt text for images and a good meta description.
If you run into issues:
- Check the troubleshooting section above
- Search for your error message on Stack Overflow
- Review the browser console for error messages (F12 β Console)
- Validate your HTML at validator.w3.org
- Validate your CSS at jigsaw.w3.org/css-validator/
Your website is ready to customize and deploy. Remember, your personal website is a living document β update it regularly as you complete new projects and achieve new milestones.
Good luck, and happy coding! π
Last Updated: January 2026 Version: 1.0