2026-07-03[ CONTENT · DISCOVERY ]
Surfaced the two new pages across the site

Follow-up to the launch below: the DR/BDR election and subnetting practice pages now show up where people actually look — cards on the Articles page and the homepage blog grid (newest-first, older OSPF pieces rotated to the full archive), plus topic links in the CCNA Study Hub — subnetting practice under Domain 1, DR/BDR under Domain 3 beside the adjacency-states article. SITE_VERSION 1.51.0 → 1.51.1.

2026-07-03[ CONTENT · Q&A ]
Two new answer pages: OSPF DR/BDR election + subnetting practice questions

Two additions to the Q&A graph, both aimed at things people actually search. How Is the OSPF DR/BDR Elected? covers the election mechanics the adjacency-states article deliberately left out — highest interface priority, the Router-ID tiebreak, why it's non-preemptive, and forcing the DR with ip ospf priority — cross-linked with OSPF adjacency states and area 0. And CCNA Subnetting Practice Questions is a crawlable set of 12 worked problems — network/broadcast, host counts, masks, VLSM sizing, wildcards, the magic-number method — each with a click-to-reveal answer so you can try before you check, funnelling into the subnet practice drill. Also on the homepage: with the CCNA passed, the character card now reads CCNA 100 and gains a CCNP row for the Enterprise track in progress. SITE_VERSION 1.50.1 → 1.51.0.

2026-06-25[ CONTENT · EXTERNAL TOOL ]
Pointing to SwitchLab — learn networking right in your browser

Added a link to SwitchLab, a free, install-free platform for drilling switching concepts interactively in the browser. It sits as a callout under the CCNA Study Hub banner on the homepage and as the first card on the Labs page, flagged as an external resource — a good companion to the downloadable Packet Tracer labs when you just want to drill without firing up a simulator. Small housekeeping note: the homepage is cached aggressively so the app loads instantly and works offline, so I bumped the version to make sure returning visitors actually pick up the new link instead of a stale cached page. SITE_VERSION 1.50.0 → 1.50.1.

2026-06-21[ FEATURE · DEEPER DRILLS ]
Bigger question pools across the drills and arcade — and streak badges you earn fair

The practice content got wider. The Daily Drill authored pool went from 16 to 40 questions and its lab prompts from 7 to 21, so the non-generated half stays fresh for a couple of weeks instead of cycling in a few days. In the arcade, CommandGuesser grew from 32 to 48 task questions plus 27 verification commands, and PortGuesser from 26 to 40 services (with more IP protocols and secure-alternative pairs) — every entry real CCNA-scope syntax, no invented commands. The genuinely generated games (Subnet Survivor, RouteGuesser, STP Root Battle) were already effectively endless and untouched. I also widened the engine's no-repeat window to 20, so the ON FIRE (12-answer streak) and COMBO KING (20-answer streak) badges are now earned on entirely distinct questions rather than a short loop. Separately logging here: the TCP vs UDP article and its Packet Flow lab went live on 2026-06-17. SITE_VERSION 1.49.0 → 1.50.0.

2026-06-16[ AUTHOR · CCNP IN PROGRESS ]
Next cert on the bench: working toward the CCNP Enterprise

With the CCNA 200-301 in hand, I've started studying toward the Cisco CCNP Enterprise (ENCOR + ENARSI). The author bio across the site now says so — credentials page, study hub, start-here, the homepage, and llms.txt. To be clear it's in progress, not yet certified: the CCNA stays the only Cisco cert in the structured credential record until the CCNP exams are passed. SITE_VERSION 1.48.0 → 1.49.0.

2026-06-16[ FEATURE · PROGRESS IN NAV ]
Your progress page is now one tap away from anywhere

The MY PROGRESS dashboard — your completion tracker, six-domain coverage grid, badge wall, and what-to-study-next list — used to be tucked away. Now it sits in the main nav on every page, so wherever you are on the site you're one tap from seeing how far you've come. The study hub also points to it from its progress summary. As always it's all kept in your own browser — nothing is sent anywhere. SITE_VERSION 1.47.0 → 1.48.0.

2026-06-15[ MILESTONE · CCNA CERTIFIED ]
Passed the CCNA 200-301 — the site now says so

