A modern, responsive static website for showcasing an author's portfolio, books, and blog posts. Built with vanilla HTML, CSS, and JavaScript for optimal performance and easy deployment.
- Responsive Design: Mobile-first approach that works perfectly on all devices
- Virtual Bookshelf: Interactive grid showcasing published books with Amazon integration
- Blog System: Clean blog layout ready for content and sponsored articles
- Dark/Light Theme: Toggle between themes with preference persistence
- SEO Optimized: Proper meta tags, semantic HTML, and sitemap
- PWA Ready: Progressive Web App features for enhanced user experience
- Contact Forms: Functional contact forms with validation
- Social Media Integration: Links and sharing capabilities
- Fast Loading: Optimized for Core Web Vitals and performance
βββ index.html # Homepage
βββ books.html # Virtual bookshelf page
βββ blog.html # Blog listing page
βββ about.html # Author biography page
βββ contact.html # Contact page with forms
βββ css/
β βββ main.css # Main stylesheet (imports all others)
β βββ variables.css # CSS custom properties
β βββ base.css # Reset and base styles
β βββ components.css # Component styles
βββ js/
β βββ main.js # Main application logic
β βββ theme.js # Dark/light theme functionality
β βββ navigation.js # Navigation and mobile menu
β βββ pwa.js # Progressive Web App features
βββ blog/
β βββ character-development.html # Sample blog post
βββ assets/ # Images, icons, and media files
βββ manifest.json # PWA manifest
βββ sw.js # Service worker for offline functionality
βββ robots.txt # Search engine directives
βββ sitemap.xml # Site structure for search engines
βββ package.json # Project configuration
- Clone or download this repository
- Navigate to the project directory
- Start a local server:
# Using Python (if installed) npm run start # or python -m http.server 8000 # Using Node.js live-server (if installed) npx live-server # Using PHP (if installed) php -S localhost:8000
- Open your browser to
http://localhost:8000
-
Replace placeholder content in all HTML files:
- Update "Author Name" with the actual author name
- Replace placeholder images with actual photos and book covers
- Update social media links
- Customize color scheme in
css/variables.css
-
Add real book data in
books.html:- Replace placeholder book covers
- Update book descriptions, prices, and Amazon links
- Add more books as needed
-
Update contact information in
contact.html:- Replace email addresses with real ones
- Set up form handling (see Deployment section)
-
Create blog content:
- Use
blog/character-development.htmlas a template - Add new blog posts to the
blog/directory - Update the blog listing in
blog.html
- Use
- Create a Render account at render.com
- Connect your repository (GitHub, GitLab, etc.)
- Create a new Static Site service
- Configure the deployment:
- Build Command: Leave empty (no build process needed)
- Publish Directory:
/(root directory) - Auto Deploy: Enable for automatic updates
- Custom Domain (optional): Add your domain in the settings
- Create a Netlify account at netlify.com
- Connect your repository or drag and drop the project folder
- Deploy settings:
- Build Command: Leave empty
- Publish Directory:
/
- Configure custom domain if needed
- Create a Vercel account at vercel.com
- Import your repository
- Deploy with default settings (no configuration needed)
- Enable GitHub Pages in your repository settings
- Set source to deploy from root directory
- Access your site at
https://yourusername.github.io/repository-name
This website works with any static hosting service:
- AWS S3 + CloudFront
- Firebase Hosting
- Surge.sh
- Cloudflare Pages
The contact forms are currently set up for demonstration. To make them functional:
<form name="contact" method="POST" data-netlify="true">- Sign up at formspree.io
- Replace form action with your Formspree endpoint:
<form action="https://formspree.io/f/your-form-id" method="POST">- Sign up at emailjs.com
- Add EmailJS JavaScript library
- Configure email templates and service
Edit css/variables.css to customize the color scheme:
:root {
--primary-color: #2c3e50; /* Main text color */
--secondary-color: #3498db; /* Accent color */
--accent-color: #e74c3c; /* Highlight color */
/* ... more variables */
}The website uses Google Fonts (Inter + Playfair Display). To change fonts:
- Update the Google Fonts import in
css/main.css - Modify font family variables in
css/variables.css
Adjust spacing and layout variables in css/variables.css:
--spacing-*: Controls spacing throughout the site--container-max-width: Maximum content width--border-radius-*: Rounded corner sizes
- Create new HTML file using existing pages as templates
- Update navigation in all existing pages
- Add to sitemap.xml for SEO
- Update PWA cache in
sw.jsif using offline features
The website includes PWA capabilities:
- Offline browsing with service worker caching
- Install prompt for mobile/desktop installation
- App-like experience when installed
- Fast loading with intelligent caching
To test PWA features:
- Deploy to HTTPS (required for PWA)
- Open in Chrome/Edge
- Look for install prompt
- Test offline functionality
- Semantic HTML5 structure
- Open Graph meta tags for social sharing
- Twitter Card meta tags
- Structured data ready (can be extended)
- Sitemap.xml for search engines
- Robots.txt for crawler directives
- Fast loading for better rankings
- Use Google PageSpeed Insights
- Test Core Web Vitals
- Check mobile-friendliness
- Chrome, Firefox, Safari, Edge
- Mobile browsers (iOS Safari, Chrome Mobile)
- Screen reader compatibility
- Keyboard navigation
- Color contrast compliance
- Modern browsers: Chrome, Firefox, Safari, Edge (latest 2 versions)
- Mobile browsers: iOS Safari, Chrome Mobile, Samsung Internet
- Graceful degradation for older browsers
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source and available under the MIT License.
If you encounter issues:
- Check the browser console for errors
- Verify all files are uploaded correctly
- Ensure HTTPS is enabled for PWA features
- Test on multiple devices and browsers
For additional help, please open an issue in the repository.
Built with β€οΈ for authors who want to showcase their work beautifully online.