Convert.com developer for hire
I write the code that goes into Convert's editors: Global Project JavaScript, Experience JS and Variation JS and CSS, plus the location triggers and _conv_q calls that decide when a test actually runs. My Convert work so far includes a React quote funnel and a Magento homepage. Available for direct briefs and as overflow capacity for CRO agencies running Convert programmes.
Case studies on Convert.com
Convert builds in my portfolio
- A quote step redesign shipped through Convert on a React funnel, built with no codebase access and made to hold up each time React renders the step again.
- Customer gallery homepage integration for a UK flooring retailer on Magento, with product modals and inline sample ordering on the native cart.
How builds work on Convert
Convert gives code three places to live, and choosing the right one matters more than on most tools. Global Project JavaScript loads wherever the tracking code is installed, so I keep it to shared helpers and listeners. Experience JS runs only for visitors bucketed into that experience, which suits logic both variations share. Variation JS and CSS hold the change itself. Convert calls them in that order, and its code editor docs note that the variation CSS is not exposed to the race conditions JavaScript is, so anything I can express as a class and a stylesheet goes there rather than into script.
Targeting lives in Locations. A location decides where an experience may run, and its trigger decides when: Upon Run fires as soon as the location is evaluated, DOM Element waits for a click, hover, change or scroll into view on a selector, and Manual or Callback leaves the moment to code. On a funnel where the step I am changing renders after an API call, I set a manual trigger and fire the experience myself once the content exists.
// Fire the experience once the late content has rendered
window._conv_q = window._conv_q || [];
window._conv_q.push({
what: "executeExperiment",
params: { experienceId: "123456789", triggerIntegrations: false }
});
Setting triggerIntegrations to false stops a repeat call from sending another experience view to your analytics integration, which matters when the same step can mount several times in one session. The full options are in Convert's manual activation article.
What to watch for on Convert
Custom code runs again on route changes. The current tracking script watches pushState, replaceState and popstate, and evaluates location triggers again on each new URL. Visual editor changes are deduplicated for you. Custom code is not: Convert's single page app documentation puts preventing duplicates on the developer. Every variant I write checks for its own markers before inserting anything and removes itself when the visitor leaves the target page.
Triggers need the current script. Location triggers do not work with the legacy tracking script, so on older installs I check which script is on the page before building a test around a DOM Element or Callback trigger.
Body hiding when the script loads async. Convert hides the whole body while it loads. When the script is loaded async through a tag manager, Convert's async guide swaps that for a snippet with a timeout, 500ms by default, and Convert says the only reliable way to avoid a flash is loading the script synchronously. I agree the loading mode with your developers up front and, where the page wide hide is switched off with _conv_prevent_bodyhide, hide only the elements the variant touches.
Revenue counts once per visitor unless told otherwise. Revenue goals take a pushRevenue call with the order value, product count and goal ID. By default Convert accepts one transaction per visitor, experience and goal, so for repeat purchase businesses I check with you whether force_multiple belongs on the call before the test starts, not after the report looks thin.
The engineering that stays the same
Outside Convert's own mechanics, every build gets the same treatment whichever tool runs it: activation that follows route changes, flicker hiding scoped to the changed elements, framework inputs set so React registers them, waits for late elements, and accessible markup. I cover that in my A/B test developer page and in the flicker guide.
Working together on a Convert test
Each brief starts with a short intake covering the hypothesis, audience, goal and which Convert location and trigger fit the page. The handover doc lists the experience and variation IDs, the location and trigger settings, the goals and any _conv_q calls placed outside the variation, so your team can rerun or retire the test without asking me. I work UK and US business hours, on Slack and email through your day.
Other CRO platforms I ship on
How pricing works
Submit a brief and you get an hour estimate back within one UK business day, with a total you approve before any work starts. A single test usually takes between 2 and 20 build hours: a copy or layout change sits near the bottom of that range, a new component or a multi step flow near the top. Regular volume earns a discounted rate, and there is no lock-in: one-off builds are as welcome as a weekly commitment.
Hire a Convert.com developer
For Convert variation builds, overflow capacity for CRO agencies, or to discuss a specific test idea. I respond within one UK business day.
Common questions
Can Convert run tests on a React or Vue single page app?
Yes. The current Convert tracking script listens for history changes and evaluates location triggers again on the new URL. What it does not do is protect custom code: Convert's own docs say you are responsible for stopping Variation JS or Experience JS from applying twice. I guard every variant for that, and where content arrives after the route change I trigger the experience in code.
Agencies contract and invoice Arafatcro Ltd, a UK limited company registered in England & Wales, on standard supplier terms. Company no. 17325504, verifiable on Companies House.