It's official: I passed the Cisco CCNA 200-301 on the first attempt. Domain scores — Network Fundamentals 95%, Network Access 80%, IP Connectivity 80%, IP Services 90%, Security Fundamentals 100%, Automation & Programmability 90%. Every "candidate / in progress / studying for" line across the site has been retired in favour of certified: the credentials page now carries the full domain-score breakdown, and the Person/credential schema, homepage, study hub, start-here, llms.txt, and the two CCNA articles all reflect the pass. Same labs, same drills, same site — now written by someone who's been through the exam, not toward it. SITE_VERSION 1.46.0 → 1.47.0.

2026-06-13[ FEATURE · ARCADE ACHIEVEMENTS ]
A full achievement ladder for every networking game

The badge wall grew from 20 to 43. Every one of the five games — PortGuesser, Subnet Survivor, CommandGuesser, RouteGuesser, and STP Root Battle — now has its own win ladder: clear a Daily run at 50% (PASS), 75% (SOLID), and 100% (FLAWLESS), plus an ON FIRE badge for a 12-answer streak (only reachable in Endless mode). On top of those, three cross-game goals: ARCADE REGULAR for playing all five, COMBO KING for a 20-answer streak in any game, and PERFECT ARCADE for a clean 100% sweep of every game. Each run now durably records your best Daily percentage and longest streak per game, so the badges unlock the moment you earn them and the toast fires once. All local to your browser, nothing sent anywhere. SITE_VERSION 1.45.0 → 1.46.0.

2026-06-12[ FEATURE · XP + RANKS + CHALLENGES ]
One progression system across the whole site — XP, ranks, streak shields, badges, and a weekly challenge

Every drill, game, and study day now feeds a single XP total. Climb a ladder of eight retro ranks — from CABLE MONKEY all the way to THE LINEMAN — with your streak and rank pinned in the nav on every page. Hitting a 7-day streak earns a streak shield that automatically covers one missed day, so a single busy Tuesday doesn't torch a month of work. Your progress page grew a rank panel and a wall of 20 earnable badges (locked ones stay visible — that's the point), and a rotating weekly challenge now sits on Tools, Games, and the progress page — same challenge for everyone, resets Monday, +50 XP to clear it. Games also celebrate a NEW RECORD properly when you beat your best. All of it lives in your browser's local storage — no accounts, nothing sent anywhere — and the JSON export/import now backs up the whole arcade layer too. This release also ships the Packet Flow and Subnetting visualizers, three new games with retro sound effects, and the sitewide XP layer in one launch. SITE_VERSION 1.42.4 → 1.45.0.

2026-06-12[ TOOL · LAUNCH ]
Packet Flow Visualizer — watch packets actually flow, with attacks and diagnostics

A new interactive tool: the Packet Flow Visualizer animates a single packet gliding from a PC, across a switch, two routers and another switch, to a server and back — a fly-over label pops over each device as the packet arrives, and you watch the TTL tick down and the MAC headers swap at every router. Hit PLAY, set the speed, loop it. Three tracks, 21 scenarios in all. Normal traffic: ICMP ping with full ARP, the TCP services (HTTP with its 3-way handshake, FTP in active and passive mode, SSH, Telnet) and the UDP services (DNS, NTP, DHCP DORA, TFTP), each with a live encapsulation stack and per-device ARP/MAC tables. Attacks — built straight onto the CCNA Security Fundamentals domain, each ending on its fix: ARP spoofing / MITM (Dynamic ARP Inspection), MAC flooding / CAM overflow (port security), DHCP spoofing (DHCP snooping), MAC spoofing, VLAN hopping by double-tagging (native-VLAN hygiene), a self-multiplying broadcast storm (Spanning Tree / BPDU Guard), a SYN flood (SYN cookies) and a smurf amplification (no ip directed-broadcast) — with a rogue attacker node and a redundant-loop topology drawn in. Diagnostics: traceroute revealing the path one TTL at a time, destination-unreachable, and NAT/PAT translation. And it's built to be followed by someone who's never seen a packet before: a clickable journey timeline shows every step of the story at a glance, the packet never disappears (a pulsing marker sits on whichever device is processing it, and crossed wires stay lit as a trail), the frame line names the devices instead of raw MACs, and every piece of jargon in the play-by-play is a dotted term that pops a plain-English definition. The mental model Packet Tracer's simulation mode teaches, in the browser. Launched from the Tools page.

