Skip to main content

Blog

Technical writing on software engineering and web standards

Latest Articles

Thoughts on building better software, mastering web fundamentals, and contributing to open source. Subscribe via email for updates.

Why I Built a Portfolio Using Only HTML5

By

| Published | 8 min read

Introduction

In an era dominated by JavaScript frameworks and CSS utility libraries, I decided to build my developer portfolio using nothing but HTML5. No stylesheets. No scripts. No build tools. Just semantic markup.

The goal was not to reject modern tooling — it was to prove that structure and content are the foundation of every great website.

Why Pure HTML Matters

  1. Accessibility — Screen readers parse semantic elements natively.
  2. Performance — Zero render-blocking resources, instant page loads.
  3. SEO — Search engines index well-structured content efficiently.
  4. Universality — Works in every browser, on every device, forever.
  5. Learning — Forces mastery of the web's most fundamental layer.

Semantic Elements Used

This project demonstrates every major HTML5 semantic element:

  • <header>, <nav>, <main>, <footer>
  • <article>, <section>, <aside>
  • <figure>, <figcaption>, <details>
  • <time>, <mark>, <data>, <address>

The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.

Tim Berners-Lee

Deploying Static Sites with GitHub Actions

By

| Published | 12 min read

GitHub Actions provides a seamless way to deploy static websites to GitHub Pages. In this article, I walk through setting up a production-ready workflow that triggers on every push to the main branch. The deployment token is stored in GITHUB_TOKEN automatically by the runner.

Key Steps

  1. Create .github/workflows/deploy.yml
  2. Configure Pages permissions in repository settings
  3. Use official actions/deploy-pages action
  4. Verify deployment at your custom domain
name: Deploy to GitHub Pages
on:
  push:
    branches: [main]
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/configure-pages@v5
      - uses: actions/upload-pages-artifact@v3
        with:
          path: .
      - uses: actions/deploy-pages@v4

The entire pipeline completes in under two minutes, providing a reliable continuous deployment experience for static HTML projects.

Tags: DevOps, GitHub Actions, CI/CD


The Complete Guide to Semantic HTML5

By

| Published | 15 min read

Semantic HTML is not just a best practice — it is a contract between your content and every user agent that consumes it: browsers, search engines, screen readers, and RSS parsers.

Practical Tips

  • Use one <h1> per page for the primary heading
  • Wrap navigation links in <nav> with aria-label
  • Provide skip links for keyboard users
  • Use <time datetime> for machine-readable dates
  • Include alt text on every meaningful image

Tags: HTML5, Semantics, WCAG


Getting Started with Open Source Contributions

By

| Published | 10 min read

Contributing to open source transformed my career. Here is a practical guide for developers who want to make their first contribution on GitHub.

Five steps to your first PR
  1. Find a project with a "good first issue" label
  2. Read the contributing guidelines (CONTRIBUTING.md)
  3. Fork the repository and create a feature branch
  4. Make a focused change with clear commit messages
  5. Submit a pull request with a descriptive summary

Tags: Open Source, GitHub, Career

Article Archive

All blog posts
Title Date Category
Why I Built a Portfolio Using Only HTML5 Web Standards
Deploying Static Sites with GitHub Actions DevOps
The Complete Guide to Semantic HTML5 Web Standards
Getting Started with Open Source Contributions Career