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

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.

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.

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.

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.

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.

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.

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.

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.

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.
- 01Secure intakeMembers · memberships · attendance · invoices
- 02Validate & normalizeCSV mapping · row checks · source IDs
- 03Approve baselineComplete batch · cutoff date · manifest
- 04Detect & prioritizeVersioned rules · evidence references
- 05Assign & recordOwner · deadline · action history
- 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.

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.

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.

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.

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.

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.

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.
- 01Product storyProblem · product preview · fit
- 02Qualified requestGym · website · location · constraint
- 03Commercial handoffLead saved · checkout or follow-up
- 04Account & accessAuthentication · location permissions
- 05Approved dataFour files · review · publication
- 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.

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.

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.

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.

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.
- 01Relevant entryArticle · social content · campaign
- 02One clear offerPreview pages · name + email · consent
- 03Confirmed signupMailerLite success callback
- 04DeliveryStable download link · hosted PDF
- 05Useful follow-upRetention · revenue · community
- 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.