Sea Haven Industries company website — static S3 deployment
Find a file
2026-07-28 18:06:30 -04:00
.github style(ci): normalize workflow block spacing 2026-07-28 18:06:30 -04:00
.security-review chore(security): resolve open npm audit and code scanning alerts (#31) 2026-07-27 17:41:00 +00:00
_data Migrate to thin Eleventy build + a11y/SEO/perf/CI hardening (#20) 2026-06-12 17:02:06 -04:00
_includes perf: self-host fonts + lazy-load reCAPTCHA 2026-06-12 17:26:14 -04:00
about feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
assets perf: self-host fonts + lazy-load reCAPTCHA 2026-06-12 17:26:14 -04:00
careers feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
contact feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
eula feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
privacy-policy feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
services feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
social-accountability feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
terms-of-service feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
.eleventy.js feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
.gitignore Migrate to thin Eleventy build + a11y/SEO/perf/CI hardening (#20) 2026-06-12 17:02:06 -04:00
404.njk Migrate to thin Eleventy build + a11y/SEO/perf/CI hardening (#20) 2026-06-12 17:02:06 -04:00
index.njk feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
package-lock.json chore(security): resolve open npm audit and code scanning alerts (#31) 2026-07-27 17:41:00 +00:00
package.json INFRA-143: suppress reCAPTCHA site-key gitleaks FP + clear js-yaml DoS advisory (#27) 2026-07-08 16:21:21 -04:00
README.md docs: changelog for frontend polish 2026-06-12 17:26:34 -04:00
robots.txt Add SEO fundamentals, CloudFront cache invalidation, and cleanup 2026-04-04 17:22:43 -04:00
sitemap.xml Add Scheduling Coordinator careers posting (#19) 2026-06-12 16:09:48 -04:00

Main Website for Sea Haven Industries

HTML Eleventy JavaScript Deploy

A clean static website for Sea Haven Industries — authored as Eleventy templates that build to flat HTML, served from an AWS S3 bucket via CloudFront.

Stack

  • Eleventy (11ty) — thin static build: one base layout + partials, no client framework. Output is plain HTML/CSS/vanilla JS.
  • Design system — CSS custom properties (DM Serif Display + Inter, --rose: #cc3366)
  • Forms — Basin (AJAX submission, reCAPTCHA v3, honeypot spam protection)
  • Hosting — S3 + CloudFront, deployed via GitHub Actions OIDC (npm run build → sync _site/)

Develop

npm ci            # install (Eleventy, pinned)
npm run serve     # local dev server with live reload
npm run build     # build to _site/

Structure

Path Purpose
*.njk, */index.njk page templates (front-matter + <main> content)
_includes/base.njk document layout (head, nav, footer, skip-link, <main>)
_includes/{nav,mobile-menu,footer}.njk shared chrome partials
_data/site.json site-wide constants (nav, contact, social)
_data/images.json image dimensions for the {% image %} shortcode (CLS)
assets/css/ main.css (shared) + per-page CSS
assets/js/ nav.js (chrome), form.js (Basin forms)
.eleventy.js build config + shortcodes
_site/ build output (gitignored; what deploys)

Pages

Page Path
Homepage /
About /about/
Services /services/
Careers /careers/
Contact /contact/
Social Accountability /social-accountability/
Privacy Policy /privacy-policy/
Terms of Service /terms-of-service/
Job: Dispatcher /careers/dispatcher/
Job: Scheduling Coordinator /careers/scheduling-coordinator/
Job: Traveling Maintenance/Electrical Assistant /careers/traveling-maintenance-assistant/

Changelog

  • 12-JUN-2026: Frontend polish — self-hosted fonts (removed render-blocking Google Fonts), lazy-loaded reCAPTCHA, BreadcrumbList JSON-LD on interior pages + richer LocalBusiness (geo/areaServed/hasMap), removed dead CSS classes and !important nav hacks.
  • 12-JUN-2026: Migrated to a thin Eleventy build — shared chrome (head/nav/footer/JS) deduplicated into one base layout + partials (was hand-copied across 13 pages). Added skip-link + <main> landmark, accessible mobile-menu dialog, :focus-visible, WCAG AA footer contrast, 1200×630 og-cover social image, hero LCP preload, WebP logos, image width/height (CLS), and pre-deploy CI validation (htmlhint/JSON-LD/sitemap/links). Deploy now builds and syncs _site/ with split Cache-Control.
  • 14-JUL-2025: Initial pull from WordPress site, changed permalinks for proper navigation
  • 17-JUL-2025: Add GitHub Actions workflow for S3 sync on push, using AWS OIDC
  • 04-APR-2026: Major cleanup — stripped unused JS (~805KB), consolidated CSS, removed ~1,150 dead plugin files
  • 04-APR-2026: Added meta descriptions, OG/Twitter Card tags, alt text, robots directives, sitemap, and robots.txt
  • 04-APR-2026: Updated contact info sitewide, fixed broken links, removed WordPress API/generator meta tags
  • 04-APR-2026: Wired contact form to Basin (AJAX), replaced dead metform endpoint
  • 04-APR-2026: Converted all images to WebP, removed metform CSS, stripped WP version strings
  • 07-APR-2026: Full site redesign — rewrote all 9 pages as clean static HTML, removed all WordPress/Elementor markup
  • 07-APR-2026: New Figma-based homepage design with updated stats, logos, and layout
  • 07-APR-2026: Connected all forms to Basin with AJAX submission, reCAPTCHA v3, and honeypot spam protection
  • 07-APR-2026: Moved all images to /assets/images/ with clean filenames, restored original blue wave favicon
  • 07-APR-2026: Deleted all remaining WP assets (~8MB): plugins, themes, uploads, wp-includes
  • 30-APR-2026: Restructured /career/ and /jobs/ into unified /careers/ directory, updated all sitewide links
  • 30-APR-2026: Added traveling maintenance/electrical assistant job page, updated dispatcher and assistant postings to match Indeed listings
  • 30-APR-2026: Replace hardcoded copyright year in footer with dynamic script across all pages