2026-06-12[ TOOL · LAUNCH ]
Subnetting Visualizer — watch the network/host boundary move

Second tool of the day: the Subnetting Visualizer shows what a prefix length actually does. Type any IPv4 address, drag the prefix slider (or click a bit) and watch the 32 bits split into network and host in real time — subnet mask, network address, broadcast, usable host range, host count and wildcard mask all recalculate live, with the /31 (RFC 3021) and /32 (host route) edge cases called out. The "see it" companion to the Subnetting Practice drill, cross-linked from the Packet Flow Visualizer.

2026-06-10[ CONTENT · ARTICLE + Q&A ]
"Is the CCNA Worth It?" career article + three more plain-English Q&A pages

A top-of-funnel piece for anyone still deciding: Is the CCNA Worth It in 2026? — an honest take from a working network analyst, with the real case for it, the case against, who shouldn't bother, what it costs in time and money, and a way to decide. It funnels into how to study and the guided path. Alongside it, three new answer pages extend the Q&A graph: what is VLSM, what is a floating static route, and how STP elects the root bridge — each cross-linked both ways with the existing pages on the same topic. SITE_VERSION 1.40.0 → 1.41.0.

2026-06-08[ FEATURE · FLASHCARDS + TUTORING ]
Flashcards go live, 1-on-1 tutoring opens, and the analytics layer gets documented

Two things that were built and waiting are now live. The CCNA Flashcards deck — 259 cards across all six domains, with topic filtering, self-grading, a flag-and-re-drill system, and an end-of-session recap that points you at your weakest topics — is out of the drawer and interlinked from the Tools page, the Study Hub, and the end of the Daily Drill. And I'm now offering 1-on-1 CCNA tutoring — $30/hr, online, prepped around your weak spots — with a booking page that takes the study-hub banner slot. Under the hood, this release also documents the sitewide analytics event tracking that shipped quietly earlier: a single shared script that records tool starts, lab downloads, config copies, article read-depth, and affiliate clicks via privacy-friendly Umami — flashcards now fires its own "started" event like the other drills. SITE_VERSION 1.39.17 → 1.40.0.

2026-06-02[ FEATURE · ONBOARDING + SEARCH ]
A real front door for newcomers — search, breadcrumbs, a CCNA roadmap, and a guided study path

Big usability pass for anyone arriving cold. New site-wide Search (instant, type-as-you-go, filter by Guide / Q&A / Tool / Lab / Article) plus breadcrumbs on every content page and an active-page highlight in the nav so you always know where you are. New How to Study for the CCNA roadmap (what the exam is, cost, timeline, the six domains, a read-drill-lab method) and a guided CCNA Study Path that walks the topics in order, tracks completion in your browser, and shows a progress bar. The homepage and Study Hub now greet returning visitors with a “pick up where you left off” resume card, and Start Here opens with a quick “where are you at?” router. SITE_VERSION 1.38.5 → 1.39.0.

2026-06-02[ FEATURE · MOBILE + PWA ]
Install TheLineman as an app — PWA + phone-friendly tools

The site is now an installable app. Add it to your phone's home screen and it opens full-screen, with proper icons, a themed splash, and home-screen shortcuts straight to the Daily Drill, subnet practice, and command lookup — no app store, no signup. New “Install as an app” prompts on the Tools page and homepage detect when your browser supports it (a tap-to-install button on Android/Chrome, a Share → Add to Home Screen hint on iPhone/iPad) and quietly hide once installed. Tools cards got bigger, full-width tap targets on phones, and the Tools tool-list schema now reflects all nine tools. A tiny no-cache service worker handles installability with zero risk of stale pages. SITE_VERSION 1.36.1 → 1.37.0.

2026-06-01[ FEATURE · TOOLS + SEO ]
Command Lookup tool + 10 plain-English "Common Questions" pages

