Website, software, and funnels

Enoch Marketing

Enoch Marketing is a marketing agency for gyms, combining paid ads, local SEO, websites, and lead follow-up to help owners attract new members. Visit the website

Enoch Marketing

The starting point is a shared problem: growing a gym involves more than generating attention. Owners also have to follow up, understand what is happening with their members, and turn scattered information into work their team can actually do.

This project brings those needs into one story. The main website introduces the broader service offer. Gym Recon gives the operational side a software product. The Gym Growth Playbook offers a way to explore the thinking before committing to a conversation. Each has a different job, but all speak to the same audience.

The Enoch website

From positioning to a business system

The live site gives the business a clear point of view: gym growth breaks at the handoffs between discovery, inquiry, follow-up, and membership. The page architecture, service structure, product presentation, pricing, and resource library all make that position easier to understand.

For the site, my focus was making that system legible: naming the problem, organizing the offer, and connecting the content and products to a clear next step.

Enoch Marketing — The owner problem
The owner problem

The handoff is the real problem

The opening names the frustration behind a fragmented agency setup: separate vendors, tools, and reports leave the gym owner coordinating the work. That is a more specific starting point than a generic promise of more leads.

The page then reframes the offer around the path from attention to membership. This gives the site a clear strategic job: explain why the handoffs matter before presenting the services.

Enoch Marketing — Six connected systems
Six connected systems

Give every capability a place in the journey

The service grid puts ads, follow-up, social content, websites, intelligence, and custom apps in one view. Each capability has a distinct role, while the section headline makes their shared objective explicit.

That structure helps a prospective client understand the breadth of the business without asking them to buy every service. It also creates a consistent vocabulary for campaign pages, conversations, and future product work.

Enoch Marketing — Disconnected work vs. one coordinated system
Disconnected work vs. one coordinated system

Make the business model visible

The services page contrasts a fragmented approach with a coordinated one. It shows the practical difference in planning, page conversion, reporting, content, and ownership rather than relying on a broad claim about being a better agency.

The side-by-side format lets readers scan the operating model quickly. It is also a positioning tool: the value of Enoch is defined by the connections between activities, not simply by the number of services on the menu.

Enoch Marketing — The Enoch Intelligence presentation
The Enoch Intelligence presentation

Show how the software fits the service story

The site introduces Gym Recon, Enoch Scout, and the client Portal as three views of one growth system: revenue priorities, prospect follow-up, and owner visibility. The product previews make the software side of the business tangible.

Each product has a different user problem. Grouping them under Enoch Intelligence communicates the architecture without making the agency website depend on a long technical explanation. The Gym Recon section below can then go deeper.

Enoch Marketing — Clear plans and scopes
Clear plans and scopes

Package the offer around the constraint

The pricing page starts with the problem to solve, then presents four scopes of work. This gives visitors a reason for the differences between plans and helps them see the first useful level of support.

Visible inclusions and the separation of service fees from advertising spend make the commercial model easier to evaluate. The screenshot documents how the offer is presented; it does not claim a sales or conversion result.

Enoch Marketing — The gym growth guide library
The gym growth guide library

Turn expertise into a navigable resource

The library organizes guides by the questions gym owners face: discovery, paid acquisition, lead conversion, content, retention, and operations. Search and topic filters turn a growing set of articles into a usable reference.

This is the educational side of the business at a larger scale than one download page. The visible author bylines keep individual articles attributable, while the library design makes the topics part of a coherent Enoch resource system.

Enoch Marketing — From first call to team action
From first call to team action

Give the strategy a simple next step

The three-step plan closes the loop: diagnose the constraint, build the connected system, then help the gym team act on qualified opportunities. It distills a broad offer into a sequence a potential client can remember.

The call invitation follows that explanation. The page has already shown the problem, the capabilities, the product architecture, and the engagement model before asking for a conversation.

The software

Gym Recon

I built Gym Recon around a simple operating loop: find the signal, explain the evidence, assign the next action, and check the result. It connects the owner’s revenue priorities to the work a team can actually complete.

