Orbital Surveys Website Modernization Implementation Plan
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: Rebuild the Orbital Surveys dev website as a cinematic, accessible geospatial portfolio focused on aerial mapping, real production software and enquiry conversion.
Architecture: Retain Jekyll and the current GitHub Pages workflow, but replace the Sleek theme runtime with new semantic Liquid layouts, data-driven content, a standalone modern stylesheet and a small vanilla JavaScript interaction layer. Keep all existing public service URLs and the live Formspree endpoint while building and verifying exclusively on the dev worktree.
Tech Stack: Jekyll/Liquid, YAML data, semantic HTML, modern CSS, vanilla JavaScript, Ruby verification script, GitHub Pages.
Task 1: Add a failing modern-site verification harness
Skills: @superpowers:test-driven-development
Files:
- Create:
script/verify-modern-site.rb - Modify:
DEV_WORKFLOW.md
Step 1: Create the output verification script
Write a standard-library Ruby script that accepts the built-site directory as its first argument and checks:
required_pages = %w[
index.html
contact/index.html
aerial_surveys/index.html
terrestrial/index.html
hydro/index.html
computer/index.html
minetrak/index.html
]
required_home_content = [
'See the ground clearly. Build with confidence.',
'id="capabilities"',
'id="process"',
'id="software"',
'CloudConstruct',
'CloudCanvas',
'Pit bench design',
'Trench design',
'id="contact"'
]
Also assert that the generated homepage references /assets/css/site.css and /assets/js/site.js, does not reference jQuery or Velocity, and that the generated contact form retains https://formspree.io/f/mzdnzpya.
Exit non-zero and print every missing expectation; print a concise pass summary when all assertions hold.
Step 2: Build the current site
Run:
rtk proxy powershell -NoProfile -Command "bundle exec jekyll build --destination '..\gps-webpage-modern-build'"
Expected: Jekyll build succeeds.
Step 3: Run the verifier and confirm it fails
Run:
rtk proxy ruby script/verify-modern-site.rb "..\gps-webpage-modern-build"
Expected: FAIL because the modern homepage sections and new assets do not exist yet.
Step 4: Correct the documented dev output path
Update DEV_WORKFLOW.md to use ..\gps-webpage-dev-build, avoiding spaces in the destination directory name while still keeping generated output outside the repository.
Step 5: Commit the verification foundation
rtk git add script/verify-modern-site.rb DEV_WORKFLOW.md
rtk git diff --staged --check
rtk git commit -m "test: add modern site verification harness"
Task 2: Replace the global brand and document shell
Skills: @agent-skills:frontend-ui-engineering
Files:
- Create:
assets/img/orbital-mark.svg - Create:
assets/css/site.css - Create:
assets/js/site.js - Modify:
_includes/head.html - Modify:
_includes/header.html - Modify:
_includes/footer.html - Modify:
_config.yml
Step 1: Create the Orbital vector mark
Build a compact SVG combining an orbital ellipse, survey crosshair and central datum point. Use currentColor, include an accessible <title>, and keep the geometry legible at 32px.
Step 2: Replace the head asset loading
Remove the old inline critical CSS/loadCSS block. Load:
<link rel="stylesheet" href="/assets/css/site.css">
<script defer src="/assets/js/site.js"></script>
Retain `
, favicons, viewport and optional Google Tag Manager support. Change theme/application metadata from Sleek to Orbital Surveys`.
Step 3: Build the semantic header
Use a logo link with mark and wordmark, a real <button> for the mobile menu, aria-expanded, and navigation anchors for #capabilities, #process, #software, #work, #about and #contact. On non-home pages, prefix anchors with /.
Step 4: Build the global footer
Add concise company positioning, navigation, the existing email address and copyright. Avoid inactive social icons.
Step 5: Add CSS foundations
Define tokens for basalt, warm paper, terrain green and survey orange; typography, spacing, containers, focus states, buttons, header, footer, responsive breakpoints and reduced-motion defaults.
Step 6: Add minimal global JavaScript
Implement only the mobile-navigation state and header scroll state initially. Do not add reveal/parallax behavior until Task 7.
Step 7: Build and inspect the shell
Run the Jekyll build command. Expected: build succeeds and every page loads the new CSS/JS without referencing the old runtime bundle.
Step 8: Commit the brand shell
rtk git add assets/img/orbital-mark.svg assets/css/site.css assets/js/site.js _includes/head.html _includes/header.html _includes/footer.html _config.yml
rtk git diff --staged --check
rtk git commit -m "feat: replace legacy shell with Orbital brand"
Task 3: Build the cinematic homepage foundation
Skills: @agent-skills:frontend-ui-engineering
Files:
- Create:
_data/process.yml - Create:
_data/capabilities.yml - Modify:
_layouts/default.html - Modify:
index.md - Modify:
assets/css/site.css
Step 1: Add factual process data
Create four entries: Plan, Capture, Process and Deliver. Each entry must contain an eyebrow, title, short factual description and an existing image path.
Step 2: Add capability data
Create entries for aerial surveys, orthophotos, terrain/elevation models, contours/spatial deliverables, GPS control, hydrographic surveys and mapping/spatial data. Link each entry to an existing service URL where one exists.
Step 3: Rebuild the homepage layout
Create semantic sections for:
- Hero with the approved headline and two actions.
- Positioning statement.
- Scroll-led process sequence with
id="process". - Capability presentation with
id="capabilities".
Use the existing ortho_1920x1080.jpg, drone, orthophoto and terrain imagery. Include meaningful alt text and explicit aspect-ratio wrappers.
Step 4: Style the homepage foundation
Add the full-viewport hero, survey-grid overlay, editorial typography, process layout, capability rows and responsive stacked variants. Keep all content visible before JavaScript runs.
Step 5: Build and inspect at representative widths
Verify source order and responsive behavior at 375px, 768px and 1440px.
Step 6: Commit the homepage foundation
rtk git add _data/process.yml _data/capabilities.yml _layouts/default.html index.md assets/css/site.css
rtk git diff --staged --check
rtk git commit -m "feat: build aerial mapping homepage foundation"
Task 4: Add the CloudConstruct and CloudCanvas product story
Skills: @agent-skills:frontend-ui-engineering
Files:
- Create:
_data/software.yml - Create:
assets/img/software/cloudcanvas-surface.png - Create:
assets/img/software/cloudcanvas-ortho.png - Modify:
_layouts/default.html - Modify:
assets/css/site.css
Step 1: Add factual product data
Define CloudConstruct as the production pipeline for survey imagery, control, alignment, dense reconstruction, reporting and orthophoto output.
Define CloudCanvas capability groups as:
- Terrain analysis
- Pit bench design
- Trench design
- Drillhole and delivery workflows
State that both are used in-house and available to clients by pricing enquiry.
Step 2: Copy genuine CloudCanvas visuals
Copy, without modifying the source repository:
D:\CloudCanvas Backup\CloudCanvas\src\cloudcanvas\screenshot1.pngtoassets/img/software/cloudcanvas-surface.pngD:\CloudCanvas Backup\CloudCanvas\src\cloudcanvas\screenshot.pngtoassets/img/software/cloudcanvas-ortho.png
Use existing GPS-site point-cloud and DEM imagery for CloudConstruct rather than fabricating a UI screenshot.
Step 3: Build the software section
Add id="software", the approved heading Built for our own production work. Available to yours., one CloudConstruct story and one larger CloudCanvas story. Include factual pit-bench/trench details and Enquire about pricing links to the contact section.
Step 4: Style the software narrative
Create a dark technical section with large imagery, compact capability labels, a process connector and desktop sticky behavior that degrades to a normal stacked layout on smaller screens.
Step 5: Build and verify copy accuracy
Confirm that no automatic purchasing, unsupported AI capability or unverified survey-grade claim appears.
Step 6: Commit the software showcase
rtk git add _data/software.yml assets/img/software _layouts/default.html assets/css/site.css
rtk git diff --staged --check
rtk git commit -m "feat: showcase Orbital production software"
Task 5: Complete the homepage portfolio, credibility and contact journey
Files:
- Modify:
_layouts/default.html - Modify:
_includes/form.html - Modify:
assets/css/site.css
Step 1: Add the work section
Create id="work" using the existing orthophoto, terrain model, point-cloud, drone and mine imagery in an editorial image mosaic. Describe outputs rather than inventing project/customer case studies.
Step 2: Add the about/credibility section
Create id="about" and use only the factual history that Orbital has provided surveying and mapping services since 1995.
Step 3: Redesign the contact form
Preserve the exact Formspree action and current fields. Improve grouping, helper text, focus/error states and button wording. Add an enquiry-type selector with survey project, CloudConstruct pricing and CloudCanvas pricing options.
Step 4: Add the homepage contact section
Create id="contact", include the form and provide the direct email fallback.
Step 5: Build and verify the endpoint
Inspect generated HTML and confirm https://formspree.io/f/mzdnzpya remains the form action.
Step 6: Commit the completed homepage
rtk git add _layouts/default.html _includes/form.html assets/css/site.css
rtk git diff --staged --check
rtk git commit -m "feat: complete Orbital homepage journey"
Task 6: Redesign and rewrite all supporting pages
Files:
- Modify:
_layouts/page.html - Modify:
_layouts/post.html - Modify:
_includes/card.html - Modify:
contact.md - Modify:
_posts/2014-01-01-aerial_surveys.md - Modify:
_posts/2011-11-26-terrestrial.md - Modify:
_posts/2014-06-18-hydro.md - Modify:
_posts/2013-01-02-computer.md - Modify:
_posts/2015-02-01-minetrak.md - Modify:
404.md - Modify:
assets/css/site.css
Step 1: Replace generic page and post layouts
Use a compact image-led masthead, breadcrumbs/eyebrow, readable content measure, related-capability links and consistent contact CTA. Remove blog dates and reading-time framing from service pages.
Step 2: Rewrite aerial surveys
Lead with aerial mapping and photogrammetry; retain factual orthophoto, DTM/DEM, photography, accuracy and deliverable information.
Step 3: Rewrite terrestrial, hydrographic and mapping services
Improve language and hierarchy while preserving supported claims. Rename the visible Computer Services title to Mapping & Spatial Data while retaining /computer/.
Step 4: Reframe MineTrak
Present it as a specialist field/mining navigation product and preserve its factual capabilities and comparison imagery. Avoid current-platform compatibility promises that the old copy cannot support.
Step 5: Rewrite contact and 404 pages
Keep contact concise and provide a useful path back to capabilities/home from 404.
Step 6: Build and verify all legacy URLs
Run the verifier. Expected: all required paths exist and contain the new global shell.
Step 7: Commit supporting pages
rtk git add _layouts/page.html _layouts/post.html _includes/card.html contact.md _posts 404.md assets/css/site.css
rtk git diff --staged --check
rtk git commit -m "feat: modernize Orbital capability pages"
Task 7: Add purposeful scroll motion and interaction polish
Skills: @agent-skills:frontend-ui-engineering
Files:
- Modify:
assets/js/site.js - Modify:
assets/css/site.css - Modify:
_layouts/default.html
Step 1: Add reveal hooks without hiding baseline content
Apply data-reveal, data-reveal-group, data-route-line and limited data-parallax attributes. Only the .js state may opt elements into pre-reveal styling.
Step 2: Implement Intersection Observer reveals
Add .is-visible once elements cross a conservative threshold. Stagger groups with CSS custom properties rather than timers.
Step 3: Implement restrained scroll depth
Use one passive scroll listener with requestAnimationFrame to update only the hero and a small number of marked image layers. Clamp movement and skip all scroll transforms when reduced motion is requested.
Step 4: Add drawn route/grid motion
Animate SVG stroke offset only when the owning section becomes visible. Keep the final route visible when animation is disabled.
Step 5: Add reduced-motion and no-JS verification
With prefers-reduced-motion: reduce, remove transforms/delays and expose final states. With JavaScript disabled, all text, images and links remain visible and usable.
Step 6: Commit interaction polish
rtk git add assets/js/site.js assets/css/site.css _layouts/default.html
rtk git diff --staged --check
rtk git commit -m "feat: add accessible geospatial motion"
Task 8: Remove legacy runtime dependencies and perform full verification
Skills: @agent-skills:browser-testing-with-devtools, @superpowers:verification-before-completion
Files:
- Modify:
package.json - Modify:
package-lock.json - Modify:
README.md - Retain but stop loading:
assets/js/bundle.js,assets/css/main.css, legacy_sassand_jssources unless deletion is separately approved.
Step 1: Remove unused browser dependencies
Remove jQuery, Velocity, lazySizes and browserify/Babel runtime-build dependencies only if no new template references them. Regenerate package-lock.json with the repository’s package manager.
Step 2: Replace the placeholder test command
Set npm test to build to ..\gps-webpage-modern-build and run script/verify-modern-site.rb, using a Windows-compatible script arrangement where necessary.
Step 3: Update development documentation
Replace theme-template README content with the Orbital site structure, dev preview command, content update locations and publish workflow.
Step 4: Run full static verification
Run:
rtk git diff --check
rtk proxy powershell -NoProfile -Command "bundle exec jekyll build --destination '..\gps-webpage-modern-build'"
rtk proxy ruby script/verify-modern-site.rb "..\gps-webpage-modern-build"
Expected: all commands exit 0.
Step 5: Run browser verification
Start the dev server from the dev worktree and verify:
- 375px, 768px, 1024px and 1440px layouts.
- Mobile navigation by keyboard and pointer.
- Hero, process, software and work sections.
- CloudConstruct/CloudCanvas pricing links reach contact.
- Service-page URLs and contact page.
- Reduced-motion presentation.
- No console errors or missing assets.
Step 6: Confirm live deployment files are untouched
Run:
rtk git diff master..dev -- .github/workflows/pages.yml CNAME
Expected: no differences.
Step 7: Commit cleanup and documentation
rtk git add package.json package-lock.json README.md
rtk git diff --staged --check
rtk git commit -m "chore: retire legacy frontend tooling"
Final Checkpoint
- The new Orbital identity and homepage match the approved geospatial editorial direction.
- Aerial mapping and photogrammetry lead the content hierarchy.
- CloudConstruct and CloudCanvas use factual capabilities and real visuals.
- Pit-bench and trench design are represented accurately.
- All existing service URLs remain valid.
- Formspree endpoint is preserved.
- Motion is smooth, optional and accessible.
- Jekyll build and verification script pass.
- Browser checks pass at mobile and desktop widths.
master,CNAMEand the Pages workflow remain untouched.