The jonbeckett.com blog uses an automated deployment workflow through GitHub Pages, which builds and deploys the site automatically whenever changes are pushed to the main branch.
# 1. Check status and stage changes
git status
git add .
# 2. Commit with descriptive message
git commit -m "Add post: Web request journey"
# 3. Push to GitHub (triggers deployment)
git push origin main
# 4. Monitor deployment status
# Check GitHub repository "Actions" tab
View build status at: https://github.com/jonbeckett/jonbeckett.github.io/actions
# Check site status
curl -I https://jonbeckett.com
# Verify RSS feed
curl -s https://jonbeckett.com/feed.xml | head -20
# Test specific post URL
curl -I https://jonbeckett.com/2026/01/28/web-request-journey/
# Work directly on main branch
git checkout main
git pull origin main
# Make changes
git add .
git commit -m "Update content"
git push origin main
# Create feature branch
git checkout -b feature/new-post
# Make changes
git add .
git commit -m "Add new post"
git push origin feature/new-post
# Create pull request via GitHub interface
# Merge after review
# Revert to previous commit
git revert HEAD
git push origin main
# Or reset to specific commit (destructive)
git reset --hard [commit-hash]
git push origin main --force
# Remove problematic post
git rm _posts/2026/2026-XX-XX-problematic-post.md
git commit -m "Remove problematic post"
git push origin main
bundle exec jekyll serveCurrently not configured. Could be set up using:
# GitHub CLI for build status
gh run list --repo jonbeckett/jonbeckett.github.io
# View specific build details
gh run view [run-id] --repo jonbeckett/jonbeckett.github.io
# Invalid YAML (missing quote)
title: This is a "quoted title
# Fix: Properly escape quotes
title: "This is a \"quoted\" title"
<!-- Invalid liquid syntax -->
<!doctype html>
<!--
Minimal Mistakes Jekyll Theme 4.28.1 by Michael Rose
Copyright 2013-2026 Michael Rose - mademistakes.com | @mmistakes
Copyright 2024-2026 iBug - ibugone.com | @iBug
Free for personal and commercial use under the MIT license
https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
-->
<html lang="en-GB" class="no-js" dir="ltr">
<head>
<meta charset="utf-8">
<!-- begin _includes/seo.html --><title>Hello, I’m Jonathan: A Life in the Virtual Skies - jonbeckett.com</title>
<meta name="description" content="I’m Jonathan Beckett: software developer, aviation enthusiast and virtual pilot.">
<meta name="author" content="Jonathan Beckett">
<meta property="article:author" content="Jonathan Beckett">
<meta property="og:type" content="article">
<meta property="og:locale" content="en_GB">
<meta property="og:site_name" content="jonbeckett.com">
<meta property="og:title" content="Hello, I’m Jonathan: A Life in the Virtual Skies">
<meta property="og:url" content="https://jonbeckett.com/2026/11/04/introducing-jonathan-beckett/">
<meta property="og:description" content="I’m Jonathan Beckett: software developer, aviation enthusiast and virtual pilot.">
<meta property="og:image" content="https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=1200&h=400&fit=crop&crop=entropy&auto=format&q=80">
<meta property="article:published_time" content="2026-11-04T00:00:00+00:00">
<link rel="canonical" href="https://jonbeckett.com/2026/11/04/introducing-jonathan-beckett/">
<!-- end _includes/seo.html -->
<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="jonbeckett.com Feed">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script>
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
</script>
<!-- For all browsers -->
<link rel="stylesheet" href="/assets/css/main.css">
<link rel="preload" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@latest/css/all.min.css"></noscript>
<meta name="follow.it-verification-code" content="46JJqqLrzpNsmCFk3FRQ"/>
<link rel="icon" type="image/svg+xml" href="/assets/images/favicon.svg">
<link rel="shortcut icon" href="/assets/images/favicon.svg">
</head>
<body class="layout--single">
<nav class="skip-links" aria-label="Skip links">
<ul>
<li><a href="#site-nav" class="screen-reader-shortcut">Skip to primary navigation</a></li>
<li><a href="#main" class="screen-reader-shortcut">Skip to content</a></li>
<li><a href="#footer" class="screen-reader-shortcut">Skip to footer</a></li>
</ul>
</nav>
<div class="masthead">
<div class="masthead__inner-wrap">
<div class="masthead__menu">
<nav id="site-nav" class="greedy-nav" aria-label="Primary navigation">
<a class="site-title" href="/">
jonbeckett.com
</a>
<ul class="visible-links"><li class="masthead__menu-item">
<a
href="/"
>Home</a>
</li><li class="masthead__menu-item">
<a
href="/about/"
>About</a>
</li><li class="masthead__menu-item">
<a
href="/contact/"
>Contact</a>
</li></ul>
<button class="greedy-nav__toggle hidden" type="button">
<span class="visually-hidden">Toggle menu</span>
<div class="navicon"></div>
</button>
<ul class="hidden-links hidden"></ul>
</nav>
</div>
</div>
</div>
<div class="initial-content">
<div class="page__hero--overlay"
style=" background-image: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.4) 100%), url('https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=1200&h=400&fit=crop&crop=entropy&auto=format&q=80');"
>
<div class="wrapper">
<h1 id="page-title" class="page__title" itemprop="headline">
Hello, I’m Jonathan: A Life in the Virtual Skies
</h1>
<p class="page__lead">I’m Jonathan Beckett: software developer, aviation enthusiast and virtual pilot.
</p>
<p class="page__meta">
<span class="page__meta-date">
<i class="far fa-calendar-alt" aria-hidden="true"></i>
<time datetime="2026-11-04T00:00:00+00:00">November 4, 2026</time>
</span>
<span class="page__meta-sep"></span>
<span class="page__meta-readtime">
<i class="far fa-clock" aria-hidden="true"></i>
1 minute read
</span>
</p>
</div>
</div>
<nav class="breadcrumbs">
<ol itemscope itemtype="https://schema.org/BreadcrumbList">
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/" itemprop="item"><span itemprop="name">Home</span></a>
<meta itemprop="position" content="1" />
</li>
<span class="sep">/</span>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
<a href="/categories/#announcements" itemprop="item"><span itemprop="name">announcements</span></a>
<meta itemprop="position" content="2" />
</li>
<span class="sep">/</span>
<li class="current">Hello, I'm Jonathan: A Life in the Virtual Skies</li>
</ol>
</nav>
<div id="main" role="main">
<div class="sidebar sticky">
<div itemscope itemtype="https://schema.org/Person" class="h-card">
<div class="author__avatar">
<a href="https://jonbeckett.com/">
<img src="/assets/images/jonbeckett.jpg" alt="Jonathan Beckett" itemprop="image" class="u-photo">
</a>
</div>
<div class="author__content">
<h3 class="author__name p-name" itemprop="name">
<a class="u-url" rel="me" href="https://jonbeckett.com/" itemprop="url">Jonathan Beckett</a>
</h3>
<div class="author__bio p-note" itemprop="description">
<p>Content Creator</p>
</div>
</div>
<div class="author__urls-wrapper">
<button class="btn btn--inverse">Follow</button>
<ul class="author__urls social-icons">
<li itemprop="homeLocation" itemscope itemtype="https://schema.org/Place">
<i class="fas fa-fw fa-location-dot" aria-hidden="true"></i> <span itemprop="name" class="p-locality">UK</span>
</li>
<li><a href="https://youtube.com/@jonbeckett" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-youtube" aria-hidden="true"></i><span class="label">YouTube</span></a></li>
<li><a href="https://jonbeckett.substack.com" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fas fa-fw fa-newspaper" aria-hidden="true"></i><span class="label">Substack</span></a></li>
<li><a href="https://ko-fi.com/jonbeckett/shop" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fas fa-fw fa-bag-shopping" aria-hidden="true"></i><span class="label">Ko-Fi</span></a></li>
<li><a href="https://www.facebook.com/jonbeckettnotarealpilot" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i><span class="label">Facebook</span></a></li>
<li><a href="https://discord.gg/rmA5XqV69s" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-discord" aria-hidden="true"></i><span class="label">Discord</span></a></li>
<li><a href="https://bsky.app/profile/jonbeckett.bsky.social" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-bluesky" aria-hidden="true"></i><span class="label">BlueSky</span></a></li>
<li><a href="https://mastodon.online/@jonbeckett" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-mastodon" aria-hidden="true"></i><span class="label">Mastodon</span></a></li>
<li><a href="https://x.com/thejonbeckett" rel="nofollow noopener noreferrer me" itemprop="sameAs"><i class="fab fa-fw fa-x" aria-hidden="true"></i><span class="label">X</span></a></li>
<li>
<a href="mailto:jonbeckett@outlook.com" rel="me" class="u-email">
<meta itemprop="email" content="jonbeckett@outlook.com" />
<i class="fas fa-fw fa-square-envelope" aria-hidden="true"></i><span class="label">Email</span>
</a>
</li>
<!--
<li>
<a href="http://link-to-whatever-social-network.com/user/" itemprop="sameAs" rel="nofollow noopener noreferrer me">
<i class="fas fa-fw" aria-hidden="true"></i> Custom Social Profile Link
</a>
</li>
-->
</ul>
</div>
</div>
</div>
<article class="page h-entry" itemscope itemtype="https://schema.org/CreativeWork">
<meta itemprop="headline" content="Hello, I’m Jonathan: A Life in the Virtual Skies">
<meta itemprop="description" content="I’m Jonathan Beckett: software developer, aviation enthusiast and virtual pilot.">
<meta itemprop="datePublished" content="2026-11-04T00:00:00+00:00">
<div class="page__inner-wrap">
<section class="page__content e-content" itemprop="text">
<p>Hello, and welcome. I’m Jonathan Beckett: software and web developer by day, aviation enthusiast and virtual pilot whenever I can be. I’m <strong>not a real pilot</strong>, but I enjoy learning about aircraft and sharing what I discover in the world of flight simulation.</p>
<h2 id="from-an-8-bit-cockpit-to-the-virtual-skies">From an 8-bit cockpit to the virtual skies</h2>
<p>My interest in flight simulation goes back to the mid-1980s, when I tried <em>Flight Sim 737</em> on an 8-bit computer. A few years later, I was flying <em>Sublogic Flight Simulator II</em> on an Atari ST. I kept coming back to simulators on the PC over the years, although there was a long pause while my daughters were young and I didn’t have a computer capable of running one.</p>
<p>The journey really took off again when I inherited a computer from my Dad. He and his friends in a virtual airline were learning to fly the ZiboMod 737 in X-Plane, so I made a few tutorial videos to help them. I had no idea that those first videos would lead to so many more.</p>
<h2 id="sharing-what-i-learn">Sharing what I learn</h2>
<p>In the years since, I’ve made more than a thousand videos and built a community of nearly 50,000 fellow virtual aviators on YouTube. I make tutorials, share aircraft and simulator discoveries, write guides and flight plans, and livestream flights with the community. The subjects range from learning a cockpit’s systems to planning a route and seeing where a flight takes us.</p>
<p>I still work as a software and web developer for a Microsoft partner, building large systems whose details I can’t usually share. Flight simulation is a very different kind of problem-solving: there’s always another aircraft to learn, another procedure to understand, or another corner of the world to explore.</p>
<h2 id="what-youll-find-here">What you’ll find here</h2>
<p>This website will become my homepage in the new year - a jumping off point for everything I do online. Whether you’re new to flight simulation or have been flying virtual skies for years, I hope you’ll find something useful, interesting, or at least entertaining via the links on the front page.</p>
<p>Thanks for stopping by. I hope to see you in the virtual skies!</p>
</section>
<footer class="page__meta">
<p class="page__taxonomy">
<strong><i class="fas fa-fw fa-tags" aria-hidden="true"></i> Tags: </strong>
<span itemprop="keywords">
<a href="/tags/#aviation" class="page__taxonomy-item p-category" rel="tag">aviation</a><span class="sep">, </span>
<a href="/tags/#flight-simulation" class="page__taxonomy-item p-category" rel="tag">flight-simulation</a><span class="sep">, </span>
<a href="/tags/#introduction" class="page__taxonomy-item p-category" rel="tag">introduction</a><span class="sep">, </span>
<a href="/tags/#youtube" class="page__taxonomy-item p-category" rel="tag">youtube</a>
</span>
</p>
<p class="page__taxonomy">
<strong><i class="fas fa-fw fa-folder-open" aria-hidden="true"></i> Categories: </strong>
<span itemprop="keywords">
<a href="/categories/#announcements" class="page__taxonomy-item p-category" rel="tag">announcements</a>
</span>
</p>
<p class="page__date"><strong><i class="fas fa-fw fa-calendar-alt" aria-hidden="true"></i> Updated:</strong> <time class="dt-published" datetime="2026-11-04T00:00:00+00:00">November 4, 2026</time></p>
</footer>
</div>
</article>
<div class="page__related">
<h2 class="page__related-title">You May Also Enjoy</h2>
<div class="grid__wrapper">
</div>
</div>
</div>
</div>
<div id="footer" class="page__footer">
<footer>
<!-- start custom footer snippets -->
<!-- end custom footer snippets -->
<div class="page__footer-follow">
<ul class="social-icons">
<li><a href="https://youtube.com/@jonbeckett" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-youtube" aria-hidden="true"></i> YouTube</a></li>
<li><a href="https://jonbeckett.substack.com/" rel="nofollow noopener noreferrer"><i class="fas fa-fw fa-newspaper" aria-hidden="true"></i> Substack</a></li>
<li><a href="https://ko-fi.com/jonbeckett/shop" rel="nofollow noopener noreferrer"><i class="fas fa-fw fa-bag-shopping" aria-hidden="true"></i> Ko-Fi</a></li>
<li><a href="https://www.facebook.com/jonbeckettnotarealpilot" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-facebook" aria-hidden="true"></i> Facebook</a></li>
<li><a href="https://discord.gg/rmA5XqV69s" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-discord" aria-hidden="true"></i> Discord</a></li>
<li><a href="https://bsky.app/profile/jonbeckett.bsky.social" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-bluesky" aria-hidden="true"></i> BlueSky</a></li>
<li><a href="https://mastodon.online/@jonbeckett" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-mastodon" aria-hidden="true"></i> Mastodon</a></li>
<li><a href="https://x.com/thejonbeckett" rel="nofollow noopener noreferrer"><i class="fab fa-fw fa-x" aria-hidden="true"></i> X</a></li>
<li><a href="/disclaimer/" rel="nofollow noopener noreferrer"><i class="fas fa-fw fa-info-circle" aria-hidden="true"></i> Disclaimer</a></li>
<li><a href="/feed.xml"><i class="fas fa-fw fa-square-rss" aria-hidden="true"></i> Feed</a></li>
</ul>
</div>
<div class="page__footer-copyright">© 2026 <a href="https://jonbeckett.com">jonbeckett.com</a>. Powered by <a href="https://jekyllrb.com" rel="nofollow">Jekyll</a> & <a href="https://mademistakes.com/work/jekyll-themes/minimal-mistakes/" rel="nofollow">Minimal Mistakes</a>.</div>
</footer>
</div>
<script src="/assets/js/main.min.js"></script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-0J6K0088RD"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-0J6K0088RD', { 'anonymize_ip': false});
</script>
</body>
</html>
<!-- Fix: Proper liquid filter syntax -->
# Unsupported plugin
plugins:
- jekyll-unsupported-plugin
# Fix: Use only whitelisted plugins
plugins:
- jekyll-feed
- jekyll-sitemap
bundle exec jekyll build# Clone repository for backup
git clone https://github.com/jonbeckett/jonbeckett.github.io.git backup/
# Export content only
cp -r _posts/ backup-posts-$(date +%Y%m%d)/
cp -r _pages/ backup-pages-$(date +%Y%m%d)/
Deployment Method: GitHub Pages automatic builds
Trigger: Push to main branch
Build Time: 30-60 seconds
Global Distribution: GitHub’s CDN network
Rollback: Git-based version control