The screens below use Summit Forge, a fictional gym, to demonstrate the product. The core implementation centers on approved member, membership, attendance and invoice records; the broader demo also explores lead conversion, capacity and marketing visibility.

Gym Recon command center with the highest-priority mission and revenue indicators
Command center · a decision before a dashboard · demo data

Give the owner a next move.

The command center leads with a named mission, an accountable owner and a deadline. Financial indicators sit underneath, separating cash to collect, recurring revenue at risk and confirmed outcomes. The hierarchy turns a dashboard into a starting point for work.

I carried Enoch’s black-and-gold identity into the interface, then gave status colors specific jobs: coral for urgency, gold for attention and teal for confirmed states. Labels accompany every status. Condensed headings make priorities easy to scan while quieter body type supports dense tables and evidence.

Under the interface

Four exports. One traceable baseline.

Gym Recon’s application is built with JavaScript modules, bundled with esbuild, and server-side API functions. Supabase provides the database, authentication and private file storage. I separated intake, normalization, detection, team actions and verification so each stage has an explicit contract.

The data-to-action pipeline
  1. 01Secure intakeMembers · memberships · attendance · invoices
  2. 02Validate & normalizeCSV mapping · row checks · source IDs
  3. 03Approve baselineComplete batch · cutoff date · manifest
  4. 04Detect & prioritizeVersioned rules · evidence references
  5. 05Assign & recordOwner · deadline · action history
  6. 06Refresh & verifyLater source records · results ledger

The engineering decisions behind the flow

Scoped uploads
Signed upload URLs are issued only after invitation, gym-location membership and access checks. Objects are stored under organization, location and upload identifiers. The finalization step checks the file and scan state before it can progress.
A reviewable import
csv-parse and mapping rules turn different headers into a shared schema. The batch tracks rejected rows, duplicates, mapping versions, source dates and SHA-256 checksums. Approval requires all four categories to be staged, keeping partial imports out of the operational baseline.
Evidence travels with the task
Mission evidence retains the entity, source system, source record ID and record checksum. This gives the owner a path back from a recommendation to the record that produced it, and gives verification a stable reference after a refresh.
Payment operations with an overdue invoice mission and separate estimated, pending and confirmed totals
Payment recovery · invoice evidence becomes owned work

Collections that respect the source system.

The detector checks outstanding balances, invoice status, due dates and scheduled retries before creating a collection candidate. In the current default rules, failed invoices wait more than 24 hours and past-due invoices more than seven days. A future scheduled retry suppresses the candidate.

The mission links the amount to a member, billing record and owner. Staff record their action; they do not change the gym’s billing data through Recon. Keeping the source read-only avoids turning an operational recommendation into an automatic charge.

Retention dashboard showing monthly exposure and the workflow of member-save missions
Retention watch · attendance, membership value and follow-up

Model a change in routine, not just an absence.

The default detector compares a recent 14-day window with the preceding 56-day attendance baseline. It flags visits below 50% of the expected rhythm, with a stronger collapse signal below 30%. It also considers repeated cancellations, no-shows, expiring memberships and future bookings.

Eligibility rules exclude members on hold, those marked do-not-contact and members without enough tenure. Gym-wide attendance changes help dampen seasonal noise. These are explicit, configurable rules, so the team can understand why a member entered the queue.

Gym Recon sales funnel from new leads through contacted, booked, showed and joined
Lead conversion · connect acquisition to the handoff · demo data

Show where the journey stops moving.

The lead view breaks acquisition into new, contacted, booked, showed and joined. A healthy lead count can hide a weak booking or show-up rate; showing the transitions makes that bottleneck visible. Response time belongs beside conversion because the handoff is part of the marketing system.

This is the broader product demonstration, separate from the four-export payment and retention pipeline. I designed it to show how source attribution, next-step ownership and sales stages could share one operating view, without treating the demo’s conversion numbers as customer performance.

Class capacity screen with coach assignments, available spaces and peak booking times
Capacity · connect the growth decision to the gym floor

