# developer-ai.txt for BSolve IT Limited # Spec: https://www.ai-visibility.org.uk/specifications/developer-ai-txt/ v1.8.0 # Last-Updated: 2026-07-26Lang: en-GB [overview] BSolve IT Limited is the registered parent company of five UK web brands, based in Kettering, Northamptonshire. The website (https://www.bsolveit.com/) is a hand-coded, server-rendered PHP site of 16 pages: an entity hub identifying the group, a directory of the five brands, and the one place all of the group's work is shown together. It has NO user accounts, NO e-commerce, NO public API, NO analytics, NO tracking and NO advertising. It sets no cookies of its own. There is ONE form, on /contact/, and ONE third-party script behind it: Google reCAPTCHA v3, fetched on first interaction with that form rather than on page load. Everything else, fonts included, is served from this origin. It replaced a 475-URL WordPress site in July 2026; 449 of those URLs now return HTTP 410 Gone. [public-api] status: not-available notes: BSolve IT Limited does not offer a public API. The contact form at /contact/ posts to /api/contact/, which is NOT a public API: it is reCAPTCHA-gated, rate limited, accepts a fixed set of four subjects and returns only {ok:true} or an error code. Email reaches the same inbox. The closest thing to a machine-readable interface is this AI Discovery suite plus /sitemap.xml, and every published figure carries its source URL and measurement date in the page's JSON-LD (Dataset nodes) as well as in the visible text. [public-areas] - / - entity hub. The hero is a showreel: one live group site at a time inside browser chrome carrying its real domain, advancing every 6s with an explicit labelled pause control, and a list of the eight domains beside it - /about/ - the company, its history since December 2002, and what it does not do - /brands/ and /brands// - the five brands, one page each - /work/ - every live site the group builds, hosts and runs, with measured outcomes - /standard/ - the build standard every site in the group has to meet - /people/mark-mcneece/ - author entity page - /contact/, /accessibility/, /editorial-standards/, /privacy-policy/, /terms/ - /410.php - the branded Gone page served by the 449 retired URLs - AI Discovery Files - /llms.txt, /llms.html, /ai.txt, /ai.json, /identity.json, /brand.txt, /faq-ai.txt, /robots-ai.txt, /developer-ai.txt (this file). /llm.txt 301s to /llms.txt, which is the behaviour the specification defines - /.well-known/security.txt - RFC 9116 disclosure contact - Sitemap at /sitemap.xml, indexing /page-sitemap.xml - /assets/ - static images, CSS, fonts, JavaScript [authentication] None. The site has no user accounts and no authenticated areas. [technology-stack] - Server: PHP 8.x on Apache (365i shared hosting, StackCDN edge cache via 20i) - Frontend: HTML5, vanilla CSS, vanilla JavaScript (no framework, no bundler) - Build step: optional CSS/JS minification. Live cache-busting via bsit_asset() appending ?v= - All page content rendered from PHP data arrays in includes/data/ so visible content and JSON-LD schema cannot drift - One form (/contact/ posting to /api/contact/): reCAPTCHA v3 gated, honeypot, header-injection guards, an allowlist of four subjects, rate limited to 5 per hour per IP counted only after a successful send. It sends TWO messages over SMTP, a notification to the office and an acknowledgement to the sender, both built by includes/email.php as HTML with a plain-text alternative. Credentials live in an untracked includes/secrets.env, never in the repository - The failure mode throughout is CLOSED: no reCAPTCHA secret means no submissions accepted, never silent acceptance - Motion layer: self-hosted GSAP + ScrollTrigger, loaded only on pages that opt in via $page_motion - Typography: three self-hosted woff2 files totalling 95 KB (Switzer, Instrument Sans, Martian Mono), all variable, all subsetted to latin - URL dispositions are generated from data/disposition.csv into .htaccess rules and verified by a harness that asserts all 475 old URLs return their intended status - Deploy: FTPS mirror of website/ followed by a StackCDN cache purge [documentation] - [Site (canonical)](https://www.bsolveit.com/) - [llms.txt - LLM-readable site summary](https://www.bsolveit.com/llms.txt) - [llms.html - human-readable rendering of llms.txt](https://www.bsolveit.com/llms.html) - [identity.json - canonical identity data](https://www.bsolveit.com/identity.json) - [faq-ai.txt - consolidated FAQ corpus](https://www.bsolveit.com/faq-ai.txt) - [sitemap.xml - canonical URL index](https://www.bsolveit.com/sitemap.xml) - [Contact page](https://www.bsolveit.com/contact/) [technical-contact] - [Contact form](https://www.bsolveit.com/contact/) - Email: support@bsolveit.com - Phone: +44 7785 326603 [metadata] version: 1.8.0 last_updated: 2026-07-26