Chris Olson b69e0baaa0 Optimize: drop Bootstrap CDN, add caching headers & image hints
Performance / self-hosting
- Remove the render-blocking Bootstrap 4 CDN stylesheet (~160 KB + extra
  DNS/TLS to a third party) and replace it with ~60 lines of self-hosted
  grid/utility CSS covering the small subset actually used (container, row,
  col-lg-5/6/7, order-lg, align-items-center, text-center, table-responsive,
  spacing, and the button base). Verified across desktop/tablet/mobile.
- Add a Cloudflare Pages `_headers` file: 30-day cache for static media and
  icons, 1-day for css/js, plus baseline security headers
  (X-Content-Type-Options, Referrer-Policy).
- Add decoding="async" to all lazily-loaded images.

The site now loads no third-party CSS; only Google Fonts remain external.
SCSS source kept in sync (new components/_grid partial; button base + reset
mirrored in main.scss).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-23 06:25:18 -04:00

pine-creek-hoa

Public marketing website for the Pine Creek community in Kannapolis, NC.

It is a fully static site (HTML/CSS/JS) designed to be hosted at no cost on Cloudflare Pages, and is responsive for desktop, tablet, and mobile.

Structure

  • index.html — the entire single-page site (nav, hero, sections, HOA board, contact, footer).
  • css/main.css — compiled, served stylesheet. Edited directly (no build tooling required).
  • css/main.scss + css/components/* — SCSS source, kept in sync with main.css.
  • js/main.js — mobile nav, smooth-scroll, and the photo galleries.
  • img/ — images and the hero video (hero.mp4, hero-mobile.mp4, hero-poster.jpg), optimized estate/vineyard photos in img/gallery/, and community-map.jpg.

Local preview

Any static file server works, e.g.:

# Python
python3 -m http.server 8080
# or Docker (nginx)
docker run --rm -p 8080:80 -v "$PWD":/usr/share/nginx/html:ro nginx:alpine

Then open http://localhost:8080/

Editing styles

css/main.css is what the browser loads, so changes can be made there directly. If you have the Dart Sass CLI installed and prefer the SCSS source, recompile with:

sass css/main.scss css/main.css

Updating the HOA board

The board roster lives in a <table class="board-table"> inside the #home-owners section of index.html. Replace the placeholder name/email cells with the real values (5 members: Name, Position, Email).

Description
No description provided
Readme 53 MiB
Languages
HTML 41.4%
CSS 26.2%
SCSS 23.6%
JavaScript 8.8%