Growth has to fit the available room.

The capacity view puts bookings against available places and identifies the class that needs attention. Pairing demand with a named coach makes the next action concrete: fill a weak slot, review a full class or check coverage before promoting another session.

Across the demo, classes and team coverage use the same vocabulary of ownership and next actions as payments and retention. That shared structure keeps marketing, sales and daily operations connected in the product design.

Demand dashboard combining search impressions, website visits, social reach and channel attribution
Marketing visibility · channel context beside the next action

Bring the acquisition context into the workspace.

The demand screen brings search visibility, website traffic and social reach into the same visual language. The useful connection is between attention and high-intent activity: which channels are sending visits, and what should the business improve next?

The supplied screen uses a connected demo model. It illustrates the reporting experience, not proof that every external analytics provider is integrated. In the separate Enoch Portal, React, Next.js, TypeScript, Tailwind CSS and Recharts support the interface and reporting components; shadcn/ui informed interface exploration.

Weekly Recon brief separating new opportunities from execution with source-confirmed outcomes
Weekly Recon · opportunities and verified outcomes have different jobs

Close the loop with evidence.

The weekly brief separates what Recon found from what the team did. Behind that distinction, the results model uses confirmed, pending verification, auto-resolved, not-realized and adjusted states. Completing a task does not automatically create a confirmed financial result.

Confirmed cash is capped by the staff claim, invoice balance reduction and mission value. Protected MRR requires an active membership and verified attendance, and represents one monthly value. Provider-retry recovery is tracked separately from staff credit. This prevents estimated opportunity, recurring value and collected cash from being added into one misleading total.

Software acquisition & activation

The funnel continues after the form.

A software funnel has to qualify the gym and get it to a usable product. I treated the marketing request, account access, data approval and subscription as separate states, each with its own success condition.

Gym Recon · from product interest to an operational workspace
  1. 01Product storyProblem · product preview · fit
  2. 02Qualified requestGym · website · location · constraint
  3. 03Commercial handoffLead saved · checkout or follow-up
  4. 04Account & accessAuthentication · location permissions
  5. 05Approved dataFour files · review · publication
  6. 06Usable productTrial entitlement · missions · verification

Different boundaries, different implementation choices

Qualification before handoff
The website intake collects the gym, website, city, ad activity and primary frustration. A same-origin POST reaches a server function that validates fields, rejects oversized bodies, checks origin and filters a honeypot before forwarding the request to Formspree. A UUID ties the request to the provider handoff.
Success only after acceptance
The interface shows confirmation only after an accepted API response, and offers retry on failure. The older agency-site page has a configurable Stripe Payment Link handoff; the application has a separate server-created Checkout flow. These are distinct implementations, not one assumed automatic integration.
Activation tied to value
The application’s purchase journey starts the usable trial at approved baseline publication, rather than at Checkout. Entitlements distinguish onboarding, trial, paid, grace and pilot states. Operational records require an allowed state; billing and account recovery remain accessible when operational access is unavailable.
Server-owned billing state
Stripe webhook signatures are verified against the raw request body. Billing jobs use idempotency keys when synchronizing the trial. A return URL is a navigation event; the server-side billing lifecycle determines subscription state.

The educational resource

The Gym Growth Playbook

The Playbook is a useful first exchange with a gym owner. It teaches three growth systems before introducing a service conversation, while the landing page turns that interest into a permission-based lead.

Its promise stays close to the Gym Recon idea: look for value already inside the gym before spending more to replace what is leaking out.

Gym Growth Playbook landing page with the free offer, book cover, and first-name and email form
The offer and the lead form

Earn the email with a clear promise

The page offers systems, scripts, and a 30–60–90 day plan for CrossFit gym owners. A short form asks only for first name and email, keeping the first step light.

On submission, the form sends the lead to MailerLite. The consent text explains that the reader will receive the Playbook and related marketing emails, with an unsubscribe option. A confirmed signup leads to a thank-you page; the portfolio does not treat a page view as a conversion.

