Welcome Contributors
Thank you for your interest in contributing to the MilesONerd Website! This project is a personal portfolio and blog website built with HTML, Tailwind CSS, and JavaScript. We welcome contributions that improve the project while maintaining its quality and vision.This project is licensed under the Apache License 2.0. By contributing, you agree that your contributions will be licensed under the same terms.
Getting Started
Fork the Repository
Fork the MilesONerd/website repository on GitHub to your own account.
Create a Branch
Create a new branch for your contribution:Use descriptive branch names like
fix/contact-form-validation or feature/dark-mode-toggle.Make Your Changes
Make your changes following the code style guidelines below. Test your changes locally by opening the HTML files in a web browser.
Test Locally
Before submitting, test your changes:
- Open
index.htmlin your browser - Navigate through all pages (Home, About, Blog, Contact)
- Test responsiveness on different screen sizes
- Check browser console for errors
- Verify all links work correctly
Code Style Guidelines
HTML Best Practices
This project follows semantic HTML and accessibility standards:- Always include
lang="en-US"on the<html>tag - Use semantic tags:
<header>,<nav>,<section>,<footer>,<article> - Include proper meta tags for SEO and social sharing (see
index.html:3-27) - Add
altattributes to all images - Use
loading="lazy"for images below the fold - Include
widthandheightattributes on images for layout stability
Tailwind CSS Conventions
The project uses Tailwind CSS via CDN (https://cdn.tailwindcss.com/3.4.16):
- Use Tailwind utilities first before writing custom CSS
- Follow mobile-first responsive design (
sm:,md:,lg:breakpoints) - Maintain consistent color scheme:
gray-900backgrounds,blue-600/700accents - Use
transitionclass for smooth hover effects - Group related utilities logically (layout → spacing → colors → effects)
Custom CSS
Custom styles are defined in/assets/style/styles.css. Follow these conventions:
- Use kebab-case for class names (
.hero-gradient, not.heroGradient) - Define animations with
@keyframesfor reusability - Use CSS variables for consistent theming when possible
- Keep animations smooth (2s duration is standard, see
styles.css:14-18)
JavaScript Style
The project uses vanilla JavaScript with modern ES6+ syntax:- Use
constandlet, nevervar - Use arrow functions for callbacks:
posts.forEach((post, index) => {...}) - Always handle errors with try/catch blocks
- Use meaningful variable names:
postGrid,contentDiv, notx,div1 - Wait for DOM ready before manipulating elements
Commit Message Guidelines
Follow this format for clear commit history:Pull Request Process
When submitting a pull request:-
Title: Use the same format as commit messages
- Example: “Add: Newsletter subscription form”
-
Description: Include:
- Summary of changes
- Motivation/problem being solved
- Screenshots for UI changes
- Testing steps you followed
-
Checklist:
- Review: Be responsive to feedback and make requested changes promptly
- Merge: Once approved, your PR will be merged by a maintainer
Testing Your Changes
Local Testing
Since this is a static site, testing is straightforward:Open in Browser
Open the HTML files directly in your browser:
source/index.html- Home pagesource/about.html- About pagesource/blog/index.html- Blog listingsource/contact.html- Contact form
Test Responsiveness
Use browser DevTools to test different screen sizes:
- Mobile: 375px, 428px
- Tablet: 768px, 1024px
- Desktop: 1280px, 1920px
Browser Compatibility
Test your changes in:- Chrome/Edge (latest)
- Firefox (latest)
- Safari (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
Reporting Issues
Found a bug or have a suggestion? Please open an issue on GitHub:Bug Reports
Include:- Description: Clear description of the bug
- Steps to reproduce: How to recreate the issue
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Screenshots: If applicable
- Browser/OS: Your browser and operating system
- Console errors: Any errors from browser console
Feature Requests
Include:- Description: What feature you’d like to see
- Use case: Why this feature would be valuable
- Examples: Links to similar implementations (if applicable)
License Information
This project is licensed under the Apache License 2.0.Key points of the Apache 2.0 License:
- ✅ You can use, modify, and distribute this code
- ✅ You can use it for commercial purposes
- ✅ You must include the license and copyright notice
- ✅ You must state significant changes made to the code
- ❌ The license does not provide warranty or liability protection
- Your contributions will be licensed under Apache 2.0
- You retain copyright to your contributions
- You grant others the right to use your contributions under Apache 2.0
- You must have the legal right to contribute the code
Code of Conduct
Be respectful and professional:- Be welcoming to newcomers
- Accept constructive criticism gracefully
- Focus on what’s best for the project
- Show empathy towards other contributors
Questions?
If you have questions about contributing:- Open a discussion on GitHub
- Check existing issues and pull requests
- Review the documentation