New Cisco IOS Command Lookup — type a topic or command ("ospf", "trunk", "show ip route") and filter live by configure / verify / troubleshoot, copy-paste ready. Plus ten new question-based answer pages targeting the exact things CCNA beginners search, each with a short answer, a worked example with commands, related-question FAQs, and structured data: what is a VLAN, access vs trunk port, why VLANs can't ping, router-on-a-stick, wildcard masks, finding the broadcast address, OSPF area 0, static vs default route, administrative distance, and STP vs RSTP — all linked from the Study Hub. SITE_VERSION 1.35.0 → 1.36.0.

2026-06-01[ FEATURE · RETENTION ]
The site remembers you now — Daily Drill, study streaks, and a personal stats terminal

Biggest engagement push yet. New Daily CCNA Drill: six fresh questions a day — three generated IPv4 subnetting problems plus a rotating mix of IOS-command, troubleshooting, and concept questions — day-seeded so everyone gets the same set, with instant grading, per-question explanations, and a closing lab challenge. It tracks a daily study streak stored in your browser. A new sitewide stats layer wires every drill (subnet, IPv6 subnet, IPv6 types, EUI-64, ACL) into a personal "student terminal" on the CCNA Study Hub — showing your streak, drills graded, accuracy, and best subnet score. Plus a contextual cheat-sheet nudge the moment you grade a subnetting drill. No accounts, no signup — all progress is local to your browser. Shipped through a Cloudflare preview branch first. SITE_VERSION 1.34.0 → 1.35.0.

2026-05-28[ UX · INTERNAL LINKING ]
"Back to Tools" on every drill + the ACL drill gets a "Keep Going" block

Closed a couple of navigation gaps. Every interactive tool — subnet, IPv6 subnet, IPv6 types, EUI-64, the ACL drill, and the cheat sheet — now carries a ◀ BACK TO TOOLS button under its intro, matching the one already on the flashcards page, so no tool is a dead end. The ACL drill, which used to link out to nothing, gained a ★ KEEP GOING section at the bottom: the companion Packet Tracer ACL lab, the CLI cheat sheet for the exact access-list / ip access-group syntax, and the CCNA Study Hub's Domain 5 card. Shipped through a Cloudflare preview branch first, then merged to production. SITE_VERSION 1.33.0 → 1.34.0.

2026-05-27[ INFRA · CLOUD MIGRATION ]
Off the home server — TheLineman moves to Cloudflare Pages

The site spent its whole life served by Apache2 on a Pop!_OS box in my room, exposed through a Cloudflare Tunnel. That box had two problems: it dropped during power outages, and it cooked the room. So the whole thing moved to Cloudflare Pages, deployed straight from the main branch of the GitHub repo — push, and it's live on Cloudflare's edge in about 30 seconds. Zero downtime on the cutover, same thelineman.ca domain, fresh Let's Encrypt cert, HTTP→HTTPS still enforced. The old "save a file and it's instantly live" workflow is gone — everything goes through git now, which is a strictly better way to run a site. One wrinkle: Pages strips .html from URLs by default, which forced the change below. 27 of 28 production smoke tests passed on the first cut.

2026-05-27[ INFRA · CLEAN URLS ]
Dropped .html sitewide — clean URLs are now canonical

Cloudflare Pages 307-redirects /foo.html/foo and there's no toggle to stop it, so rather than fight the platform the site adopted clean URLs as canonical. One pass updated 48 files: every canonical tag, og:url, Twitter URL, JSON-LD url/@id/item, the sitemap, llms.txt, the manifest, and every internal link now points at the extensionless form. The 22 legacy .html URLs from the old .htaccess were ported into a Pages-native _redirects file as single-hop 301s, so old links and anything Google already indexed still resolve in one redirect — no ranking equity lost. A _headers file carries over the cache-control and X-Robots-Tag rules. Files on disk keep their .html names; only the published URLs changed.

2026-05-26[ GEO · AI-SEARCH ]
GEO overhaul — built to be cited by AI search, not just ranked

Biggest single search push to date, aimed at being quoted by AI Overviews rather than just appearing in blue links. Added FAQPage schema to all 12 articles (38 new Q&As), HowTo schema on the tutorial articles, speakable markup pointed at each article's TL;DR box, plus Course, Dataset, Service, and WebApplication schema where they fit. Every public page got proper <main> and <header> semantics (42 pages) and a visible "LAST REVIEWED" date for freshness. The flashcard deck (still beta, noindex) grew from 140 to 259 cards with a flag / skip / review system, and a new noindex my-progress dashboard pulls your LocalStorage completion and flagged cards into one CCNA study view.