Three sample pages from the Gym Growth Playbook shown on its landing page
Real page previews of the resource

Show the value before asking

Three actual page previews let owners judge the resource before sharing their details. They show the retention system, a lifetime-value model, and a five-stream revenue scenario.

The example numbers are labeled as models, so the page offers a way to think through the gym’s economics without promising that every gym will get the same outcome.

Playbook's three growth levers: retention, additional revenue, and community referrals
Three systems, one practical path

Make the content the strategy

The retention engine, revenue stack, and community flywheel give the download a concrete structure. Each lever names a problem, shows an example, and points toward a system an owner can test with their own numbers and capacity.

That makes the Playbook useful as both education and lead capture: the follow-up can continue a topic the reader has already chosen to explore.

Playbook author section featuring Enoch Marketing founder Collin Charles
The person behind the resource

Close with a credible source

The author section introduces Enoch founder Collin Charles and explains the gym focus behind the resource. It gives the advice a clear source after readers have seen what is inside.

The same free-download invitation remains the next step throughout the page, keeping the campaign focused on one action.

Playbook funnel engineering

A download is a relationship, not a dead end.

The Playbook uses a lower-commitment entry point than the software. Educational content and relevant campaign links lead to one focused offer; the first-name and email form creates a follow-up channel. The thank-you page then introduces a free audit as a deeper next step.

Playbook · the acquisition and delivery sequence
  1. 01Relevant entryArticle · social content · campaign
  2. 02One clear offerPreview pages · name + email · consent
  3. 03Confirmed signupMailerLite success callback
  4. 04DeliveryStable download link · hosted PDF
  5. 05Useful follow-upRetention · revenue · community
  6. 06Next conversationFree audit · the gym’s own constraint

How the funnel is wired

Native form, custom experience
The landing page keeps the Enoch design while submitting MailerLite’s native form fields through its official webform script. Local validation catches missing names and invalid emails. The provider’s confirmed-success callback, rather than the submit button, controls the redirect.
A durable delivery link
Emails point to playbook-download.html. A central release configuration routes that page to the hosted PDF when the resource is ready. Replacing the edition changes one destination, keeping existing email links useful. The download gateway is delivery infrastructure, not an authentication wall.
Email architecture
The documented MailerLite workflow uses the Playbook Leads group as the delivery trigger. The immediate email provides access and a practical starting point in the retention chapter. The follow-up strategy continues through retention, additional revenue and community referrals before inviting an audit. That sequence is a documented design; provider activation and delivery metrics are not established by the website files.
Campaign continuity
Cross-links between educational pages and offers emit campaign_pathway_click with the source, destination, format and placement. This creates a consistent event vocabulary for the pathways between resources, rather than treating every CTA as an indistinguishable click.

Measure a completed step, not just a page visit

Before signup
Meta PageView and ViewContent describe the landing-page visit. They can support a retargeting audience that excludes confirmed leads. Visiting the offer and joining the list remain different events.
On confirmed success
The MailerLite callback creates a unique event ID and a timestamped browser marker. The thank-you page checks the confirmation context and a 30-minute marker window before allowing Meta Lead and GA4 generate_lead. A session record prevents a normal refresh from counting again.
At the handoff
The conversion signals record signup intent and provider-confirmed form success. They do not prove that an email reached the inbox, a PDF was read or a gym became a customer. Those are separate steps to reconcile in the email and sales systems.

What this work brought together

A single business story carried through positioning, website content, lead capture, software workflows and follow-up. I designed the public entry points and the internal decision tools around the same question: what is the next useful action for this gym?

The connected body of work

Brand & website
A shared black-and-gold language, clear service architecture, product explanations, pricing and an educational library.
Software & data
Secure CSV intake, approved baselines, configurable detectors, accountable missions and source-based outcome verification.
Funnels & measurement
A Playbook signup and delivery path, software qualification and activation flows, and separate events for attention, lead capture and commercial progress.

Tools used in this project

Explore all my tools