{
    "ready": true,
    "site": {
        "id": 0,
        "domain": "timharek.no",
        "display_name": "Tim Hårek",
        "primary_country_code": "NO",
        "category_name": "News & Media"
    },
    "metrics": {
        "global_rank": 26055,
        "country_rank": 65,
        "category_rank": 893,
        "daily_pageviews_per_visitor": 3.4,
        "daily_time_on_site_seconds": 246,
        "bounce_rate": 41.48,
        "search_visits_percent": 47.73,
        "total_sites_linking_in": 3,
        "monthly_unique_visitors": 112,
        "recorded_at": "2026-03-18 21:00:36"
    },
    "audit": {
        "score": 83
    },
    "traffic_sources": {
        "direct_percent": 22.41,
        "search_percent": 43.3,
        "social_percent": 13.09,
        "referral_percent": 11.89,
        "email_percent": 4.22,
        "paid_percent": 5.09
    },
    "seo_profile": {
        "backlinks_total": 3,
        "referring_domains": 3,
        "dofollow_backlinks_percent": 66.67,
        "organic_keywords": 60,
        "indexed_pages": 243,
        "page_speed_score": 100,
        "mobile_friendliness_score": 79,
        "authority_score": 25,
        "spam_risk_score": 45
    },
    "crawl_report": {
        "robots_status": 200,
        "sitemap_status": 200,
        "sitemap_total_urls": 243,
        "crawl_blocked": false,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": "",
        "notes": [],
        "created_at": "2026-03-18 21:00:36"
    },
    "keywords": [
        {
            "keyword": "Tim Hårek",
            "position": 25,
            "search_engine": "Estimated",
            "checked_at": "2026-06-05 01:32:23",
            "is_estimated": true
        },
        {
            "keyword": "Tim Hårek news & media",
            "position": 27,
            "search_engine": "Estimated",
            "checked_at": "2026-06-05 01:32:23",
            "is_estimated": true
        },
        {
            "keyword": "Tim Hårek reviews",
            "position": 29,
            "search_engine": "Estimated",
            "checked_at": "2026-06-05 01:32:23",
            "is_estimated": true
        },
        {
            "keyword": "tim",
            "position": 31,
            "search_engine": "Estimated",
            "checked_at": "2026-06-05 01:32:23",
            "is_estimated": true
        },
        {
            "keyword": "rek",
            "position": 33,
            "search_engine": "Estimated",
            "checked_at": "2026-06-05 01:32:23",
            "is_estimated": true
        },
        {
            "keyword": "timharek",
            "position": 35,
            "search_engine": "Estimated",
            "checked_at": "2026-06-05 01:32:23",
            "is_estimated": true
        }
    ],
    "rating": {
        "overall": 64,
        "label": "Healthy",
        "breakdown": [
            {
                "label": "Technical foundation",
                "score": 16,
                "max": 18
            },
            {
                "label": "Authority & trust",
                "score": 8,
                "max": 30
            },
            {
                "label": "Reach & market presence",
                "score": 3,
                "max": 18
            },
            {
                "label": "Search visibility",
                "score": 4,
                "max": 12
            },
            {
                "label": "Engagement & retention",
                "score": 7,
                "max": 10
            },
            {
                "label": "Channels & diversification",
                "score": 4,
                "max": 6
            },
            {
                "label": "Registry stability",
                "score": 5,
                "max": 6
            },
            {
                "label": "Quality system",
                "score": 89,
                "max": 100
            },
            {
                "label": "Reputation system",
                "score": 38,
                "max": 100
            },
            {
                "label": "Safety system",
                "score": 100,
                "max": 100
            },
            {
                "label": "Evidence confidence",
                "score": 100,
                "max": 100
            },
            {
                "label": "External intelligence",
                "score": 50,
                "max": 100
            }
        ],
        "authority_score": 25,
        "quality_score": 89,
        "reputation_score": 38,
        "safety_score": 100,
        "confidence_score": 100,
        "fraud_score": 2,
        "authority_signals": {
            "backlinks": 3,
            "referring_domains": 3,
            "organic_keywords": 60,
            "indexed_pages": 243,
            "monthly_visitors": 112,
            "global_rank": 26055,
            "engagement_score": 73,
            "crawl_quality_score": 90,
            "brand_completeness_score": 48,
            "link_diversity_score": 94,
            "technical_reliability_score": 90,
            "whois_score": 58,
            "whois_age_years": 5.4,
            "whois_stability_score": 100,
            "spam_penalty": 6
        },
        "whois_signals": {
            "age_years": 5.4,
            "days_to_expiry": null,
            "days_since_last_registry_update": 177,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": true,
            "has_registrant_country": true,
            "registrant_country": "NO",
            "nameserver_count": 3,
            "status_count": 0
        }
    },
    "authority_score": 28,
    "trust_score": 46,
    "domain_tags": {
        "primary_tag": "T",
        "primary_tag_score": 70,
        "primary_candidate": "T",
        "primary_candidate_score": 70,
        "tag_codes": "T,Uncertain",
        "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": 70,
                "score": 70,
                "match_percent": 70,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "The evidence is mixed or only partially corroborated, so the system avoided a harder automated verdict.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "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": 70,
                "score": 70,
                "match_percent": 70,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "The evidence is mixed or only partially corroborated, so the system avoided a harder automated verdict.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "threshold_band": "strong"
            },
            {
                "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": 10,
                "score": 10,
                "match_percent": 10,
                "threshold_band": "none"
            },
            {
                "code": "D",
                "label": "Dangerous",
                "tone": "toxic",
                "description": "Strong signs of phishing, malware, or other harmful behaviour were detected.",
                "reason": "Multiple high-risk signals pushed this domain into the dangerous range.",
                "message": "No meaningful dangerous-signal match was detected.",
                "priority": 1,
                "score": 1,
                "match_percent": 1,
                "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"
            }
        ],
        "nsfw_score": 0,
        "trust_score": 50,
        "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 (70% 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 · 70%",
                "tone": "good",
                "detail": "The highest raw tag match from the heuristic engine before visibility thresholds and manual overrides."
            },
            {
                "label": "Trust score",
                "value": "50/100",
                "tone": "caution",
                "detail": "Confidence derived from authority, crawl quality, stability, and risk signals."
            },
            {
                "label": "Authority score",
                "value": "30/100",
                "tone": "spam",
                "detail": "A higher authority score usually means broader reputation and backlink confidence."
            },
            {
                "label": "Spam risk",
                "value": "12/100",
                "tone": "good",
                "detail": "Lower is better. This blends spam indicators with false-positive protections for legitimate sites."
            },
            {
                "label": "Quality score",
                "value": "76/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": "2/100",
                "tone": "good",
                "detail": "Lower is better. This reflects phishing, drainer, fake-support, fake-shop, and malware signals."
            },
            {
                "label": "Infrastructure risk",
                "value": "10/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": "5.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": "—",
                        "tone": "unknown",
                        "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 on · privacy off",
                        "tone": "good",
                        "detail": "DNSSEC strengthens DNS trust; privacy is neutral on its own."
                    }
                ]
            },
            {
                "title": "Reputation & search evidence",
                "items": [
                    {
                        "label": "Backlinks",
                        "value": "3",
                        "tone": "unknown",
                        "detail": "Broader backlink evidence usually improves confidence."
                    },
                    {
                        "label": "Referring domains",
                        "value": "3",
                        "tone": "unknown",
                        "detail": "Unique linking domains are more useful than raw link volume."
                    },
                    {
                        "label": "Organic keywords",
                        "value": "60",
                        "tone": "caution",
                        "detail": "Search footprint helps distinguish real sites from thin shells."
                    },
                    {
                        "label": "Indexed pages",
                        "value": "243",
                        "tone": "good",
                        "detail": "Larger index coverage usually means more evidence to classify from."
                    },
                    {
                        "label": "Brand strength",
                        "value": "48/100",
                        "tone": "caution",
                        "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 · 194 ms",
                        "tone": "good",
                        "detail": "Slow or broken technical signals weaken confidence."
                    },
                    {
                        "label": "Content words",
                        "value": "91",
                        "tone": "spam",
                        "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": "15 internal · 0 external",
                        "tone": "good",
                        "detail": "Link patterns help detect thin directories and promo pages."
                    },
                    {
                        "label": "Page speed / mobile",
                        "value": "100/100 · 79/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: 5.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Search evidence is broad enough to classify with better confidence.",
            "DNSSEC is enabled."
        ],
        "risks": []
    },
    "traffic_confidence": 45,
    "whois": {
        "current": {
            "id": 23104,
            "domain": "timharek.no",
            "source_type": "rdap",
            "rdap_url": "https://rdap.norid.no/domain/timharek.no",
            "registrar_name": "Domeneshop AS",
            "registrar_handle": "reg42-NORID",
            "registrant_name": "Domeneshop Hostmaster",
            "registrant_org": "",
            "registrant_country": "NO",
            "registrant_email": "hostmaster@domeneshop.no",
            "abuse_email": "",
            "created_date": "2021-01-06 23:35:08",
            "updated_date": "2025-12-09 23:15:26",
            "expires_date": null,
            "nameservers_json": "[\"ns1.hyp.net\",\"ns2.hyp.net\",\"ns3.hyp.net\"]",
            "status_json": "[]",
            "dnssec": "signed",
            "privacy_protected": 0,
            "content_hash": "c4d0d680a0357d280fd768b0919935ec5d3df105583a3d1256cd4d997f326943",
            "history_count": 1,
            "last_checked_at": "2026-03-18 21:00:29",
            "last_changed_at": "2026-03-18 21:00:29",
            "created_at": "2026-03-18 21:00:29",
            "updated_at": "2026-03-18 21:00:29"
        },
        "history": [
            {
                "id": 23583,
                "domain": "timharek.no",
                "source_type": "rdap",
                "registrar_name": "Domeneshop AS",
                "registrar_handle": "reg42-NORID",
                "registrant_name": "Domeneshop Hostmaster",
                "registrant_org": "",
                "registrant_country": "NO",
                "registrant_email": "hostmaster@domeneshop.no",
                "abuse_email": "",
                "created_date": "2021-01-06 23:35:08",
                "updated_date": "2025-12-09 23:15:26",
                "expires_date": null,
                "nameservers_json": "[\"ns1.hyp.net\",\"ns2.hyp.net\",\"ns3.hyp.net\"]",
                "status_json": "[]",
                "dnssec": "signed",
                "privacy_protected": 0,
                "content_hash": "c4d0d680a0357d280fd768b0919935ec5d3df105583a3d1256cd4d997f326943",
                "checked_at": "2026-03-18 21:00:29",
                "change_summary": "Initial WHOIS snapshot captured.",
                "created_at": "2026-03-18 21:00:29"
            }
        ],
        "signals": {
            "age_years": 5.4,
            "days_to_expiry": null,
            "days_since_last_registry_update": 177,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": true,
            "has_registrant_country": true,
            "registrant_country": "NO",
            "nameserver_count": 3,
            "status_count": 0
        }
    },
    "discovered_domain": {
        "id": 95761,
        "domain": "timharek.no",
        "first_seen_at": "2026-03-15 21:47:17",
        "last_crawled_at": "2026-03-18 21:00:36",
        "last_title": "Tim Hårek",
        "last_http_status": 200,
        "discovered_from_domain": "512kb.club",
        "depth": 0,
        "backlinks_count": 3,
        "rating_cache": 52,
        "spam_score": 28,
        "risk_label": "good",
        "category_name": "News & Media",
        "primary_country_code": "NO",
        "internal_links_count": 15,
        "external_links_count": 0,
        "social_profiles_count": 0,
        "content_word_count": 91,
        "title_quality_score": 65,
        "has_meta_description": 1,
        "has_h1": 1,
        "language_code": "en",
        "response_time_ms": 194,
        "robots_status": 200,
        "sitemap_status": 200,
        "sitemap_total_urls": 243,
        "quality_score": 76,
        "site_name": "",
        "canonical_domain": "",
        "favicon_present": 0,
        "schema_org_count": 0,
        "noindex_detected": 0,
        "feed_links_count": 1,
        "https_working": 1,
        "estimated_authority_score": 28,
        "trust_score": 78,
        "nsfw_score": 0,
        "overall_rank_estimate": 13905,
        "primary_tag": "Uncertain",
        "tag_codes": "Uncertain",
        "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": 2,
        "legitimacy_score": 45,
        "infrastructure_risk_score": 10,
        "score_confidence": 100,
        "tag_confidence": 72,
        "category_confidence": 18,
        "deep_crawl_pages": 50,
        "resolved_ip": "89.147.108.9",
        "category_candidates_json": "[{\"category\":\"News & Media\",\"score\":17},{\"category\":\"E-commerce\",\"score\":17},{\"category\":\"Developer Tools: APIs & Documentation\",\"score\":6},{\"category\":\"Developer Tools: DevOps & Cloud\",\"score\":6}]",
        "page_signals_json": "[{\"path\":\"/about\",\"status\":200,\"title\":\"About\\n-\\nTim Hårek\",\"word_count\":171,\"summary_text\":\"About\\n-\\nTim Hårek About - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeAboutTim Hårek Andreassen (Photo) tim@harek.no PGP keyAboutLast updated January 27, 2026Hi, I&rsquo;m Tim Hårek Andreassen, a technologist from the west-coast of Norway. I like to write about programming, logging, note-taking, what I&rsquo;ve learned, and more. I care about making things that respect people, in terms of their privacy, security, user experience, and time.Beside my personal website I work as a software engineer at Value Technology in Bergen, Norway. I dabble with full-stack development, software architecture, maintainability, automation, customer relations, and sysadmin stuff.During my spare time I learn about new technologies, write the occasional blogpost, automate my everyday, 3D-print something I (definitely) n\",\"classification_terms\":[\"about\",\"privacy\",\"terms\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/contact\",\"status\":200,\"title\":\"Connect\\n-\\nTim Hårek\",\"word_count\":59,\"summary_text\":\"Connect\\n-\\nTim Hårek Connect - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeConnectTim Hårek Andreassen (Photo) tim@harek.no PGP keyConnectMy e-mail is open! Introduce yourself, tell me I’m wrong, share content, give feedback, you do you!E-mail: tim@harek.noAcross the webCodebergGitHubJSROpenStreetMapPrintablesSourceHutSignal (@timharek.91)PGPIf you want to send me an encrypted message via email, please use my PGP-key:Fingerprint: F6A1E22056C5806E69528AB2E59C7734F0E10EB5Quick import: curl -sL https://timharek.no/public-key.asc | gpg --importLast deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"contact\",\"about\",\"privacy\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/privacy\",\"status\":200,\"title\":\"Privacy\\n-\\nTim Hårek\",\"word_count\":51,\"summary_text\":\"Privacy\\n-\\nTim Hårek Privacy - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomePrivacyTim Hårek Andreassen (Photo) tim@harek.no PGP keyPrivacyLast updated November 15, 2023No tracking. No cookies. This website will always respect your privacy. I will never collect any personal data from you whenever you visit or use something that I have created, period.Last deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"privacy\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/blog/\",\"status\":200,\"title\":\"Blog\\n-\\nTim Hårek\",\"word_count\":1633,\"summary_text\":\"Blog\\n-\\nTim Hårek Blog - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogTim Hårek Andreassen (Photo) tim@harek.no PGP keyBlog2026(2 posts)February 20262026-03-03What I've been up to since January.January 20262026-01-29What I've been up to since December.2025(26 posts)December 20252025-12-31What I've been up to since November.2025 Year in review2025-12-312025 in retrospect.Do something about it2025-12-07Doing something about it can actually lead to a positive outcome.November 20252025-11-30What I've been up to since October 2025.October 20252025-10-31What I've been up to since September.Hima Devlog #12025-10-21Simplifying everything, everything is a file.September 20252025-10-01What I've been up to since August 2025.A year with Go2025-09-09What I've learned after working with Go for a year.August 2\",\"classification_terms\":[\"blog\",\"about\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":145,\"depth\":1},{\"path\":\"/about/\",\"status\":200,\"title\":\"About\\n-\\nTim Hårek\",\"word_count\":171,\"summary_text\":\"About\\n-\\nTim Hårek About - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeAboutTim Hårek Andreassen (Photo) tim@harek.no PGP keyAboutLast updated January 27, 2026Hi, I&rsquo;m Tim Hårek Andreassen, a technologist from the west-coast of Norway. I like to write about programming, logging, note-taking, what I&rsquo;ve learned, and more. I care about making things that respect people, in terms of their privacy, security, user experience, and time.Beside my personal website I work as a software engineer at Value Technology in Bergen, Norway. I dabble with full-stack development, software architecture, maintainability, automation, customer relations, and sysadmin stuff.During my spare time I learn about new technologies, write the occasional blogpost, automate my everyday, 3D-print something I (definitely) n\",\"classification_terms\":[\"about\",\"privacy\",\"terms\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/more/\",\"status\":200,\"title\":\"More\\n-\\nTim Hårek\",\"word_count\":44,\"summary_text\":\"More\\n-\\nTim Hårek More - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeMoreTim Hårek Andreassen (Photo) tim@harek.no PGP keyMoreThis website contains things that&rsquo;s available at first glance. The following list is not a complete list of all the pages, the rest is for you to find!CVBlogrollLogsNowUsesProjectsColophonLast deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"more\",\"about\",\"privacy\",\"blog\",\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/blog/2026-february-recently/\",\"status\":200,\"title\":\"February 2026\\n-\\nTim Hårek\",\"word_count\":1095,\"summary_text\":\"February 2026\\n-\\nTim Hårek February 2026 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogFebruary 2026Tim Hårek Andreassen (Photo) tim@harek.no PGP keyFebruary 2026Published March 3, 20266 minutes readThe year&rsquo;s shortest month is finally over, and I&rsquo;m three days late to posting this because I&rsquo;ve been too busy to sit down and write. I love excuses! Let&rsquo;s dive in!🍀 LifeAt the very end of last month we moved into our new house and we&rsquo;ve spent this month getting settled. We have a couple more boxes left to unpack, but we&rsquo;re getting there, slow and steady! A lot of weight has been lifted from my shoulders after moving in and getting settled. Now we can focus on preparing and getting ready for the next kid!We have had friends and family on visit the last three weekends, and a\",\"classification_terms\":[\"blog/2026-february-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/blog/2026-january-recently/\",\"status\":200,\"title\":\"January 2026\\n-\\nTim Hårek\",\"word_count\":568,\"summary_text\":\"January 2026\\n-\\nTim Hårek January 2026 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogJanuary 2026Tim Hårek Andreassen (Photo) tim@harek.no PGP keyJanuary 2026Published January 29, 20263 minutes read1/12 of 2026 is almost at an end, and I&rsquo;m certain that I won&rsquo;t be able to write this post at any date later in January. And that&rsquo;s because I get the keys to my new house tomorrow!This is going to be a short update!🍀 LifeDuring the last days of 2025 I was looking forward going back to work again, but when I got back, I still had a feeling of wanting or actually longing for time-off. It took a good week for things to go back to normal.The beginning of January wasn&rsquo;t too eventful, but the last two weeks has been a lot more fruitful than expected. Long story short, the bank and I made som\",\"classification_terms\":[\"blog/2026-january-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/blog/2025-year-in-review/\",\"status\":200,\"title\":\"2025 Year in review\\n-\\nTim Hårek\",\"word_count\":1368,\"summary_text\":\"2025 Year in review\\n-\\nTim Hårek 2025 Year in review - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlog2025 Year in reviewTim Hårek Andreassen (Photo) tim@harek.no PGP key2025 Year in reviewPublished December 31, 20257 minutes readThis is my fourth year in review. Looking back at those four years, a lot of things has happened. 2025 feels like a long, but good mountain hike. My thighs are hurting, but view is so worth it!Looking backYearly themes2025&rsquo;s yearly theme was Year of analog, it involved the following:Read more physical booksDownload more long-form content onto my reMarkableLeave my phone behindWrite blogposts in my notebook or on my reMarkable before publishing(maybe ditch my Apple Watch (again))Spoiler alert: I basically did none of this. I read one physical book. I did not use my reMarkable at al\",\"classification_terms\":[\"blog/2025-year-in-review\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/blog/2025-december-recently/\",\"status\":200,\"title\":\"December 2025\\n-\\nTim Hårek\",\"word_count\":636,\"summary_text\":\"December 2025\\n-\\nTim Hårek December 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogDecember 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyDecember 2025Published December 31, 20253 minutes readDecember is the slowest, fastest, and shortest month of the year. Everything has to happen this month. But I survived!From the blog since my last recently post:Do something about it2025 Year in review🍀 LifeHolidays, dinners, family gatherings, visits, dinners, sickness. You name it. This month, we had it all!Christmas was really chill this year at my SO&rsquo;s family. Fantastic food, excellent company, and our daughter got to open a bunch of gifts.For New Year Eve today, we&rsquo;re eating dinner with friends of ours that has a daughter the same age as ours. We&rsquo;ll head home before the fireworks st\",\"classification_terms\":[\"blog/2025-december-recently\",\"about\",\"company\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/blog/do-something-about-it/\",\"status\":200,\"title\":\"Do something about it\\n-\\nTim Hårek\",\"word_count\":518,\"summary_text\":\"Do something about it\\n-\\nTim Hårek Do something about it - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogDo something about itTim Hårek Andreassen (Photo) tim@harek.no PGP keyDo something about itPublished December 7, 20253 minutes readWe have all seen it, read it, experienced it. Lately on the interwebs, people have been complaining a lot about how things was better before, and how everything is turning to shit now. I even made a draft-post myself in October where I also wanted to complain about how everything has gotten so fucking complicated and complex. I stopped writing that draft because I realized I was doing exactly what I&rsquo;m about to criticize&mldr; just adding to the noise instead of offering something actionable. So here we are.By reading the title of this post you may have guessed where I&rsquo;m\",\"classification_terms\":[\"blog/do-something-about-it\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/stats/\",\"status\":200,\"title\":\"Stats\\n-\\nTim Hårek\",\"word_count\":88,\"summary_text\":\"Stats\\n-\\nTim Hårek Stats - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeStatsTim Hårek Andreassen (Photo) tim@harek.no PGP keyStatsSome of my websites stats. These are not meant to be a benchmark of any sorts, more like a visual indication of what I have on my website.It&rsquo;s fun to look at numbers over time, and see how things evolve.Inspired by Luke Harris and Jim Nielsen.WritingYears of writing6Posts143Words84,198Tags75Pages20Posts / Words per year20263 / 1,676202526 / 20,748202435 / 23,651202344 / 20,034202225 / 13,030202111 / 5,059Logs per yearI started tracking fulltime in 2022.Movies202692025542024402023352022312021182020222019920181620171920161820151620142420132620122120119201011TV shows2026420253020243420232120222420214202022019220183201712016120151Books20256202492023420225202142020120196\",\"classification_terms\":[\"stats\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":9,\"depth\":1},{\"path\":\"/privacy/\",\"status\":200,\"title\":\"Privacy\\n-\\nTim Hårek\",\"word_count\":51,\"summary_text\":\"Privacy\\n-\\nTim Hårek Privacy - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomePrivacyTim Hårek Andreassen (Photo) tim@harek.no PGP keyPrivacyLast updated November 15, 2023No tracking. No cookies. This website will always respect your privacy. I will never collect any personal data from you whenever you visit or use something that I have created, period.Last deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"privacy\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/connect/\",\"status\":200,\"title\":\"Connect\\n-\\nTim Hårek\",\"word_count\":59,\"summary_text\":\"Connect\\n-\\nTim Hårek Connect - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeConnectTim Hårek Andreassen (Photo) tim@harek.no PGP keyConnectMy e-mail is open! Introduce yourself, tell me I’m wrong, share content, give feedback, you do you!E-mail: tim@harek.noAcross the webCodebergGitHubJSROpenStreetMapPrintablesSourceHutSignal (@timharek.91)PGPIf you want to send me an encrypted message via email, please use my PGP-key:Fingerprint: F6A1E22056C5806E69528AB2E59C7734F0E10EB5Quick import: curl -sL https://timharek.no/public-key.asc | gpg --importLast deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"connect\",\"about\",\"privacy\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/subscribe/\",\"status\":200,\"title\":\"Subscribe\\n-\\nTim Hårek\",\"word_count\":68,\"summary_text\":\"Subscribe\\n-\\nTim Hårek Subscribe - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeSubscribeTim Hårek Andreassen (Photo) tim@harek.no PGP keySubscribeLast updated March 4, 2025You can subscribe to my blog using e-mail or RSS, using either the Atom- or JSON-feed.E-mail Personally I use NetNewsWire for all my RSS-feeds, but there are plenty of other alternatives out there.Want to learn more about how I RSS, I wrote about it here: How I RSSLast deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"subscribe\",\"about\",\"privacy\",\"news\",\"blog\"],\"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\":1,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":1},{\"path\":\"/tags/programming\",\"status\":200,\"title\":\"Programming\\n-\\nTim Hårek\",\"word_count\":43,\"summary_text\":\"Programming\\n-\\nTim Hårek Programming - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeTagsProgrammingTim Hårek Andreassen (Photo) tim@harek.no PGP keyProgrammingA year with Go (0)Hima devlog #0 (0)Hima Devlog #1 (0)Refactored the unofficial Fimpolitiet's API (0)Why developers question everything (0)Your initial test run should always fail (0)Last deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"tags/programming\",\"about\",\"privacy\",\"api\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/logs\",\"status\":200,\"title\":\"Logs\\n-\\nTim Hårek\",\"word_count\":47,\"summary_text\":\"Logs\\n-\\nTim Hårek Logs - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeLogsTim Hårek Andreassen (Photo) tim@harek.no PGP keyLogsMy logs, where I keep track of movies, TV shows, video games, places I&rsquo;ve visited and so on.I don&rsquo;t use third-party services for my logs, I store everything in plaintext formats.GamesReadingTravelWatchedLast deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"logs\",\"about\",\"privacy\",\"blog\",\"store\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/tags/note-taking\",\"status\":200,\"title\":\"Note-Taking\\n-\\nTim Hårek\",\"word_count\":32,\"summary_text\":\"Note-Taking\\n-\\nTim Hårek Note-Taking - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeTagsNote-TakingTim Hårek Andreassen (Photo) tim@harek.no PGP keyNote-TakingHelix as a notes tool (0)Paper notes (0)reMarkable 2 reView (sort of) (0)Revisting paper notes (0)Last deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"tags/note-taking\",\"about\",\"privacy\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/now\",\"status\":200,\"title\":\"What I'm doing now\\n-\\nTim Hårek\",\"word_count\":192,\"summary_text\":\"What I'm doing now\\n-\\nTim Hårek What I'm doing now - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeWhat I'm doing nowTim Hårek Andreassen (Photo) tim@harek.no PGP keyWhat I'm doing nowLast updated January 27, 2026Becoming a proper homeowner (bought a big house)Expecting another daughterWorking on HimaPlaying Daggerheart (TTRPG)Recent2025-11-30Started moving into our new house2025-01-26Handed over the keys to housing cooperative house2025-12-07Wrote Do something about it2025-11-26Sold our housing cooperative house2025-11-15Bought a standalone house with double garage2025-11-01Replaced Nextcloud with Syncthing2025-10-21Wrote Hima Devlog #12025-10-15Started playing ARC Raiders2025-09-21Started playing Daggerheart (TTRPG)2025-09-18Switched out yabai with Aerospace2025-09-09Wrote about a year with Go2025-07-17Bought my\",\"classification_terms\":[\"now\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":32,\"depth\":2},{\"path\":\"/more\",\"status\":200,\"title\":\"More\\n-\\nTim Hårek\",\"word_count\":44,\"summary_text\":\"More\\n-\\nTim Hårek More - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeMoreTim Hårek Andreassen (Photo) tim@harek.no PGP keyMoreThis website contains things that&rsquo;s available at first glance. The following list is not a complete list of all the pages, the rest is for you to find!CVBlogrollLogsNowUsesProjectsColophonLast deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"more\",\"about\",\"privacy\",\"blog\",\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/connect\",\"status\":200,\"title\":\"Connect\\n-\\nTim Hårek\",\"word_count\":59,\"summary_text\":\"Connect\\n-\\nTim Hårek Connect - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeConnectTim Hårek Andreassen (Photo) tim@harek.no PGP keyConnectMy e-mail is open! Introduce yourself, tell me I’m wrong, share content, give feedback, you do you!E-mail: tim@harek.noAcross the webCodebergGitHubJSROpenStreetMapPrintablesSourceHutSignal (@timharek.91)PGPIf you want to send me an encrypted message via email, please use my PGP-key:Fingerprint: F6A1E22056C5806E69528AB2E59C7734F0E10EB5Quick import: curl -sL https://timharek.no/public-key.asc | gpg --importLast deploy: 2026-03-17StatsPrivacyConnectSubscribe\",\"classification_terms\":[\"connect\",\"about\",\"privacy\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/colophon\",\"status\":200,\"title\":\"Colophon\\n-\\nTim Hårek\",\"word_count\":116,\"summary_text\":\"Colophon\\n-\\nTim Hårek Colophon - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeColophonTim Hårek Andreassen (Photo) tim@harek.no PGP keyColophonLast updated February 15, 2025A colophon is a page or section, like a footer, of a site that describes how the site is made, with what tools, supporting what technologies. See Wikipedia for more details.TL;DRThis website is built using Hugo by yours truly. It&rsquo;s hosted on a 1984 Hosting VPS.Source code is available on SourceHut.Proud member of:1MB club512KB clubThe stackStatic site generator (SSG)HugoHosted on1984 Hosting VPSReverse-proxyCaddySource code hostingSourceHutAutomatic deploymentSourceHut buildsSite structureBlog with tagsBlogroll based on OPMLCVBased on JSON schema, but with TOMLSeperate projects-page with filterLogs stored in JSON-files, which a\",\"classification_terms\":[\"colophon\",\"about\",\"support\",\"blog\",\"store\",\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-november-recently/\",\"status\":200,\"title\":\"November 2025\\n-\\nTim Hårek\",\"word_count\":706,\"summary_text\":\"November 2025\\n-\\nTim Hårek November 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogNovember 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyNovember 2025Published November 30, 20254 minutes readThis month felt like two months, I don&rsquo;t know why.🍀 Lifeage++ this month, I have less than a year left in my twenties, not that I worry about that. But friends and family always like to point that out when one&rsquo;s age is closing in on a round number.Besides turning 29, we managed to buy a fucking house, a full standalone house with a double garage, and carport. We&rsquo;re going to have a lawn, huge driveway, more responsibility, and a huge mortgage! And we managed to sell our current house in a housing cooperative. We were worried a minute about not being able to sell our current place before\",\"classification_terms\":[\"blog/2025-november-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-october-recently/\",\"status\":200,\"title\":\"October 2025\\n-\\nTim Hårek\",\"word_count\":796,\"summary_text\":\"October 2025\\n-\\nTim Hårek October 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogOctober 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyOctober 2025Published October 31, 20254 minutes readOnce again, time moves fast, and here we are, with another monthly update.From the blog since my last recently post:Hima Devlog #1🍀 LifeTo be honest it feels like a lot of stuff is happening at the moment. I thought the rest of the year was going to be pretty chill, but we have made some last minute changes to our foreseeable future. I know, it sounds mysterious, but in reality it just means that we have just these last couple weeks started looking for a new house. I have always wanted a real standalone house, not a duplex, or a housing cooperative, an actual house, with a garage&mldr; or two! So we are on t\",\"classification_terms\":[\"blog/2025-october-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/hima-devlog-1/\",\"status\":200,\"title\":\"Hima Devlog #1\\n-\\nTim Hårek\",\"word_count\":972,\"summary_text\":\"Hima Devlog #1\\n-\\nTim Hårek Hima Devlog #1 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogHima Devlog #1Tim Hårek Andreassen (Photo) tim@harek.no PGP keyHima Devlog #1Published October 21, 20255 minutes readYou should read the first devlog before reading this devlog. There I explain what Hima is and my motivation behind the project.On January 25th 2025 I started to rewrite Hima. My initial reason was just to port everything to Go with all the stuff that I had learned along the way, but it quickly became much more than a rewrite. It has become a full-blown remake in Go.Receipts and items are separateOne thing that I quickly learned was that receipts can have multiple items, I did of course already know this, but I didn&rsquo;t think of this for my initial implementation of Item. Therefore, when a receipt h\",\"classification_terms\":[\"blog/hima-devlog-1\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":3,\"depth\":2},{\"path\":\"/blog/2025-september-recently/\",\"status\":200,\"title\":\"September 2025\\n-\\nTim Hårek\",\"word_count\":650,\"summary_text\":\"September 2025\\n-\\nTim Hårek September 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogSeptember 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keySeptember 2025Published October 1, 20254 minutes readFall is upon us! It&rsquo;s getting colder and darker everyday now, it&rsquo;s starting to smell like fall. Anyhow, this is what I&rsquo;ve been up to this month!From the blog since my last recently post:A year with Go🍀 LifeNot a whole lot is happening here. Our daughter is still surprising us every day with something new she knows, says, or does. Being a parent is really fun!I haven&rsquo;t mentioned on the blog before, at least not in a recently post, but I play table top roleplaying games. Just yesterday we had our official session #1 of Daggerheart. After trying a bunch of different games the last t\",\"classification_terms\":[\"blog/2025-september-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/a-year-with-go/\",\"status\":200,\"title\":\"A year with Go\\n-\\nTim Hårek\",\"word_count\":2288,\"summary_text\":\"A year with Go\\n-\\nTim Hårek A year with Go - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogA year with GoTim Hårek Andreassen (Photo) tim@harek.no PGP keyA year with GoPublished September 9, 202511 minutes readAugust last year a coworker asked me if we could use Go for an upcoming project, integrating an invoice system to an ERP. We had been using mostly Node and Deno with TypeScript for all our needs to this point, but the project was supposed to be small, so we agreed that he could try for this project. A couple of weeks later I was tasked with a similar project (at least we thought), I asked my coworker to help me get started with Go and how stuff worked.One year ago, today, I started my first Go-project. I&rsquo;m still maintaining and updating this project today. My passion for Go has grown a lot over\",\"classification_terms\":[\"blog/a-year-with-go\",\"about\",\"help\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-august-recently/\",\"status\":200,\"title\":\"August 2025\\n-\\nTim Hårek\",\"word_count\":460,\"summary_text\":\"August 2025\\n-\\nTim Hårek August 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogAugust 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyAugust 2025Published September 1, 20253 minutes readSummer&rsquo;s coming to an end, I&rsquo;ve been at work for a month, and here&rsquo;s what I&rsquo;ve been up to since July!From the blog this month:Volkswagen ID. Buzz first impressionsHima devlog #0💪 HealthSomething happened to me this month, after starting back at work in August I started waking up before my alarm, and I began to wake up earlier and earlier. So now I wake up before 06:00 every day, around 07:00 in the weekends. This has resulted in me going for a 5 km run or strength training for the last 14 days. I&rsquo;m very happy with this!🧑‍💻 DevelopmentNot a lot has happened this month except for so\",\"classification_terms\":[\"blog/2025-august-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/hima-devlog-0/\",\"status\":200,\"title\":\"Hima devlog #0\\n-\\nTim Hårek\",\"word_count\":915,\"summary_text\":\"Hima devlog #0\\n-\\nTim Hårek Hima devlog #0 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogHima devlog #0Tim Hårek Andreassen (Photo) tim@harek.no PGP keyHima devlog #0Published August 29, 20255 minutes readHome Inventory Management Application, or [Hima] for short, has been my passion project since April 2023. It is what the name says, an inventory management app for stuff in your home.This initial devlog will lay the groundwork for what Hima is, and what I want it to become. Future devlogs will be some kind of design docs and discussion starters for how I want to progress the project.WhyAfter I finished my compulsory military service, moved to my own apartment and started studying in 2017, I wanted to keep track of all my stuff. I didn&rsquo;t have that much, and I figured now that no one would take care\",\"classification_terms\":[\"blog/hima-devlog-0\",\"about\",\"docs\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/volkswagen-id-buzz-first-impressions/\",\"status\":200,\"title\":\"Volkswagen ID. Buzz first impressions\\n-\\nTim Hårek\",\"word_count\":1670,\"summary_text\":\"Volkswagen ID. Buzz first impressions\\n-\\nTim Hårek Volkswagen ID. Buzz first impressions - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogVolkswagen ID. Buzz first impressionsTim Hårek Andreassen (Photo) tim@harek.no PGP keyVolkswagen ID. Buzz first impressionsPublished August 12, 20258 minutes readPhoto from the ad of my Volkswagen ID. Buzz.I bought a used Volkswagen ID. Buzz last month and have been driving it for a few weeks now. These are my first impressions coming from a 2013 Skoda Rapid with absolutely no extra equipment/additions.Size/StorageIt&rsquo;s a huge car. I can fit everything. We can drive around with a bunch of luggage, with our daughter in her seat, the dog in the trunk in a big cage, the cat in another cage, all while having more space. I know this depends on how you pack and where you&rsquo;re going. And it&r\",\"classification_terms\":[\"blog/volkswagen-id-buzz-first-impressions\",\"about\",\"api\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-july-recently/\",\"status\":200,\"title\":\"July 2025\\n-\\nTim Hårek\",\"word_count\":1127,\"summary_text\":\"July 2025\\n-\\nTim Hårek July 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogJuly 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyJuly 2025Published July 31, 20256 minutes readOnly a few days left of the summer vacation, and here we are again! Let&rsquo;s recap what I&rsquo;ve been up to since June.🍀 LifeStarted our summer vacation this month, starting work again on Monday.We&rsquo;ve been to some friend&rsquo;s cabin with our daughter, hiking and just hanging out. We went to my hometown and Stavanger for my brother&rsquo;s wedding. Visited family at their cabin, gone fishing, went to the beach, and much more.And we bought a new car! We have wanted a new car for a long time now, and I finally pulled the trigger and bought a used Volkswagen ID. Buzz 2022/2023. Our previous car was an 2013 Skod\",\"classification_terms\":[\"blog/2025-july-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-june-recently/\",\"status\":200,\"title\":\"June 2025\\n-\\nTim Hårek\",\"word_count\":927,\"summary_text\":\"June 2025\\n-\\nTim Hårek June 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogJune 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyJune 2025Published July 1, 20255 minutes readWe&rsquo;re officially more than half-way through 2025! June has felt like the shortest month so far.🍀 LifeThis month I&rsquo;ve been to Berlin with my older brother and younger sister, as a gift to our sister for her confirmation back in April. We went sightseeing, lots of history and culture to uncover. We also went to two amateur standups, both were excellent. It was an absolute blast!I also went to my brother&rsquo;s bachelors-party in cabin for a weekend. It was lots of fun, we did a lot of different activities 😅Beside my adventures things have been settling more and more at home with my SO&rsquo;s new job, and our\",\"classification_terms\":[\"blog/2025-june-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-may-recently/\",\"status\":200,\"title\":\"May 2025\\n-\\nTim Hårek\",\"word_count\":685,\"summary_text\":\"May 2025\\n-\\nTim Hårek May 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogMay 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyMay 2025Published May 31, 20254 minutes readThe shortest work month in Norway is over, and summer is right around the corner!From the blog this month:Docker ContextIntroducing git-bump🍀 LifeMy SO started traveling offshore this month. She was told it was going to be an average of 4 days a month offshore, but her first month traveling offshore she&rsquo;s been away for 10 days. Being a part-time single dad for those days wasn&rsquo;t that bad, except for the first day away. We&rsquo;re fortunate to have such a happy and patient daughter.We went on a weekend-family cruise with most of my family, 27 family members, to Denmark. It was an experience for sure! Nice to see\",\"classification_terms\":[\"blog/2025-may-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/introducing-git-bump/\",\"status\":200,\"title\":\"Introducing git-bump\\n-\\nTim Hårek\",\"word_count\":254,\"summary_text\":\"Introducing git-bump\\n-\\nTim Hårek Introducing git-bump - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogIntroducing git-bumpTim Hårek Andreassen (Photo) tim@harek.no PGP keyIntroducing git-bumpPublished May 22, 20252 minutes readFor both my personal and professional projects I use git tag for releasing new versions. And I like to have git shortlog &lt;latest tag>..HEAD as the body/message of the tag to quickly be able to see what a tag contains regardless of the source-forge you use (I/we don&rsquo;t want to use GitHub releases at work).So I created a git-bump that does exactly what it says, it bumps the (semver) version. It defaults to patch, but you can pass --minor and --major to tell it otherwise.And if you&rsquo;re like me and sometimes mess up the tag/version, you can do git-bump undo. And even git-bump und\",\"classification_terms\":[\"blog/introducing-git-bump\",\"about\",\"help\",\"login\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/docker-context/\",\"status\":200,\"title\":\"Docker Context\\n-\\nTim Hårek\",\"word_count\":325,\"summary_text\":\"Docker Context\\n-\\nTim Hårek Docker Context - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogDocker ContextTim Hårek Andreassen (Photo) tim@harek.no PGP keyDocker ContextPublished May 6, 20252 minutes readA while back I came across Dreams of Code&rsquo;s video about docker stack. I mentioned at work that we should definitely check this out if we decide to not use Google Cloud Platform (GCP) for an upcoming project.Well, after a few months a coworker set up a new project on a VPS and used Docker to get stuff running. He used Dreams of Code&rsquo;s video as a reference for how to deploy, but quickly discovered that we don&rsquo;t need docker stack, docker context is sufficient for our needs.Enough context, let&rsquo;s dive into how I started using it for my own self-hosting.The TL;DR for docker context is that\",\"classification_terms\":[\"blog/docker-context\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/april-recently/\",\"status\":200,\"title\":\"April 2025\\n-\\nTim Hårek\",\"word_count\":956,\"summary_text\":\"April 2025\\n-\\nTim Hårek April 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogApril 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyApril 2025Published April 30, 2025Last updated May 6, 20255 minutes readSpring is upon us! It&rsquo;s getting warmer, brighter, and summer is just around the corner! And April is over, and I haven&rsquo;t written a damn thing this month – oh well.🍀 LifeEvery month I&rsquo;m amazed at just how much our daughter can change and develop. This month she surpassed 250 words, and now we&rsquo;re officially done counting 😂 She can speak in sentences with more than four words, and it gets better every day. Just today she managed to put on her shoes after I asked her before heading to kindergarten. We couldn&rsquo;t be more proud!Like I mentioned last month, my SO got a ne\",\"classification_terms\":[\"blog/april-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-march-recently/\",\"status\":200,\"title\":\"March 2025\\n-\\nTim Hårek\",\"word_count\":1012,\"summary_text\":\"March 2025\\n-\\nTim Hårek March 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogMarch 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyMarch 2025Published March 31, 20255 minutes readFirst quarter of 2025 is over and here I am with another post about what I&rsquo;ve been up to since February!From the blog this month:Kagi reviewSubscribe via e-mailWhy developers question everything🍀 LifeThis past month our daughter has learned to say at least 100 words, she is closing in on 200 words now, and she&rsquo;s not even two years old. We get surprised every day whenever she says a new word, and she&rsquo;s putting them together to make up short sentences. It&rsquo;s really something extraordinary.And my SO got a new job, which is huge for us! It will make things easier for us for sure and she also has a\",\"classification_terms\":[\"blog/2025-march-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/why-developers-question-everything/\",\"status\":200,\"title\":\"Why developers question everything\\n-\\nTim Hårek\",\"word_count\":409,\"summary_text\":\"Why developers question everything\\n-\\nTim Hårek Why developers question everything - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogWhy developers question everythingTim Hårek Andreassen (Photo) tim@harek.no PGP keyWhy developers question everythingPublished March 27, 2025Last updated August 20, 20252 minutes readAs a developer myself, I&rsquo;ve noticed something about our profession that feels controversial to admit: we question everything, sometimes to the point where we might seem like we&rsquo;re being difficult. And I&rsquo;m not here to tell you that this is a problem, per se, it more like an observation.Bathroom renovation vs. a software integrationI believe developers have a unique approach compared to other professionals. Let&rsquo;s consider this comparison:Bathroom renovationImagine you&rsquo;re renovating your bat\",\"classification_terms\":[\"blog/why-developers-question-everything\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/subscribe-via-email/\",\"status\":200,\"title\":\"Subscribe via e-mail\\n-\\nTim Hårek\",\"word_count\":195,\"summary_text\":\"Subscribe via e-mail\\n-\\nTim Hårek Subscribe via e-mail - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogSubscribe via e-mailTim Hårek Andreassen (Photo) tim@harek.no PGP keySubscribe via e-mailPublished March 4, 20251 minutes readAs of today you can subscribe to the blog via email, not just RSS or by browsing the site frequently.Not everyone uses RSS, and some even prefer to subscribe via email for their online consumption outside of social media and such. And now you can!I signed up for Buttondown today, and I opted for their basic plan to simplify the process of not having to copy/paste my posts over. Buttondown uses my RSS-feed to fetch the latest posts and send them out as a newsletter. It can do it automatically, but to begin with I prefer to click the &ldquo;send&rdquo;-button.You can subscribe below:E-mail\",\"classification_terms\":[\"blog/subscribe-via-email\",\"about\",\"news\",\"blog\"],\"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\":1,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/kagi-review/\",\"status\":200,\"title\":\"Kagi review\\n-\\nTim Hårek\",\"word_count\":1134,\"summary_text\":\"Kagi review\\n-\\nTim Hårek Kagi review - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogKagi reviewTim Hårek Andreassen (Photo) tim@harek.no PGP keyKagi reviewPublished March 1, 20256 minutes readKagi is a paid ad-free search engine. The goal of Kagi is to provide its user with great search results instead of ads, ads, and more ads for stuff you didn&rsquo;t ask for. This is my review for Kagi after using it for 500 days.FeaturesThe search engine isn&rsquo;t just free of ads, it has features Google, and even DuckDuckGo doesn&rsquo;t have.No adsAbility to block and boost domainsSurfaced high quality contentStuff from smaller sites grouped in a list.LensesFocus on different topics regarding the query.BangsWorks just like DuckDuckGo&rsquo;s, Spider-Man !tmdb brings you straight to The Movie Database&rsquo;s w\",\"classification_terms\":[\"blog/kagi-review\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-february-recently/\",\"status\":200,\"title\":\"February 2025\\n-\\nTim Hårek\",\"word_count\":781,\"summary_text\":\"February 2025\\n-\\nTim Hårek February 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogFebruary 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyFebruary 2025Published February 28, 20254 minutes readThe shortest month is at an end, so here we are!✍️ WritingHugo is giving me energy to write more. Here&rsquo;s what I wrote this month:AI saved my computer from water damageI accidentally went static againTrying out Zen Browser🍀 LifeAlthough February is the shortest month, it sure feels like I managed to do a lot this month. The sun rises earlier and goes down later, and I can really feel an impact on my overall mood and energy level. And our daughter has started speaking a lot more, combining words, saying sentences, and she&rsquo;s just so joyful!💪 HealthAfter my slacking of last month because of sickn\",\"classification_terms\":[\"blog/2025-february-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/trying-out-zen-browser/\",\"status\":200,\"title\":\"Trying out Zen Browser\\n-\\nTim Hårek\",\"word_count\":473,\"summary_text\":\"Trying out Zen Browser\\n-\\nTim Hårek Trying out Zen Browser - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogTrying out Zen BrowserTim Hårek Andreassen (Photo) tim@harek.no PGP keyTrying out Zen BrowserPublished February 23, 20253 minutes readThe first browser I used, to my knowledge, was Firefox. Back in the early 2000s when my brother and I bought our first computer together. He was the computer-wizard and knew what was good.Since then I daily driven many different browsers, but I ended up with Firefox again ~10 years ago. However, I must admit that I have up until yesterday used Chrome for my work-related stuff because work uses Google Workspace and I wanted an easy way to differentiate work and personal stuff.Yesterday I recalled an earlier episode of the Changelog-podcast, Changelog & Friends #76 where they men\",\"classification_terms\":[\"blog/trying-out-zen-browser\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/i-accidentally-went-static-again/\",\"status\":200,\"title\":\"I accidentally went static again\\n-\\nTim Hårek\",\"word_count\":405,\"summary_text\":\"I accidentally went static again\\n-\\nTim Hårek I accidentally went static again - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogI accidentally went static againTim Hårek Andreassen (Photo) tim@harek.no PGP keyI accidentally went static againPublished February 16, 20252 minutes readIt took me 225 days to realize that I don&rsquo;t want to maintain my website with TypeScript anymore. And that I don&rsquo;t need to server-side render my content. Static is just fine.Previously I have used Jekyll and Zola, and now I switched from Deno Fresh to Hugo. It took me about a week worth of time to migrate my whole website to Hugo, and no one should be able to notice the difference. Everything looks the same, same urls, same RSS-feeds and same look and feel.However, I had to say goodbye to my .well-known-pages. These were server-generated\",\"classification_terms\":[\"blog/i-accidentally-went-static-again\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/ai-saved-my-computer-from-water-damage/\",\"status\":200,\"title\":\"AI saved my computer from water damage\\n-\\nTim Hårek\",\"word_count\":470,\"summary_text\":\"AI saved my computer from water damage\\n-\\nTim Hårek AI saved my computer from water damage - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogAI saved my computer from water damageTim Hårek Andreassen (Photo) tim@harek.no PGP keyAI saved my computer from water damagePublished February 5, 20253 minutes readSorry for the clickbait title, but I couldn&rsquo;t help myself.Today I forgot to put a water-proof cover on my backpack on my way to work. When I got to work and took out my laptop, I saw water on the bottom. Weird&mldr;I used paper towels to wipe off the water. But when I switched on my laptop, I saw that the laptop thought it had headphones in the audio-jack. Weird. Then I checked the audio-jack and saw more water, and all the other ports on the laptop had water in them as well. Oh fuck.I used more paper towels to try to wipe of\",\"classification_terms\":[\"blog/ai-saved-my-computer-from-water-damage\",\"about\",\"help\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2025-january-recently/\",\"status\":200,\"title\":\"January 2025\\n-\\nTim Hårek\",\"word_count\":715,\"summary_text\":\"January 2025\\n-\\nTim Hårek January 2025 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogJanuary 2025Tim Hårek Andreassen (Photo) tim@harek.no PGP keyJanuary 2025Published January 31, 20254 minutes readIt&rsquo;s the end of the month again, and that wraps the first month of 2025!🍀 LifeI started off the year with a new job title, I&rsquo;m now officially the Tech lead at Value Technology. And work has been keeping me busy, I have been pretty tired after work a few days this past month.Our daughter is growing strong! She always wants be outside, whatever weather, and that&rsquo;s how it should be! She&rsquo;s really enjoying kindergarten and we couldn&rsquo;t be more happy. As I&rsquo;m writing this the kindergarten is having a &ldquo;planning-day&rdquo;, so my daughter and I have been at home all day, or we\",\"classification_terms\":[\"blog/2025-january-recently\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2024-december-recently/\",\"status\":200,\"title\":\"December 2024\\n-\\nTim Hårek\",\"word_count\":677,\"summary_text\":\"December 2024\\n-\\nTim Hårek December 2024 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogDecember 2024Tim Hårek Andreassen (Photo) tim@harek.no PGP keyDecember 2024Published December 31, 20244 minutes readThe end of the year is upon us and here I am, ready to recap what happened since November.Be sure to checkout my 2024 Year in review.🍀 LifeHolidays, Christmas, New Year&rsquo;s etc., December is always filled with stuff.We went to visit my family for Christmas this year, our daughter&rsquo;s second Christmas. It was a lot of fun, excellent food, and company! Highlight of the evening has to be seeing our daughter so happy and us getting a full-size grill.We&rsquo;re currently in the mountains for New Year&rsquo;s, so we get to see snow and fireworks at the same time ❄️🎆. We&rsquo;re staying at cabin with\",\"classification_terms\":[\"blog/2024-december-recently\",\"about\",\"checkout\",\"company\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2024-year-in-review/\",\"status\":200,\"title\":\"2024 Year in review\\n-\\nTim Hårek\",\"word_count\":1571,\"summary_text\":\"2024 Year in review\\n-\\nTim Hårek 2024 Year in review - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlog2024 Year in reviewTim Hårek Andreassen (Photo) tim@harek.no PGP key2024 Year in reviewPublished December 29, 20248 minutes readThe older I get, the faster time moves. If time feels this fast when I&rsquo;m 28, then I can&rsquo;t imagine how fast time moves when I&rsquo;m 38. 2024 has been a blast, and now it&rsquo;s soon a blast in the past. Let&rsquo;s dive in to what happened!Looking backYearly themes2024&rsquo;s yearly theme was Year of Listening, it involved the following:Reduce unsolicited adviceListen more activelyDon&rsquo;t assumeAsk until I understandAsk for feedbackI have gotten better at all of these items, some more than others. The ones I know I have gotten better at is &ldquo;ask until I understan\",\"classification_terms\":[\"blog/2024-year-in-review\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/zsa-voyager-review/\",\"status\":200,\"title\":\"ZSA Voyager review\\n-\\nTim Hårek\",\"word_count\":1376,\"summary_text\":\"ZSA Voyager review\\n-\\nTim Hårek ZSA Voyager review - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogZSA Voyager reviewTim Hårek Andreassen (Photo) tim@harek.no PGP keyZSA Voyager reviewPublished December 8, 20247 minutes readMy Voyager keyboard.ZSA Voyager is a low-profile split-keyboard with 52 keys that is built with open-source firmware, hot-swappable keys and more.After using ZSA Voyager for more than two months I think I have what I need to give a proper review of this thing.HardwareThe keyboard is split into two &ldquo;islands&rdquo; (or halves), that each weigh 217 grams. There are 52-keys in total on the whole keyboard. It&rsquo;s made out of metal with plastic keycaps. It comes with four magnet feet that attach on one side of each &ldquo;island&rdquo; to give it a tent position. ZSA also includes three\",\"classification_terms\":[\"blog/zsa-voyager-review\",\"about\",\"blog\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/how-i-remember-birthdays/\",\"status\":200,\"title\":\"How I remember birthdays\\n-\\nTim Hårek\",\"word_count\":156,\"summary_text\":\"How I remember birthdays\\n-\\nTim Hårek How I remember birthdays - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogHow I remember birthdaysTim Hårek Andreassen (Photo) tim@harek.no PGP keyHow I remember birthdaysPublished December 7, 20241 minutes readSince I remove social media from my life friends and family has asked me how I keep up with birthdays (they ask about other stuff too, don&rsquo;t worry). My answer is simple, I store the birthdays for my close friends and family in their contact (vCard) on my phone. On iOS this works excellent with the built-in calendar.That&rsquo;s pretty much it.I recorded my phone to quickly demonstrate the feature:How to add birthdays to your contacts.It seems like the feature is available on Android as well, but I haven&rsquo;t tested it: https://support.google.com/calendar/answer/13\",\"classification_terms\":[\"blog/how-i-remember-birthdays\",\"about\",\"contact\",\"support\",\"blog\",\"store\"],\"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\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":1,\"depth\":2},{\"path\":\"/blog/2024-november-recently/\",\"status\":200,\"title\":\"November 2024\\n-\\nTim Hårek\",\"word_count\":866,\"summary_text\":\"November 2024\\n-\\nTim Hårek November 2024 - Tim Hårek Skip to content Tim HårekBlogAboutMore…HomeBlogNovember 2024Tim Hårek Andreassen (Photo) tim@harek.no PGP keyNovember 2024Published November 30, 20245 minutes readWork, sickness, a hospital visit, birthday. November has been eventful!🍀 LifeOur daughter is growing fast and is running around all the time! We have gotten into a good routine with day-to-day now, with work, kindergarten, family-time etc.It hasn&rsquo;t been hectic at work, but I had a deadline before a demo of an integration between two systems that was this week. It was stressful before and during the demo. I believe we managed to give a good demo and that the stressful time before the demo was worth it!💪 HealthThis has to be my worst health month this year, and probably to date. I managed to get sick\",\"classification_terms\":[\"blog/20",
        "score_reasons_json": "[]",
        "route_domain": "timharek.no",
        "display_domain": "timharek.no"
    },
    "explainability": {
        "summary": "timharek.no 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": "Moderate confidence",
                "tone": "caution",
                "detail": "45/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "weighted_contributions": [
            {
                "label": "Quality system",
                "points": "+30.3",
                "tone": "good",
                "detail": "Technical quality, crawl depth, page structure, and implementation hygiene. Current subsystem score: 89/100."
            },
            {
                "label": "Reputation system",
                "points": "+12.9",
                "tone": "risk",
                "detail": "Authority, search visibility, reach, engagement, and registry stability. Current subsystem score: 38/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": "-11.0",
                "tone": "risk",
                "detail": "Safety thresholds capped the final score until the risk profile improves."
            }
        ],
        "evidence_cards": [
            {
                "label": "Authority and trust",
                "value": "28/100 · trust 46/100",
                "tone": "risk",
                "detail": "112 monthly visitors, 60 organic keywords, brand completeness 48/100, engagement 73/100."
            },
            {
                "label": "Backlink and search evidence",
                "value": "3 referring domains",
                "tone": "good",
                "detail": "3 backlinks across 3 referring domains. Diversity 94/100; spam penalty 6."
            },
            {
                "label": "Registry and domain stability",
                "value": "5.4 years old",
                "tone": "good",
                "detail": "Stability 100/100 · age 5.4 years · registrar Domeneshop AS."
            },
            {
                "label": "Safety and fraud posture",
                "value": "Safety 100/100 · fraud 2/100",
                "tone": "good",
                "detail": "Primary tag T · safety 100/100 · fraud 2/100."
            }
        ],
        "positives": [
            "Established domain age: 5.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Search evidence is broad enough to classify with better confidence.",
            "DNSSEC is enabled.",
            "Registry history looks stable, which supports legitimacy and trust."
        ],
        "risks": [],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-18 21:00:36",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 2mo ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-18 21:00:29",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 2mo ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-06-05 01:32:23",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-06-05 01:32:23",
                "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": 75,
        "fraud_clamp_penalty": 11,
        "final_score": 64
    },
    "insight_snapshot": {
        "version": 1,
        "generated_at": "2026-06-05T01:32:23+00:00",
        "domain": "timharek.no",
        "display_name": "Tim Hårek",
        "is_tracked": false,
        "is_estimated": true,
        "overall_score": 64,
        "authority_score": 28,
        "trust_score": 46,
        "safety_score": 100,
        "fraud_score": 2,
        "confidence_score": 100,
        "traffic_confidence": 45,
        "last_crawled_at": "2026-03-18 21:00:36",
        "crawl_blocked": false,
        "summary": "timharek.no 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": "Moderate confidence",
                "tone": "caution",
                "detail": "45/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "top_positive_signals": [
            "Established domain age: 5.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Search evidence is broad enough to classify with better confidence.",
            "DNSSEC is enabled."
        ],
        "top_risk_signals": [],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-03-18 21:00:36",
                "tone": "risk",
                "detail": "Crawl and page content sample. Age: 2mo ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-03-18 21:00:29",
                "tone": "risk",
                "detail": "Registry profile and stability signals. Age: 2mo ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-06-05 01:32:23",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-06-05 01:32:23",
                "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"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown"
            }
        ]
    },
    "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-06-05T04:38:28+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/timharek.no/refresh",
        "isGuestCooldown": false,
        "cooldownSeconds": 0
    },
    "urlscan_report": {
        "domain": "timharek.no",
        "status": "idle",
        "submitted_at": null,
        "completed_at": null,
        "last_checked_at": null,
        "last_error": "",
        "submitted_url": "https://timharek.no/",
        "uuid": "",
        "result_url": "",
        "api_result_url": "",
        "visibility": "public",
        "summary": "No urlscan.io report has been requested for this domain yet.",
        "report": [],
        "report_summary": [],
        "is_fresh": false,
        "can_retry": true,
        "poll_after_seconds": 20
    }
}