2026-05-25[ CONTENT · SPLIT ]
/guides added · /blog renamed to /articles · CCNA-first rebrand

Split the content index in two: /guides is the curated, filtered view (CollectionPage + ItemList schema) and /articles is the full chronological archive — renamed from /blog with a 301 in place. Every post-card now shows a colored "flavor" pill (GUIDE / TUTORIAL / BLOG / REFERENCE) and the nav reordered to lead START HERE → CCNA HUB → GUIDES. Alongside it, a foundation-hygiene and AI-readiness sweep: corrected lab POSTED dates, backfilled missing TechArticle / BreadcrumbList schema, rewrote the homepage hero CCNA-first, and gave llms.txt a full overhaul with a citation policy and a "Quick Facts" block. SITE_VERSION 1.24.0 → 1.28.0.

2026-05-22[ TOOL · LAUNCH ]
ACL Matching Drill goes live — Domain 5 of the CCNA hub flips from 0% → 10%

After the QA pass earlier today, the ACL drill at /acl-practice.html is no longer noindex. Added to sitemap, llms.txt, tools.html (new "SECURITY / ACL" section), and manifest.js. The CCNA Hub's Domain 5 card went from "COMING SOON · 0%" to "PARTIAL · 10% COVERED" with topic 5.6 (Configure and verify ACLs) flipped to COVERED — linked to both the drill and the cheat sheet's ACL section. First Domain 5 win, and the most exam-tested concept in that domain shipped first. Hub status counters: 5 → 7 browser tools, 10 → 11 of 53 topics covered. SITE_VERSION 1.23.0 → 1.24.0.

2026-05-22[ INFRA · NO-DEAD-ENDS ]
"What's Next" module rolled out to all 12 articles — pillar 6 closed

Built on top of yesterday's manifest. progress-display.js bumped to v5: any page that includes <div class="next-steps" data-slug="X"></div> gets auto-populated with 2 manifest-driven suggestions plus a reference fallback. Logic: if the page is in the CCNA path order, suggest the next uncompleted item; otherwise find pages in shared paths or shared tags; always include the cheat sheet as a reference fallback. Skips items already in the visitor's completed list. Deployed to all 12 articles via bulk patch (one Python pass — verified mf=1 ns=1 on every file). Inserts above the newsletter CTA so the retention prompt comes before the email ask. Labs already had hand-curated next-steps blocks — those stay; the new pattern is opt-in via data-slug. SITE_VERSION 1.22.0 → 1.23.0.

2026-05-22[ INFRA · PHASE 3 ]
Manifest layer shipped — single source of truth for every content page

New file at /manifest.js exposes window.TLM_MANIFEST with every article (12), lab (9), tool (6), and path on the site. Each page entry carries: slug (matches LocalStorage completion key), title, url, type, CCNA domain, lab number, paths it belongs to, tags, posted date. The CCNA Hub's DOMAIN_MAP and the homelab path's STAGE_TO_SLUG are now both derived from manifest data — so adding a new article means one edit instead of three. progress-display.js bumped to v4: reads manifest if loaded, falls back to its existing hardcoded values otherwise. Backwards compatible everywhere — pages without manifest.js work exactly as before. Foundation for the no-dead-ends pillar (auto-generated "What's Next") and a future site-wide search. SITE_VERSION 1.21.0 → 1.22.0.

2026-05-22[ TOOL · LAUNCH ]
CLI Cheat Sheet shipped — 12 Cisco IOS topics in one tab-switched page

