Ocean.org

Ongoing website maintenance and technical improvements for Ocean.org, a highly customized WordPress site, with a major focus on CI/CD cleanup, codebase normalization, and long-term stability.

Project Overview

Ocean Wise Conservation Association, the nonprofit behind Ocean.org, is dedicated to protecting marine life and promoting ocean literacy. Their website serves as a hub for educational content, conservation projects, and community engagement.

When we inherited the project, it came with years of accumulated technical debt: no repository strategy, undocumented logic, and an unstable deployment system. I was brought in to take over maintenance, modernize the workflow, and make it sustainable for long-term growth.

Project Scope

  • Full documentation of setup and infrastructure
  • Repository cleanup and branch consolidation
  • CI/CD pipeline rebuild and automation
  • WordPress theme + plugin version control and validation
  • Code quality improvements and ongoing updates
  • SEO upgrades (AIO) and internationalization (i18n) groundwork
  • Ongoing development and section upgrades

The project began as a handover from a previous vendor and has evolved into an ongoing collaboration with the OceanWise team, with new improvements rolling out continuously.

Unique Features

  • CI/CD pipeline rebuilt to:
    • Auto-generate secure .env files on deployment
    • Run validation at each step (test → lint → build → deploy)
    • Guarantee environment parity between dev and production
  • PR templates and changelogs implemented for consistency
  • SEO overhaul using AIO plugin optimization
  • Internationalization in progress for global audience reach
  • Custom WordPress theme organization and component mapping

Technology Stack

  • CMS: WordPress
  • Frontend: Tailwind CSS, HTML, CSS, JavaScript
  • Backend/Infra: Node.js, MySQL, YAML, Azure
  • Tooling: Git, Composer, custom CI/CD scripts

Why this stack? The original platform was WordPress-based, but our modern tooling (Tailwind, YAML pipelines, automated testing) made it easier to manage and scale over time without needing to rebuild from scratch.

Challenges

The project came with several headaches:

  • Outdated documentation on local setup or architecture
  • Inconsistent deployments and broken pipeline logic
  • Stale or orphaned branches made merging risky
  • Plugins and theme files were version-skewed and untracked

To fix it, we:

  • Documented everything, from local setup to theme/db structure
  • Cleaned and consolidated the repo into a single stable base branch
  • Added security rules to protect main branches
  • Automated .env setup and secret injection in CI/CD
  • Set validation gates after every build step
  • Verified all site dependencies (Tailwind, Composer, DB, env vars, etc.)
  • Made deployments predictable and observable

Now, the team can develop and ship confidently.

Client Collaboration

I acted as the main point of contact with the OceanWise  team, gathering requests, converting them into actionable tasks, and distributing them to developers. I handle code reviews, approve work, and support the team in delivering consistently.

Communication has been smooth and ongoing, which has made the process efficient even as we continue upgrading various parts of the site.

Results / Impact

  • CI/CD now stable and fast, no more surprises during deployment
  • Major SEO wins with AIO improvements
  • Clear documentation and testing made dev onboarding painless
  • Site availability and uptime improved significantly
  • Set foundation for internationalization, future-ready architecture
  • Team morale and efficiency up because devs aren’t fighting the setup

This shift from fragile legacy code to a robust, maintainable environment has had a lasting impact on OceanWise's digital presence.

Post-Launch Support

We’re actively working on:

  • New localized content and region-specific versions of the site
  • Upgrading several key pages and sections for better UX and accessibility
  • Planning future initiatives with OceanWise for broader engagement
  • Trouble shooting on-demand

Maintenance is ongoing, with a strong foundation in place for future growth.

Final Thoughts

So far this project taught me a lot, not just about technical cleanup and CI/CD, but also about leading a small dev team. Taking a project like this and transforming it into something clean, predictable, and scalable was incredibly rewarding.

There’s still more to do, but we’ve turned this site into a stable, modern platform that can keep growing, just like the mission it supports.

No items found.

Similar Projects

Explore Projects
Five Rivers Bank
Webflow
WebTricks
GA4
Cloudflare
Javascript

As part of the Skyrocket Digital team, I helped bring Five Rivers Bank’s online presence to life by building a fast, accessible, and easy-to-manage website in Webflow.

Whale Report Alert System
Expo
Github
Azure
Cursor
React Native

WRAS (Whale Report Alert System) is a real-time conservation tool created for OceanWise. The project was led by the team at Skyrocket Digital, where I worked as part of the development team. We delivered a mobile app, web platform, and admin dashboard that help mariners and researchers reduce whale collisions by sending real-time sighting alerts.

Red Rhino
Webflow
WebTricks
Hubspot
GA4
Javascript

Red Rhino Networks was undergoing a full rebrand, led by Skyrocket Digital, and their website needed to keep up. That’s where I came in. As part of the team, I took charge of developing the new website in Webflow, integrating HubSpot for mailing lists, and making sure their SEO was on point with Google Analytics, Tag Manager, and Facebook Pixels.

Learn how JavaScript functions work, when to use regular vs arrow functions, and how to write cleaner, reusable code.
Functions And Arrow Functions
Learn JavaScript’s primitive and reference types, how type conversion and coercion work, and the role of truthy and falsy values in your code. Perfect for beginners building a solid JS foundation.
JavaScript 101: Data Types Explained
Confused about var, let, and const? Learn how each keyword works in JavaScript, when to use them, and why they matter.
Master your keywords