Engine

Node scripts that build a content site and a city directory out of JSON files

Updated: July 2026 · Українська версія

This is the code that runs blackfoxvr.com, packaged so you can run it on your own domain. About 850 lines of Node (ES modules, one npm dependency) plus five small PHP files, every one of them optional: a stats collector, its beacon, a private dashboard, a link redirector and a Telegram cron poster. You feed it JSON, it writes plain HTML, a sitemap, an Atom feed and a social image. No CMS, no database, no build framework, no admin panel.

What it actually is

A set of command line scripts, not a product with a UI. You run node tools/new-article.mjs article.json and a finished HTML page appears, linked from the homepage, listed in the sitemap and the feed, with its own OG image. Branding, navigation, footer lines, labels and folder names come from one settings file, tools/content/site-config.json. Markup lives in the template scripts, which you edit as JavaScript. That is the whole model.

Output is static files. Any shared host with Apache or LiteSpeed works, and the included .htaccess handles canonical redirects, cache policy and security headers.

What each script does

FileSizeJob
new-article.mjs~110 linesReads an article JSON, writes the page, inserts the homepage card, then triggers the OG, sitemap and feed generators. --check runs the whole site validator.
build-article.mjs~80 linesThe article template itself, as a template literal. This is where you change markup and class names; headings and labels come from the settings file.
build-pages.mjs~100 linesThe static page template: home page, about, privacy and anything else you list in content/pages.json. Skips existing files unless you pass --force.
build-clubs.mjs~190 linesThe directory generator: hub page, one page per city, card rendering, structured data, source and status fields per record. City names and slugs live in content/cities.json, not in the code.
og-generate.mjs~120 lines1200x630 social images. Composes an SVG (gradient background, brand mark, tag line, title wrapped and auto shrunk to fit) and rasterizes it with resvg.
build-sitemap.mjs
build-feed.mjs
~35 + ~45Sitemap and Atom feed built from the files actually on disk and the JSON-LD inside them, so they cannot drift from reality.
check-clubs-links.mjs~35 linesRequests every external link in the directory and prints the dead ones.
site-lib.mjs~140 linesShared helpers: loads content/site-config.json, builds the header and footer, slugify with a transliteration table, the OG block, the three JSON-LD builders, page read and write.
lib/tg-post.phpPHP, cronPosts to a Telegram channel. A queue of .txt files published in name order and moved to a sent folder. When the queue empties it rotates evergreen articles in a loop from a state file, so the channel never goes silent. At two posts remaining it emails you once a day.
lib/stats.php + t.php + stats.phpPHPPage views and funnel events. Uniques are stored as sha1(date + IP + user agent), which rotates daily and cannot be turned back into an IP. One JSON file per day, obvious bots filtered, private dashboard behind a key.
r.phpPHPOutbound link redirector for affiliate and campaign links. Targets are a whitelist in data/offers.json, every click is counted as an event, and the referrer is stripped on the way out.

Line counts are rounded and move a little with every edit. Nine Node scripts, about 850 lines in total, plus the PHP files.

Who it is for, and who should not buy it

Buy it if:

Do not buy it if:

What is in the zip, and what you will have to edit

Included:

Not included, so there are no surprises: the articles and the real 53 record directory of blackfoxvr.com. That is content, and it stays with the site that wrote it. The demo dataset in the zip is six invented records in English, enough to show the shape and to make the generator run.

Honest list of what you will hit in the first hour:

Live proof: the site you are reading

blackfoxvr.com is not a demo build. It is the production site, running this exact code, and every number below comes from it.

What this is not proof of: traffic. The site launched in July 2026 and its search numbers are still small. Buy the engine because the publishing workflow saves you an hour per article, not because someone showed you a graph.

Price, license, support

Price: $39

One zip: the Node generators, the PHP cron and stats scripts, the site skeleton with the stylesheet and the .htaccess, six example JSON files, and a README in English and Ukrainian. Full source, no subscription. Honest about the checkout: there is no instant download yet. You email us, we send payment details (bank transfer or USDT), and the zip goes back to you by email once the payment lands, usually the same day. Card checkout opens in August 2026, when the paperwork is done. Refund within 14 days if it does not work for you.

Get the engine, $39
← Back to the site