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 a thousand lines of Node (ES modules, one npm dependency) plus two small PHP files: 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. You edit the template by editing a JavaScript file. That is the whole model.

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

What each script does

FileSizeJob
new-article.mjs85 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.mjs102 linesThe page template itself, as a template literal. This is where you change markup, class names and wording.
build-clubs.mjs222 linesThe directory generator: city map, card rendering, hub page, structured data, source and status fields per record.
og-generate.mjs93 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
33 + 47Sitemap 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.mjs33 linesRequests every external link in the directory and prints the dead ones.
site-lib.mjs90 linesShared helpers: 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.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.

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:

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 full example site, the .htaccess and an English README. Instant download, full source, no subscription. Refund within 14 days if it does not work for you.

Get the engine, $39
← Back to the site