Part 6 of 7 · Forex Rates Site

When My Own Project Became a Product I Could Sell

Somewhere between the first rate site and the second, the thing I was building changed category. The silver build was a site. The forex build was the same kit configured differently, and a kit that produces sites on demand is a product. This post is what turning my own tooling into something sellable actually required, and it was less about new code than about removing myself from it.

The audit question for productisation is simple and brutal, what in this system only works because it is mine? Every hardcoded name, colour, and assumption is a place a buyer cannot make it theirs. So the work was moving my decisions into settings, branding first:

// everything a buyer must change lives in options, not code
$defaults = array(
    'site_brand'    => 'Rates Today',
    'brand_color'   => '#12233d',
    'accent_color'  => '#d4a437',
    'currency_list' => array('USD','GBP','EUR','SAR','AED'),
    'company_phone' => '',
);
add_option('pfr_settings', $defaults);   // add_option: never stomps a buyer's values

// the theme reads settings, not constants
$s = get_option('pfr_settings');
printf(':root{--pfr-navy:%s;--pfr-gold:%s;}',
    esc_html($s['brand_color']), esc_html($s['accent_color']));

The design tokens from the last post made rebranding one screen, because a token system reskins wholesale. The installer from the silver project became the product’s first impression, activate, and a complete configured site exists, which for a buyer is the difference between a product and a repository. Documentation, the part builders skip, turned out to be product surface too, an install order, a settings walkthrough, and honest requirements, because a buyer’s first confusion is a refund.

And the honest state of the venture, because this series does not inflate. The productised kit is real, settings-driven, installer-equipped, rebrandable in minutes, and I prepared it for marketplace listing rather than pretending sales that had not happened. What the exercise definitely produced was a better codebase, every hardcoded assumption it flushed out was a latent bug for my own sites too, and a category change in my head, I stopped building sites and started building the machine that builds them, which is worth more than the first sale either way.

A few things people ask me about this

What is the minimum to call a site kit a product? Settings for everything identity-related, an installer that yields a working site on activation, safe updates that preserve configuration, and honest documentation. Features beyond that are marketing, these four are the product.

Why add_option instead of update_option for defaults? add_option writes only when the option is absent, so reactivations and updates never overwrite what the buyer configured. update_option in setup code resets their site every update.

Next

That completes the forex build, engine, honesty, liveliness, design, and a product on the shelf. The finale looks at what the second rate site really gave me.

Leave a Reply

Your email address will not be published. Required fields are marked *