Sea Haven Industries company website — static S3 deployment
Find a file
Adam Moussa edc4f3f6b9
Some checks are pending
Deploy / deploy (push) Waiting to run
feat(site): add public sustainability page (DEV-209) (#41)
* feat(content): add sustainability page

* feat(nav): add sustainability to primary nav

Five links plus the CTA button no longer fit above the existing 768px
breakpoint; between 769px and ~855px the Get a Quote button wrapped to
two lines inside the 72px bar. Move the nav collapse to its own 900px
media query so the hamburger takes over before the bar runs out of room.
2026-08-14 20:12:29 -04:00
.github chore(deps): bump the minor-and-patch group with 4 updates (#39) 2026-08-11 13:59:07 -04:00
.security-review feat(infra): add HCP Terraform for prod static hosting (PLAT-91) (#37) 2026-08-07 15:09:54 -04:00
_data feat(site): add public sustainability page (DEV-209) (#41) 2026-08-14 20:12:29 -04:00
_includes feat(site): add public sustainability page (DEV-209) (#41) 2026-08-14 20:12:29 -04:00
about feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
assets feat(site): add public sustainability page (DEV-209) (#41) 2026-08-14 20:12:29 -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
scripts feat(infra): add HCP Terraform for prod static hosting (PLAT-91) (#37) 2026-08-07 15:09:54 -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
sustainability feat(site): add public sustainability page (DEV-209) (#41) 2026-08-14 20:12:29 -04:00
terms-of-service feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
terraform feat(infra): associate shared prod CloudFront WAF (PLAT-92) (#38) 2026-08-07 17:21:46 -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
AGENTS.md ci: add org PR policy caller (#34) 2026-08-04 11:56:33 -04:00
index.njk feat(seo): BreadcrumbList on interior pages + richer LocalBusiness 2026-06-12 17:23:11 -04:00
package-lock.json chore(deps): bump brace-expansion from 1.1.16 to 1.1.18 (#36) 2026-08-04 18:26:55 -04: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 feat(site): add public sustainability page (DEV-209) (#41) 2026-08-14 20:12:29 -04:00
vercel.json chore(infra): restrict Vercel to preview deployments (#40) 2026-08-14 13:32:44 -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