Skip to content

pranaycv/pranaycv.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Personal Blog Website

A modern, elegant personal blog website with animated backgrounds and a calming reading experience.

Features

  • 🎨 Modern, clean design with animated leaf background
  • πŸ“± Fully responsive (mobile, tablet, desktop)
  • 🎯 6 blog categories: Technology, Science, Philosophy, Poetry, Photo Story, Politics
  • πŸ“– Focused reading experience with progress indicator
  • πŸš€ Fast loading, no dependencies
  • πŸ” SEO-friendly structure
  • πŸ’° Free to host and maintain

File Structure

blog-website/
β”œβ”€β”€ index.html          # Home page with category buttons
β”œβ”€β”€ category.html       # Lists all blogs in a category
β”œβ”€β”€ blog.html          # Individual blog post reader
β”œβ”€β”€ blogs-data.js      # Your blog posts database
└── README.md          # This file

How to Add New Blog Posts

  1. Open blogs-data.js
  2. Add a new blog object to the blogsData array:
{
    id: 'unique-id-here',           // Unique identifier (e.g., 'tech-003')
    category: 'technology',          // One of: technology, science, philosophy, poetry, photo-story, politics
    title: 'Your Blog Title',
    punchline: 'A compelling one-liner that hooks readers',
    date: 'January 11, 2025',
    content: `
        <p>Your blog content here in HTML format.</p>
        
        <h2>Section Heading</h2>
        <p>More content...</p>
        
        <blockquote>"A memorable quote"</blockquote>
        
        <p>Final thoughts...</p>
    `
}

Content Formatting Tips

  • Use <p> tags for paragraphs
  • Use <h2> for main section headings
  • Use <h3> for subsection headings
  • Use <blockquote> for quotes
  • Use <ul> and <li> for bullet lists
  • Use <code> for inline code
  • Use <em> for emphasis/italics
  • Use <strong> for bold text

Free Hosting Options

Option 1: GitHub Pages (Recommended)

Pros: Free, reliable, automatic HTTPS, custom domain support, version control Cons: Public repository (your code is visible)

Steps:

  1. Create a GitHub account at https://github.com
  2. Create a new repository named username.github.io (replace username with your GitHub username)
  3. Upload all your files (index.html, category.html, blog.html, blogs-data.js)
  4. Go to Settings β†’ Pages
  5. Select "Deploy from a branch" and choose "main" branch
  6. Your site will be live at https://username.github.io

Custom Domain (Optional):

  • Buy a domain from Namecheap, Google Domains, etc. (~$10-15/year)
  • Add a CNAME file with your domain name
  • Configure DNS settings in your domain registrar

Option 2: Netlify

Pros: Drag-and-drop deployment, automatic HTTPS, fast CDN, continuous deployment Cons: Limited build minutes on free plan (not relevant for static sites)

Steps:

  1. Sign up at https://netlify.com
  2. Drag and drop your folder onto Netlify
  3. Your site goes live instantly at a random URL
  4. Optionally change the URL or add a custom domain

Option 3: Vercel

Pros: Similar to Netlify, excellent performance, easy deployment Cons: None significant for this use case

Steps:

  1. Sign up at https://vercel.com
  2. Import your project (upload files or connect GitHub)
  3. Deploy with one click
  4. Your site is live

Option 4: Cloudflare Pages

Pros: Fast CDN, unlimited bandwidth, free custom domains Cons: Slightly more technical setup

Steps:

  1. Sign up at https://pages.cloudflare.com
  2. Connect your GitHub repository or upload files directly
  3. Deploy
  4. Your site is live with Cloudflare's global CDN

SEO Optimization

Your website is already SEO-friendly with:

βœ… Semantic HTML structure

  • Proper heading hierarchy (h1, h2, h3)
  • Descriptive page titles
  • Meta descriptions

βœ… Fast loading

  • No heavy frameworks
  • Minimal CSS/JS
  • Optimized for performance

