Go to file
Justin 9dd8fae16e Fix CSP violations and font 404 from Cloudflare Radar scan
Two conflicting <meta> CSP tags in index.html (plus a separate _headers
policy) meant the browser enforced their intersection, which blocked
the Cloudflare Insights beacon script and its inline bootstrap. k5bss.html
had the same gap in its own CSP. Consolidated to one consistent policy per
surface that allows static.cloudflareinsights.com / cloudflareinsights.com,
and moved index.html's inline script and onerror handler into js/main.js
so script-src no longer needs 'unsafe-inline' there.

Also added the missing fonts/ibm-plex-mono-400.woff2 that style.css has
referenced since it was wired up, which was 404ing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-31 14:25:10 -05:00
css added font to css 2026-08-30 16:06:07 -05:00
fonts Fix CSP violations and font 404 from Cloudflare Radar scan 2026-08-31 14:25:10 -05:00
js Fix CSP violations and font 404 from Cloudflare Radar scan 2026-08-31 14:25:10 -05:00
photo fixed a picture issues 2026-08-30 16:35:48 -05:00
.ignore update 2026-08-31 13:57:34 -05:00
Justin_Frasier_Resume.pdf updated 2026-05-02 23:50:15 -05:00
README.md update 2026-04-27 19:12:07 -05:00
_headers Fix CSP violations and font 404 from Cloudflare Radar scan 2026-08-31 14:25:10 -05:00
favicon-32x32.png update 2026-04-27 19:12:07 -05:00
favicon-64x64.png update 2026-04-27 19:12:07 -05:00
favicon-256x256.png update 2026-04-27 19:12:07 -05:00
favicon.ico update 2026-04-27 19:12:07 -05:00
favicon.svg updated 2026-05-02 23:50:15 -05:00
index.html Fix CSP violations and font 404 from Cloudflare Radar scan 2026-08-31 14:25:10 -05:00
k5bss.html Fix CSP violations and font 404 from Cloudflare Radar scan 2026-08-31 14:25:10 -05:00
robots.txt header 2026-08-30 15:11:28 -05:00
security.txt update 2026-04-27 19:12:07 -05:00
sitemap.xml update 2026-04-27 19:12:07 -05:00

README.md

k5bss.com

Personal portfolio and ham radio station site for Justin Frasier — IT Support Analyst and amateur radio operator (K5BSS, General Class).

Live at: k5bss.com


Overview

Two static pages with a dark terminal aesthetic. No frameworks or build tools — just HTML, CSS, and vanilla JavaScript.

Structure

k5bss.com/
├── index.html                  # Resume/portfolio page
├── k5bss.html                  # Ham radio station dashboard
├── Justin_Frasier_Resume.pdf   # Downloadable resume
├── css/
│   └── style.css               # Styles for index.html
├── favicon.ico
├── favicon-32x32.png
├── favicon-64x64.png
└── favicon-256x256.png

Pages

Resume / Portfolio (index.html)

  • About — summary, tags, and certifications at a glance
  • Experience — work history (Margaritaville, Boomtown, xententLABS)
  • Technical Skills — languages, OS, hardware, tools, networking, IT support, security
  • Education — BPCC A.A.S. Cyber Technology, Northwood High School
  • Certifications — CompTIA A+, PCPro, Udemy courses, amateur radio, locomotive
  • Contact — email, phone, address, GitHub, LinkedIn, self-hosted Git

Fonts: IBM Plex Mono and IBM Plex Sans via Google Fonts. Sticky sidebar with scroll-spy nav via IntersectionObserver.

Ham Radio Station Dashboard (k5bss.html)

Three-tab single-page app for station stats and the contact logbook:

  • Dashboard — QSO count, DXCC entities, states worked; bar charts for modes and bands; top countries list; monthly QSO activity canvas chart
  • Logbook — searchable, filterable, paginated contact log (callsign, name, country, QTH, LoTW status)
  • About — station info and operating preferences

Fonts: Share Tech Mono, Orbitron, and Barlow via Google Fonts. Styles and JavaScript are self-contained within the file.

Responsive Design

index.html adapts across three breakpoints defined in css/style.css:

Breakpoint Behavior
≤1024px (tablet) Sidebar narrows from 280px to 230px; main content padding reduced
≤768px (mobile) Sidebar unsticks and stacks above content; nav links reflow into a horizontal wrapping row; contact grid collapses to one column
≤480px (small phone) Tighter padding and font sizes; skills grid columns shrink to minmax(140px, 1fr)

All other components — tags, socials, and the skills grid — use flex-wrap or auto-fill and reflow fluidly without breakpoints.

Deployment

Static files — drop the repo contents onto any web server or host (Nginx, Apache, Caddy, GitHub Pages, etc.). No build step required.