New tool at /cheatsheet.html. VLAN, inter-VLAN, STP, EtherChannel, OSPF (single + multi-area), static routing, ACL, NAT/PAT, DHCP, CDP/LLDP, and IPv6 — each topic gets config templates, show commands, and a classic exam gotcha. Copy button on every code block, hash-deep-linkable (#ospf, #acl etc.), print-friendly CSS that expands all panels and strips chrome for a single-topic paper sheet. Sized for SEO — the meta title and topic headings cover the high-volume "cisco ___ cheat sheet" search variants. Linked from /tools.html under a new REFERENCE section. Sitemap and llms.txt updated. SITE_VERSION 1.20.1 → 1.21.0.

2026-05-22[ FIX · ACL DRILL QA ]
ACL Drill v1.1 — three bugs caught on self-QA pass

Before opening the drill up for public play I walked the engine code looking for edge cases. Three real bugs found and fixed: (1) the "middle line" targeting branch in pickWeightedTarget was off-by-one — for an N-line ACL it could only target idx 0 to N-2, so the last line could literally never be the correct answer. Now spans 1 to N-1. (2) buildImplicitDenyPacket picked the packet's protocol from [tcp, udp] but always picked its port from TCP_PORTS — a UDP packet could end up shown as "Protocol: UDP, Dest port: 3389" which is incoherent. Port now keyed off the chosen protocol. (3) When the answer was implicit deny, the implicit-deny row didn't get the green match-correct highlight that real lines do. Added data-idx="implicit" to the row and the highlight logic now branches on result type. Engine source-of-truth architecture made these surface easily — generator stayed honest, only the question-distribution layer needed fixes.

2026-05-22[ PATH · LAUNCH ]
Phase 2C + 2D shipped — Homelab Path live · "Choose Your Path" grid on homepage

First non-CCNA learning path: /paths/homelab/ — five-stage build order (foundation → network edge → compute → self-hosting → operate). Each stage card flips to green when the linked article is marked complete in LocalStorage. Homepage gets a new "★ CHOOSE YOUR PATH" section between the subnet banner and the blog grid: 5 cards (CCNA · Homelab · Fortinet · Self-Hosting · Career), first two clickable, last three marked DRAFTING. The homelab path-card on /start-here.html now leads with a link to the full path. Sitemap + llms.txt updated.

2026-05-22[ TOOL · BETA ]
ACL Matching Drill v1 built — not launched yet

Live but noindex at /acl-practice.html. Randomized ACL + packet generator, top-down evaluation engine, three difficulty modes (standard / extended / mixed default), score persistence in LocalStorage, field-by-field walkthrough on every answer, classic-trap callout when a wrong-but-later-matching line is picked. ~45 KB self-contained HTML+CSS+JS. v1 scope: tcp/udp/ip protocols, eq port operator only, prefix-aligned wildcards, RFC1918 sources. Out of scope for v1: named ACLs, source ports, gt/lt/range, ICMP types, established. Holding on launch until QA pass.

2026-05-22[ DESIGN ]
Platform redesign blueprint — 10-pillar retention audit

Took a hard look at why the site has traffic but low retention. Diagnosed the real problem: every page renders as an endpoint, not a vertex in a graph. Drafted a phase-based plan to fix it — build-log, completion tracking, "no dead ends" module, learning paths. Phase 1 starts today.

2026-05-22[ INFRA · PHASE 1 ]
Build log live · Completion tracking sitewide · No-dead-ends module on top OSPF pages

Shipped the foundation of the retention architecture: this build log itself (now visible in the nav and on the homepage), a LocalStorage-backed "Mark Complete" checkbox on every lab and article, and a "What's Next" module replacing the old "previous / next" file-order navigation on Lab 5, Lab 7, and Lab 8. No accounts, no database — pure client-side state, no friction.

2026-05-21[ LAB · LAUNCH ]
Lab 9 — CDP & LLDP Neighbor Discovery shipped

Four-device topology demonstrating Cisco Discovery Protocol vs IEEE 802.1AB LLDP, with a security angle (what each protocol leaks, why CDP off on edge interfaces). Domain 2 of the CCNA Hub flipped from 44% → 56% covered. SITE_VERSION 1.17.1 → 1.18.0.

2026-05-21[ INFRA · MONETIZATION ]
Sitewide affiliate buildout · sticky OCG banner · 51 amazon.ca links got rel="sponsored"

Big monetization day. Added 10 new Amazon products to inventory (OCG Library, Cisco 2960X, console cable, MikroTik, Klein tester, UPS, Pi 5, Beelink Ryzen), wired contextual affiliate-boxes across 20+ pages, deployed a sticky yellow OCG banner on the resources page and CCNA Hub, and bulk-applied rel="sponsored noopener" to every amazon.ca link for Google compliance. Impact tracking pixel verified. Pearson IT Cert (CJ), Pluralsight (Impact), Udemy (Impact) applications submitted.

2026-05-21[ FIX · OSPF AUDIT ]
OSPF content audit — three corrections

Got told some of the OSPF content was wrong. Audited articles 9/10/12 and lab-doc-8 against standard OSPF behaviour. Found three real issues: (1) article-9 incorrectly called multi-area a "CCNP topic" — rewrote to clarify it's in scope for CCNA understanding; (2) lab-doc-8 sample show ip ospf neighbor output showed all neighbours as FULL/DR, which is mathematically impossible given the router-IDs — corrected R10 and R20 to FULL/BDR; (3) show ip route ospf sample included a "C" connected route that command never returns. All fixed.

2026-05-19[ LAB · ARTICLE · LAUNCH ]
Lab 8 OSPF Multi-Area + Article 12 LSA Types — launched together

Six routers, five OSPF areas, three ABRs, one router in interface-mode OSPF. Built and shipped alongside Article 12, the LSA types deep-dive (Type 1/2/3/4/5/7, flooding scope, packet types, stub area variants). Domain 3 of the CCNA Hub deepened — multi-area is technically beyond the CCNA blueprint's hands-on config requirement, but the concepts and LSA terminology are squarely in scope. SITE_VERSION 1.17.0.

2026-05-18[ LAB · LAUNCH ]
Lab 7 — EtherChannel (PAgP / LACP / Static) shipped

All three EtherChannel modes in one Packet Tracer topology: a routed PAgP /30 between L3 distribution switches, an LACP active/passive trunk between access switches, and a static "on/on" bundle on the third. End-to-end ping across all three modes proves the whole stack. CCNA Hub Domain 2.4 flipped to COVERED. SITE_VERSION 1.16.0.

2026-05-13[ MEGA-PUSH ]
Five items in one day — Lab 6, Article 11, tools.html, three IPv6 practice tools

Cleared the IPv6 + static-routing backlog in one push: Lab 6 (static + floating static routes), Article 11 (IPv6 for the CCNA — compression, address types, EUI-64), tools.html landing page, and three new interactive tools — IPv6 subnetting drill, IPv6 address types quiz, EUI-64 converter. CCNA Hub Domains 1.8, 1.9, 3.3 all flipped to COVERED.

2026-05-11[ INFRA · LAUNCH ]
CCNA Study Hub launched · Newsletter migrated to beehiiv

The CCNA Hub went live — a full exam-blueprint map of the 200-301 with every topic linked to the article, lab, or tool that covers it. Same day, migrated the newsletter from Buttondown to beehiiv (custom domain mail.thelineman.ca, all DNS swapped to Cloudflare). Two structural changes in one push.

2026-05-06[ INFRA · SEO ]
Sitewide SEO sweep — page titles, meta descriptions, lab-doc H1s rewritten

Spent a day reviewing every article and lab-doc against Google Search Console data. Rewrote page titles to lead with keywords. Tightened meta descriptions. Rewrote lab-doc H1s to read like search queries ("Configure VLANs in Packet Tracer" rather than "VLAN Lab 1"). The compounding effect of this kind of cleanup is invisible until weeks later.

2026-04-29[ INFRA · MONETIZATION ]
Newsletter operational · resources.html monetization live

Newsletter signup wired across the site with a working welcome automation. Resources page populated with Amazon Associates (Fortinet 60F, FortiSwitch 124E, FortiAP 421E) and the first OCG book recommendations. The starting line for treating this as more than a hobby project.

2026-04 and earlier[ ORIGIN ]
The site started as a Fortinet homelab journal

First articles were the Fortinet-on-a-budget piece and the subnetting one — written for past-me, who'd been studying for the CCNA and was stuck on subnetting. The whole "build in public" angle wasn't planned; it just happened to be how I write. Static HTML, Apache2, Cloudflare Tunnel — no CMS, no framework, no analytics beyond self-hosted Umami. Same stack now as on day one.

This log updates every time something ships. Want it in your inbox instead? Subscribe to the newsletter for the weekly recap.