βœ… Mobile responsive

  • Works on all screen sizes
  • Touch-friendly interface

βœ… Clean URLs

  • Descriptive page names
  • Query parameters for dynamic content

Additional SEO Tips

  1. Submit to Google Search Console

  2. Add Google Analytics (optional, to track visitors)

    <!-- Add before </head> in all HTML files -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=YOUR-ID"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
      gtag('config', 'YOUR-ID');
    </script>
  3. Create unique, valuable content

    • Write from personal experience
    • Provide unique insights
    • Update regularly
  4. Use descriptive titles and punchlines

    • Make them compelling and specific
    • Include relevant keywords naturally
  5. Internal linking

    • Link between related blog posts
    • Add "Related Posts" sections

Customization

Change Colors

Edit the CSS variables in each HTML file:

:root {
    --primary-bg: #fdfcf9;
    --text-dark: #1a1a1a;
    --text-light: #666;
    --accent: #2c5f2d;        /* Main accent color */
    --hover-accent: #1e4620;  /* Darker accent for hovers */
}

Change Fonts

Replace the Google Fonts link in the <head> section:

<link href="https://fonts.googleapis.com/css2?family=Your+Font&display=swap" rel="stylesheet">

Then update the font-family in CSS.

Modify Leaf Animation

In index.html, adjust these values in the JavaScript:

// Number of leaves
for (let i = 0; i < 15; i++) {  // Change 15 to add more/fewer leaves

// Leaf creation frequency
setInterval(createLeaf, 800);    // Change 800 (milliseconds) for faster/slower leaves

Add Images to Blog Posts

In your blog content, use:

<img src="path/to/image.jpg" alt="Description of image">

For external images:

<img src="https://example.com/image.jpg" alt="Description">

Maintenance

Regular Tasks

  1. Write new content - Add blog posts to blogs-data.js
  2. Update old posts - Fix typos, add new information
  3. Monitor performance - Check Google Search Console for issues
  4. Backup your content - Keep a local copy of all files

Zero Cost Maintenance

This website requires NO ongoing costs:

  • βœ… No hosting fees (using free platforms)
  • βœ… No database costs (static content)
  • βœ… No plugin subscriptions (vanilla HTML/CSS/JS)
  • βœ… No framework updates needed

Optional Costs:

  • Custom domain: $10-15/year (optional but recommended for branding)

Browser Support

Works in all modern browsers:

  • Chrome/Edge (latest)
  • Firefox (latest)
  • Safari (latest)
  • Mobile browsers

Performance

  • Load time: < 1 second
  • No external dependencies
  • Optimized for mobile
  • Progressive enhancement

Security

  • Static site = minimal attack surface
  • HTTPS enabled by default on all recommended platforms
  • No user input = no SQL injection or XSS vulnerabilities

Troubleshooting

Blog posts not showing

  • Check that blog ID is unique
  • Verify category name matches exactly
  • Ensure JavaScript file is loading

Styles not applying

  • Clear browser cache
  • Check for CSS syntax errors
  • Verify file paths are correct

Links not working

  • Use relative paths (e.g., category.html not /category.html)
  • Check that all HTML files are in the same directory

Next Steps

  1. ✏️ Write your first few blog posts
  2. πŸš€ Deploy to one of the free hosting platforms
  3. πŸ“± Test on mobile devices
  4. πŸ” Submit to Google Search Console
  5. πŸ“£ Share your blog!

Support

For questions or issues:

  • Review this README carefully
  • Check browser console for JavaScript errors
  • Test in different browsers
  • Verify all files are uploaded correctly

License

This template is free to use and modify for personal or commercial projects.


Happy Blogging! πŸŽ‰

Remember: The best blog is one that you actually maintain. Start small, write regularly, and let your unique voice shine through your content.

About

Person blog on tehnology, science and philosophy.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published