{
    "ready": true,
    "site": {
        "id": 0,
        "domain": "discoliam.com",
        "display_name": "Discoliam",
        "primary_country_code": "",
        "category_name": "Personal: Portfolios & CVs"
    },
    "metrics": {
        "global_rank": 32862,
        "country_rank": 17366,
        "category_rank": 52,
        "daily_pageviews_per_visitor": 3.92,
        "daily_time_on_site_seconds": 331,
        "bounce_rate": 31.8,
        "search_visits_percent": 40.97,
        "total_sites_linking_in": 1,
        "monthly_unique_visitors": 137,
        "recorded_at": "2026-03-19 16:41:42"
    },
    "audit": {
        "score": 81
    },
    "traffic_sources": {
        "direct_percent": 27.84,
        "search_percent": 35.34,
        "social_percent": 10.21,
        "referral_percent": 12.04,
        "email_percent": 5.96,
        "paid_percent": 8.61
    },
    "seo_profile": {
        "backlinks_total": 1,
        "referring_domains": 1,
        "dofollow_backlinks_percent": 100,
        "organic_keywords": 82,
        "indexed_pages": 17,
        "page_speed_score": 70,
        "mobile_friendliness_score": 81,
        "authority_score": 45,
        "spam_risk_score": 27
    },
    "crawl_report": {
        "robots_status": 404,
        "sitemap_status": 200,
        "sitemap_total_urls": 17,
        "crawl_blocked": false,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": "",
        "notes": [
            "robots.txt could not be confirmed."
        ],
        "created_at": "2026-03-19 16:41:42"
    },
    "keywords": [
        {
            "keyword": "Discoliam",
            "position": 19,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        },
        {
            "keyword": "Discoliam personal: portfolios & cvs",
            "position": 21,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        },
        {
            "keyword": "Discoliam reviews",
            "position": 23,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        },
        {
            "keyword": "discoliam",
            "position": 25,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        },
        {
            "keyword": "about",
            "position": 27,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        },
        {
            "keyword": "about me",
            "position": 29,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        },
        {
            "keyword": "contact",
            "position": 31,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        },
        {
            "keyword": "portfolio",
            "position": 33,
            "search_engine": "Estimated",
            "checked_at": "2026-04-19 10:43:44",
            "is_estimated": true
        }
    ],
    "rating": {
        "overall": 64,
        "label": "Healthy",
        "breakdown": [
            {
                "label": "Technical foundation",
                "score": 13,
                "max": 18
            },
            {
                "label": "Authority & trust",
                "score": 14,
                "max": 30
            },
            {
                "label": "Reach & market presence",
                "score": 3,
                "max": 18
            },
            {
                "label": "Search visibility",
                "score": 3,
                "max": 12
            },
            {
                "label": "Engagement & retention",
                "score": 9,
                "max": 10
            },
            {
                "label": "Channels & diversification",
                "score": 5,
                "max": 6
            },
            {
                "label": "Registry stability",
                "score": 5,
                "max": 6
            },
            {
                "label": "Quality system",
                "score": 72,
                "max": 100
            },
            {
                "label": "Reputation system",
                "score": 48,
                "max": 100
            },
            {
                "label": "Safety system",
                "score": 100,
                "max": 100
            },
            {
                "label": "Evidence confidence",
                "score": 100,
                "max": 100
            },
            {
                "label": "External intelligence",
                "score": 52,
                "max": 100
            },
            {
                "label": "API intelligence",
                "score": 54,
                "max": 100
            }
        ],
        "authority_score": 45,
        "quality_score": 72,
        "reputation_score": 48,
        "safety_score": 100,
        "confidence_score": 100,
        "fraud_score": 1,
        "authority_signals": {
            "backlinks": 1,
            "referring_domains": 1,
            "organic_keywords": 82,
            "indexed_pages": 17,
            "monthly_visitors": 137,
            "global_rank": 32862,
            "engagement_score": 79,
            "crawl_quality_score": 95,
            "brand_completeness_score": 75,
            "link_diversity_score": 92,
            "technical_reliability_score": 69,
            "whois_score": 83,
            "whois_age_years": 19.4,
            "whois_stability_score": 100,
            "spam_penalty": 0
        },
        "whois_signals": {
            "age_years": 19.4,
            "days_to_expiry": 206,
            "days_since_last_registry_update": 147,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 4,
            "status_count": 1
        }
    },
    "authority_score": 45,
    "trust_score": 75,
    "domain_tags": {
        "primary_tag": "T",
        "primary_tag_score": 82,
        "primary_candidate": "T",
        "primary_candidate_score": 82,
        "tag_codes": "T",
        "tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 82,
                "score": 82,
                "match_percent": 82,
                "threshold_band": "strong"
            }
        ],
        "tag_breakdown": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 82,
                "score": 82,
                "match_percent": 82,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "",
                "message": "The evidence does not currently look notably uncertain.",
                "priority": 18,
                "score": 18,
                "match_percent": 18,
                "threshold_band": "none"
            },
            {
                "code": "Infra",
                "label": "Risky infrastructure",
                "tone": "caution",
                "description": "The hosting / registrar / nameserver neighbourhood looks unusually risky.",
                "reason": "The infrastructure neighbourhood looks riskier than normal.",
                "message": "Infrastructure risk does not currently stand out.",
                "priority": 7,
                "score": 7,
                "match_percent": 7,
                "threshold_band": "none"
            },
            {
                "code": "C",
                "label": "Caution",
                "tone": "caution",
                "description": "Signals are mixed or weak, so this domain should be treated carefully.",
                "reason": "Review carefully: mixed trust signals.",
                "message": "The current crawl does not show a meaningful caution match.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            },
            {
                "code": "Crypto",
                "label": "Crypto drainer risk",
                "tone": "toxic",
                "description": "Wallet-connect or seed-phrase theft patterns were detected.",
                "reason": "Wallet-connect or seed-phrase theft patterns were detected.",
                "message": "No meaningful crypto-drainer signals were detected.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            }
        ],
        "nsfw_score": 0,
        "trust_score": 76,
        "manual": {
            "has_changes": false,
            "verified_status": "",
            "tag_codes": "",
            "rating_delta": 0,
            "authority_delta": 0,
            "trust_delta": 0,
            "note": "",
            "adjusted_by": 0,
            "adjusted_at": "",
            "lock_scores": false,
            "lock_flags": false
        },
        "summary": "Trusted (82% match) because low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
        "external_intel": [],
        "external_decision": [],
        "signal_scores": [
            {
                "label": "Strongest tag heuristic",
                "value": "T · 82%",
                "tone": "good",
                "detail": "The highest raw tag match from the heuristic engine before visibility thresholds and manual overrides."
            },
            {
                "label": "Trust score",
                "value": "76/100",
                "tone": "good",
                "detail": "Confidence derived from authority, crawl quality, stability, and risk signals."
            },
            {
                "label": "Authority score",
                "value": "45/100",
                "tone": "caution",
                "detail": "A higher authority score usually means broader reputation and backlink confidence."
            },
            {
                "label": "Spam risk",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This blends spam indicators with false-positive protections for legitimate sites."
            },
            {
                "label": "Quality score",
                "value": "81/100",
                "tone": "good",
                "detail": "Based on crawl quality, content completeness, and technical evidence."
            },
            {
                "label": "Safety score",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher is safer. Direct fraud signals can heavily cap this even when SEO signals look strong."
            },
            {
                "label": "Fraud score",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This reflects phishing, drainer, fake-support, fake-shop, and malware signals."
            },
            {
                "label": "Infrastructure risk",
                "value": "7/100",
                "tone": "good",
                "detail": "Lower is better. This reflects the IP, registrar, and nameserver neighbourhood seen by the crawler."
            },
            {
                "label": "Evidence confidence",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher means the crawler had enough pages and registry evidence to make a stronger call."
            },
            {
                "label": "External evidence",
                "value": "Low",
                "tone": "unknown",
                "detail": "Quality of the structured search and review evidence cluster."
            },
            {
                "label": "External decision",
                "value": "Inconclusive",
                "tone": "unknown",
                "detail": "How third-party evidence compares with the current candidate tag."
            },
            {
                "label": "NSFW score",
                "value": "0/100",
                "tone": "good",
                "detail": "Context-aware adult-content detection with medical / educational false-positive reduction."
            },
            {
                "label": "Registry stability",
                "value": "100/100",
                "tone": "good",
                "detail": "Based on age, expiry runway, and the amount of ownership / registrar churn."
            }
        ],
        "signal_sections": [
            {
                "title": "Registry & ownership",
                "items": [
                    {
                        "label": "Domain age",
                        "value": "19.4 years",
                        "tone": "good",
                        "detail": "Older domains generally carry more historical trust than very new ones."
                    },
                    {
                        "label": "Stability score",
                        "value": "100/100",
                        "tone": "good",
                        "detail": "Penalised by registrar, ownership, and nameserver churn."
                    },
                    {
                        "label": "Days to expiry",
                        "value": "206",
                        "tone": "good",
                        "detail": "Very short renewal windows can be a weak trust signal."
                    },
                    {
                        "label": "Registrar / ownership changes",
                        "value": "0 / 0",
                        "tone": "good",
                        "detail": "Frequent ownership churn can weaken trust."
                    },
                    {
                        "label": "Nameserver changes",
                        "value": "0",
                        "tone": "good",
                        "detail": "Repeated infrastructure changes can indicate instability."
                    },
                    {
                        "label": "DNSSEC / privacy",
                        "value": "DNSSEC off · privacy off",
                        "tone": "caution",
                        "detail": "DNSSEC strengthens DNS trust; privacy is neutral on its own."
                    }
                ]
            },
            {
                "title": "Reputation & search evidence",
                "items": [
                    {
                        "label": "Backlinks",
                        "value": "1",
                        "tone": "unknown",
                        "detail": "Broader backlink evidence usually improves confidence."
                    },
                    {
                        "label": "Referring domains",
                        "value": "1",
                        "tone": "unknown",
                        "detail": "Unique linking domains are more useful than raw link volume."
                    },
                    {
                        "label": "Organic keywords",
                        "value": "82",
                        "tone": "caution",
                        "detail": "Search footprint helps distinguish real sites from thin shells."
                    },
                    {
                        "label": "Indexed pages",
                        "value": "17",
                        "tone": "caution",
                        "detail": "Larger index coverage usually means more evidence to classify from."
                    },
                    {
                        "label": "Brand strength",
                        "value": "75/100",
                        "tone": "good",
                        "detail": "Stronger brand signals reduce false positives for legitimate sites."
                    },
                    {
                        "label": "Risk label",
                        "value": "GOOD",
                        "tone": "unknown",
                        "detail": "This is the raw crawl / heuristic risk label feeding the tag model."
                    }
                ]
            },
            {
                "title": "Crawl, content & technicals",
                "items": [
                    {
                        "label": "HTTP status",
                        "value": "200",
                        "tone": "good",
                        "detail": "Healthy responses make classification more reliable."
                    },
                    {
                        "label": "HTTPS / speed",
                        "value": "HTTPS OK · 1,177 ms",
                        "tone": "good",
                        "detail": "Slow or broken technical signals weaken confidence."
                    },
                    {
                        "label": "Content words",
                        "value": "279",
                        "tone": "caution",
                        "detail": "Thin pages are harder to trust and easier to manipulate."
                    },
                    {
                        "label": "Schema / structure",
                        "value": "0 schema · meta · H1",
                        "tone": "caution",
                        "detail": "Structured markup and basic on-page hygiene improve quality confidence."
                    },
                    {
                        "label": "Links on page",
                        "value": "11 internal · 9 external",
                        "tone": "good",
                        "detail": "Link patterns help detect thin directories and promo pages."
                    },
                    {
                        "label": "Page speed / mobile",
                        "value": "70/100 · 81/100",
                        "tone": "good",
                        "detail": "Better technical quality generally reduces low-effort site patterns."
                    },
                    {
                        "label": "Crawl access",
                        "value": "Open",
                        "tone": "good",
                        "detail": "The crawler reached the site without an anti-bot challenge."
                    }
                ]
            },
            {
                "title": "External evidence & explainability",
                "items": [
                    {
                        "label": "Decision state",
                        "value": "Inconclusive",
                        "tone": "unknown",
                        "detail": "Structured third-party evidence is still too thin, mixed, or unqualified to force a harder verdict."
                    },
                    {
                        "label": "Evidence quality",
                        "value": "Low",
                        "tone": "unknown",
                        "detail": "Blends source trust, domain matching, evidence diversity, and freshness."
                    },
                    {
                        "label": "Support vs contradiction",
                        "value": "0 / 0",
                        "tone": "unknown",
                        "detail": "Compares how much structured external evidence supports the candidate tag against evidence that contradicts it."
                    },
                    {
                        "label": "Qualified risk sources",
                        "value": "No",
                        "tone": "good",
                        "detail": "Risk tags only promote from external evidence when source diversity or source trust thresholds are met."
                    },
                    {
                        "label": "Uncertainty buffer",
                        "value": "Clear",
                        "tone": "good",
                        "detail": "Prevents thin or mixed external evidence from forcing a stronger tag than the evidence can justify."
                    }
                ]
            }
        ],
        "positives": [
            "Established domain age: 19.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness."
        ],
        "risks": []
    },
    "traffic_confidence": 70,
    "whois": {
        "current": {
            "id": 38256,
            "domain": "discoliam.com",
            "source_type": "rdap",
            "rdap_url": "https://rdap.verisign.com/com/v1/domain/DISCOLIAM.COM",
            "registrar_name": "1API GmbH",
            "registrar_handle": "1387",
            "registrant_name": "",
            "registrant_org": "",
            "registrant_country": "",
            "registrant_email": "",
            "abuse_email": "abuse@1api.net",
            "created_date": "2006-11-11 11:21:21",
            "updated_date": "2025-11-23 10:40:28",
            "expires_date": "2026-11-11 11:21:21",
            "nameservers_json": "[\"ns1.dnsimple.com\",\"ns2.dnsimple-edge.net\",\"ns3.dnsimple.com\",\"ns4.dnsimple-edge.org\"]",
            "status_json": "[\"client transfer prohibited\"]",
            "dnssec": "unsigned",
            "privacy_protected": 0,
            "content_hash": "7cffdeafaefc340de4aa8345287c94ea7a5836988992415403500e564f9601d4",
            "history_count": 1,
            "last_checked_at": "2026-03-19 16:41:38",
            "last_changed_at": "2026-03-19 16:41:38",
            "created_at": "2026-03-19 16:41:38",
            "updated_at": "2026-03-19 16:41:38"
        },
        "history": [
            {
                "id": 39105,
                "domain": "discoliam.com",
                "source_type": "rdap",
                "registrar_name": "1API GmbH",
                "registrar_handle": "1387",
                "registrant_name": "",
                "registrant_org": "",
                "registrant_country": "",
                "registrant_email": "",
                "abuse_email": "abuse@1api.net",
                "created_date": "2006-11-11 11:21:21",
                "updated_date": "2025-11-23 10:40:28",
                "expires_date": "2026-11-11 11:21:21",
                "nameservers_json": "[\"ns1.dnsimple.com\",\"ns2.dnsimple-edge.net\",\"ns3.dnsimple.com\",\"ns4.dnsimple-edge.org\"]",
                "status_json": "[\"client transfer prohibited\"]",
                "dnssec": "unsigned",
                "privacy_protected": 0,
                "content_hash": "7cffdeafaefc340de4aa8345287c94ea7a5836988992415403500e564f9601d4",
                "checked_at": "2026-03-19 16:41:38",
                "change_summary": "Initial WHOIS snapshot captured.",
                "created_at": "2026-03-19 16:41:38"
            }
        ],
        "signals": {
            "age_years": 19.4,
            "days_to_expiry": 206,
            "days_since_last_registry_update": 147,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 4,
            "status_count": 1
        }
    },
    "discovered_domain": {
        "id": 136385,
        "domain": "discoliam.com",
        "first_seen_at": "2026-03-16 03:49:53",
        "last_crawled_at": "2026-03-19 16:41:42",
        "last_title": "Discoliam",
        "last_http_status": 200,
        "discovered_from_domain": "uses.tech",
        "depth": 0,
        "backlinks_count": 1,
        "rating_cache": 57,
        "spam_score": 24,
        "risk_label": "good",
        "category_name": "Personal: Portfolios & CVs",
        "primary_country_code": "",
        "internal_links_count": 11,
        "external_links_count": 9,
        "social_profiles_count": 3,
        "content_word_count": 279,
        "title_quality_score": 65,
        "has_meta_description": 1,
        "has_h1": 1,
        "language_code": "en",
        "response_time_ms": 1177,
        "robots_status": 404,
        "sitemap_status": 200,
        "sitemap_total_urls": 17,
        "quality_score": 81,
        "site_name": "Discoliam",
        "canonical_domain": "",
        "favicon_present": 1,
        "schema_org_count": 0,
        "noindex_detected": 0,
        "feed_links_count": 0,
        "https_working": 1,
        "estimated_authority_score": 35,
        "trust_score": 97,
        "nsfw_score": 0,
        "overall_rank_estimate": 17360,
        "primary_tag": "",
        "tag_codes": "",
        "manual_verified_status": "",
        "manual_tag_codes": "",
        "manual_rating_delta": 0,
        "manual_authority_delta": 0,
        "manual_trust_delta": 0,
        "manual_note": null,
        "manual_adjusted_by": null,
        "manual_adjusted_at": null,
        "manual_lock_scores": 0,
        "manual_lock_flags": 0,
        "crawl_blocked": 0,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": null,
        "safety_score": 100,
        "fraud_score": 1,
        "legitimacy_score": 65,
        "infrastructure_risk_score": 7,
        "score_confidence": 100,
        "tag_confidence": 72,
        "category_confidence": 88,
        "deep_crawl_pages": 11,
        "resolved_ip": "104.198.14.52",
        "category_candidates_json": "[{\"category\":\"Personal: Portfolios & CVs\",\"score\":88}]",
        "page_signals_json": "[{\"path\":\"/about\",\"status\":200,\"title\":\"About | Discoliam\",\"word_count\":408,\"summary_text\":\"About | Discoliam About | Discoliam Skip to main content logo icon Home Portfolio Services About Contact About Me I don't really like talking about myself, but, needs must. If you only read one page about who I am and what I do this year, make it this one. tl;dr I'm a Web Developer and Technical Lead with over 14 years of experience. I'm passionate about Front End Dev, Performance, A11y, Pizza, and shouty music. Not long Enough For about 14 years or so I've been building Websites, Applications, Digital Installations, and some other random bits in-between. This has been about a 50/50 split between full time at agencies, and as a freelancer working for one-person organisations, to multi-million dollar startups and everyone in-between. Over the years I've done a little bit of everything, but these days I've fo\",\"classification_terms\":[\"about\",\"about me\",\"contact\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/contact\",\"status\":200,\"title\":\"Contact | Discoliam\",\"word_count\":212,\"summary_text\":\"Contact | Discoliam Contact | Discoliam Skip to main content logo icon Home Portfolio Services About Contact Get in touch If you've got a project in mind and want to chat more, get in touch and I'll get back to you ASAP. You can use the form below, or any of my social channels, even LinkedIn if you really have too. Don’t fill this out if you’re human: Name: * Email: * Message: * Send Thanks for getting in touch! I'll get back to you as soon as I can. Oh no! Something went wrong. Please refresh and try again. email icon Email hello@discoliam.com instagram icon Instagram https://www.instagram.com/discoliam/ linkedin icon LinkedIn https://www.linkedin.com/in/liamrichardson/ github icon Github https://github.com/discoliam/ mastodon icon Mastodon https://mastodon.social/@Discoliam Get in touch Give me a bell on an\",\"classification_terms\":[\"contact\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":1,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"google.com\",\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/portfolio/\",\"status\":200,\"title\":\"Portfolio | Discoliam\",\"word_count\":1111,\"summary_text\":\"Portfolio | Discoliam Portfolio | Discoliam Skip to main content logo icon Home Portfolio Services About Contact Portfolio Here's a selection of my work from the past few years. There's a mix of freelance projects and work from full-time roles. I've tried to link to anything that is still online, but contrary to most twitter controversies, the internet sometimes forgets. Sentient Media Client: Sentient Media Services: Full Stack Development WordPress Gutenberg ACF CSS Performance I was brought in to help Sentient Media launch their new brand with a refreshed website. We started fresh with a new theme build, and some dramatic tidying up of the existing database and content. Post-launch, we saw a huge improvement in Lighthouse scores, as well as reduced file sizes on both the front-end load and backend database,\",\"classification_terms\":[\"portfolio\",\"about\",\"contact\",\"help\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/services/\",\"status\":200,\"title\":\"Services | Discoliam\",\"word_count\":531,\"summary_text\":\"Services | Discoliam Services | Discoliam Skip to main content logo icon Home Portfolio Services About Contact ServicesA brief overview of what I can do, how I go about it, and the type of organisations I like to work for. What I do My work involves all types of digital products and services, of which I'm often involved in a variety of stages. UX / Strategy I love getting involved in the nitty-gritty of user research, workshops and UX design. I work closely with UI designers and brand managers to turn static assets and ideas into interactive &amp; accessible digital products. Development Be it planning out the Technical architecture of a small website, or parachuting in to add new features to a legacy codebase, I've worked on all sorts of projects. I tend to specialize in front-end development, across a wide r\",\"classification_terms\":[\"services\",\"about\",\"contact\",\"help\",\"shop\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/about/\",\"status\":200,\"title\":\"About | Discoliam\",\"word_count\":408,\"summary_text\":\"About | Discoliam About | Discoliam Skip to main content logo icon Home Portfolio Services About Contact About Me I don't really like talking about myself, but, needs must. If you only read one page about who I am and what I do this year, make it this one. tl;dr I'm a Web Developer and Technical Lead with over 14 years of experience. I'm passionate about Front End Dev, Performance, A11y, Pizza, and shouty music. Not long Enough For about 14 years or so I've been building Websites, Applications, Digital Installations, and some other random bits in-between. This has been about a 50/50 split between full time at agencies, and as a freelancer working for one-person organisations, to multi-million dollar startups and everyone in-between. Over the years I've done a little bit of everything, but these days I've fo\",\"classification_terms\":[\"about\",\"about me\",\"contact\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/contact/\",\"status\":200,\"title\":\"Contact | Discoliam\",\"word_count\":212,\"summary_text\":\"Contact | Discoliam Contact | Discoliam Skip to main content logo icon Home Portfolio Services About Contact Get in touch If you've got a project in mind and want to chat more, get in touch and I'll get back to you ASAP. You can use the form below, or any of my social channels, even LinkedIn if you really have too. Don’t fill this out if you’re human: Name: * Email: * Message: * Send Thanks for getting in touch! I'll get back to you as soon as I can. Oh no! Something went wrong. Please refresh and try again. email icon Email hello@discoliam.com instagram icon Instagram https://www.instagram.com/discoliam/ linkedin icon LinkedIn https://www.linkedin.com/in/liamrichardson/ github icon Github https://github.com/discoliam/ mastodon icon Mastodon https://mastodon.social/@Discoliam Get in touch Give me a bell on an\",\"classification_terms\":[\"contact\",\"about\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":1,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"google.com\",\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/services\",\"status\":200,\"title\":\"Services | Discoliam\",\"word_count\":531,\"summary_text\":\"Services | Discoliam Services | Discoliam Skip to main content logo icon Home Portfolio Services About Contact ServicesA brief overview of what I can do, how I go about it, and the type of organisations I like to work for. What I do My work involves all types of digital products and services, of which I'm often involved in a variety of stages. UX / Strategy I love getting involved in the nitty-gritty of user research, workshops and UX design. I work closely with UI designers and brand managers to turn static assets and ideas into interactive &amp; accessible digital products. Development Be it planning out the Technical architecture of a small website, or parachuting in to add new features to a legacy codebase, I've worked on all sorts of projects. I tend to specialize in front-end development, across a wide r\",\"classification_terms\":[\"services\",\"about\",\"contact\",\"help\",\"shop\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/portfolio\",\"status\":200,\"title\":\"Portfolio | Discoliam\",\"word_count\":1111,\"summary_text\":\"Portfolio | Discoliam Portfolio | Discoliam Skip to main content logo icon Home Portfolio Services About Contact Portfolio Here's a selection of my work from the past few years. There's a mix of freelance projects and work from full-time roles. I've tried to link to anything that is still online, but contrary to most twitter controversies, the internet sometimes forgets. Sentient Media Client: Sentient Media Services: Full Stack Development WordPress Gutenberg ACF CSS Performance I was brought in to help Sentient Media launch their new brand with a refreshed website. We started fresh with a new theme build, and some dramatic tidying up of the existing database and content. Post-launch, we saw a huge improvement in Lighthouse scores, as well as reduced file sizes on both the front-end load and backend database,\",\"classification_terms\":[\"portfolio\",\"about\",\"contact\",\"help\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/colophon/\",\"status\":200,\"title\":\"Colophon | Discoliam\",\"word_count\":214,\"summary_text\":\"Colophon | Discoliam Colophon | Discoliam Skip to main content logo icon Home Portfolio Services About Contact ColophonOriginally designed and developed across the globe, this version was re-built September 2022 - April 2023 in Bristol UK, using a combination of blood, sweat, and Stack Overflow. Typeset in Merriweather by Sorkin Type, and Lato by Łukasz Dziedzic. Orignal design by Patricia Bernal. Re-interpreted by me. Build Built using 11ty with Liquid templates. CSS is built using postcss-preset-env. Source code and more details available on Github. Hosted on Netlify. Previous Versions I don't normally keep older versions of my website. But, I've manged to save a few more recent versions, if you're desperate to see work I now consider rather embarrassing. 2020 2018 2016 Get in touch Give me a bell on any of\",\"classification_terms\":[\"colophon\",\"about\",\"contact\",\"help\",\"source code\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/referrals/\",\"status\":200,\"title\":\"Referrals | Discoliam\",\"word_count\":327,\"summary_text\":\"Referrals | Discoliam Referrals | Discoliam Skip to main content logo icon Home Portfolio Services About Contact ReferralsI use a lot of services that often offer referral codes. If you end up signing up for a similar service, use the links below and we'll both get money off. To quote an animated meerkat, simples. Freeagent The premier accounting software. I don't use half of the features, and still think its incredible value for money. Sign up using the link below and we both get 10% off. Sign up with FreeAgent DNSimple More often than not, CNAMEs, A Records, and everything else confuses the hell out of me. DNSimple made it super easy, and it is pretty cheap given its power. Sign up using the link below and we both get $5 credit. Sign up with DNSimple ExpressVPN Privacy is important. As is freedom. Netflix is\",\"classification_terms\":[\"referrals\",\"about\",\"contact\",\"privacy\",\"links\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/styleguide/\",\"status\":200,\"title\":\"Styleguide | Discoliam\",\"word_count\":515,\"summary_text\":\"Styleguide | Discoliam Styleguide | Discoliam Skip to main content logo icon Home Portfolio Services About Contact StyleguideHeding One Heding Two Heding Three Heding Four Heding Five Heding Six Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam libero id accusantium sed tenetur, delectus perspiciatis sit, iusto reiciendis quam magnam quidem aspernatur harum est impedit, veritatis mollitia. Facere, repellendus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam libero id accusantium sed tenetur, delectus perspiciatis sit, iusto reiciendis quam magnam quidem aspernatur harum est impedit, veritatis mollitia. Facere, repellendus. Heding Two Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam libero id accusantium sed tenetur, delectus perspiciatis sit, iusto reiciendis quam mag\",\"classification_terms\":[\"styleguide\",\"about\",\"contact\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[\"unpkg.com\"],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1}]",
        "score_reasons_json": "[]",
        "route_domain": "discoliam.com",
        "display_domain": "discoliam.com"
    },
    "explainability": {
        "summary": "discoliam.com currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "100/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "good",
                "detail": "70/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "weighted_contributions": [
            {
                "label": "Quality system",
                "points": "+24.5",
                "tone": "good",
                "detail": "Technical quality, crawl depth, page structure, and implementation hygiene. Current subsystem score: 72/100."
            },
            {
                "label": "Reputation system",
                "points": "+16.3",
                "tone": "caution",
                "detail": "Authority, search visibility, reach, engagement, and registry stability. Current subsystem score: 48/100."
            },
            {
                "label": "Safety system",
                "points": "+32.0",
                "tone": "good",
                "detail": "Fraud, spam, and trust signals from infrastructure, crawl, and registry evidence. Current subsystem score: 100/100."
            },
            {
                "label": "Risk clamp",
                "points": "-9.0",
                "tone": "risk",
                "detail": "Safety thresholds capped the final score until the risk profile improves."
            }
        ],
        "evidence_cards": [
            {
                "label": "Authority and trust",
                "value": "45/100 · trust 75/100",
                "tone": "caution",
                "detail": "137 monthly visitors, 82 organic keywords, brand completeness 75/100, engagement 79/100."
            },
            {
                "label": "Backlink and search evidence",
                "value": "1 referring domains",
                "tone": "good",
                "detail": "1 backlinks across 1 referring domains. Diversity 92/100; spam penalty 0."
            },
            {
                "label": "Registry and domain stability",
                "value": "19.4 years old",
                "tone": "good",
                "detail": "Stability 100/100 · age 19.4 years · registrar 1API GmbH · expires in 206 days."
            },
            {
                "label": "Safety and fraud posture",
                "value": "Safety 100/100 · fraud 1/100",
                "tone": "good",
                "detail": "Primary tag T · safety 100/100 · fraud 1/100."
            }
        ],
        "positives": [
            "Established domain age: 19.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Registry history looks stable, which supports legitimacy and trust.",
            "The domain has been registered for years, which usually improves trust confidence.",
            "HTTPS is working, so the site clears a basic transport-security check."
        ],
        "risks": [],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-19 16:41:42",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 1mo ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-19 16:41:38",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 1mo ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-19 10:43:44",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-19 10:43:44",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "section_notes": {
            "audience": "Audience geography is estimated from category, country, traffic mix, and brand signals until first-party audience data is collected.",
            "keywords": "Top keywords are estimated from crawl language, brand, category, and visibility signals until tracked keyword snapshots are stored.",
            "history": "Rank history is estimated from the current profile because no stored history exists for this domain yet."
        },
        "base_weighted_score": 73,
        "fraud_clamp_penalty": 9,
        "final_score": 64
    },
    "insight_snapshot": {
        "version": 1,
        "generated_at": "2026-04-19T10:43:44+00:00",
        "domain": "discoliam.com",
        "display_name": "Discoliam",
        "is_tracked": false,
        "is_estimated": true,
        "overall_score": 64,
        "authority_score": 45,
        "trust_score": 75,
        "safety_score": 100,
        "fraud_score": 1,
        "confidence_score": 100,
        "traffic_confidence": 70,
        "last_crawled_at": "2026-03-19 16:41:42",
        "crawl_blocked": false,
        "summary": "discoliam.com currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "100/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "good",
                "detail": "70/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "top_positive_signals": [
            "Established domain age: 19.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Registry history looks stable, which supports legitimacy and trust.",
            "The domain has been registered for years, which usually improves trust confidence."
        ],
        "top_risk_signals": [],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-19 16:41:42",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 1mo ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-19 16:41:38",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 1mo ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-19 10:43:44",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-19 10:43:44",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "top_tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good"
            }
        ]
    },
    "is_tracked": false,
    "is_estimated": true,
    "live_state": {
        "status": "processing",
        "status_label": "Cache build running",
        "message": "The refreshed page cache is still being built for this domain.",
        "updated_at": "2026-04-19T15:15:25+00:00"
    },
    "refresh_state": {
        "canRequest": false,
        "queued": true,
        "processing": true,
        "stageKey": "cache-queued",
        "stageLabel": "Cache build running",
        "cooldownUntil": null,
        "message": "The refreshed page cache is still being built for this domain.",
        "action": "/domain/discoliam.com/refresh",
        "isGuestCooldown": false,
        "cooldownSeconds": 0
    },
    "urlscan_report": {
        "domain": "discoliam.com",
        "status": "error",
        "submitted_at": "2026-03-19T16:41:39+00:00",
        "completed_at": null,
        "last_checked_at": "2026-03-19T16:41:39+00:00",
        "last_error": "Rate limit for 'public' exceeded. Limit is 5000 per day. Reset in 26299 seconds.",
        "submitted_url": "https://discoliam.com/",
        "uuid": "",
        "result_url": "",
        "api_result_url": "",
        "visibility": "public",
        "summary": "urlscan.io scan submission failed.",
        "report": [],
        "report_summary": [],
        "is_fresh": false,
        "can_retry": true,
        "poll_after_seconds": 20
    }
}