https://www.mattknight.io/

ID da verificação
b4934aca-c188-4843-82fc-a05e6599fd86Concluído
URL enviado:
https://www.mattknight.io/
Relatório concluído:

Ligações · 3 encontradas

HiperligaçãoTexto
https://www.github.com/abstractvectorabstractvector
https://mastodon.knight.fyi/@matt@[email protected]
https://matrix.to/#/@matt:knight.fyi@matt:knight.fyi

Variáveis JavaScript · 4 encontradas

NomeTipo
onbeforetoggleobject
documentPictureInPictureobject
onscrollendobject
SITEobject

Mensagens de registo da consola · 0 encontradas

HTML

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Matt Knight - open-source, self-hosted and home automation | Matt Knight</title><meta name="description" content="Technology blog by Matt Knight - open-source, self-hosted and home automation"><meta property="og:title" content="Matt Knight - open-source, self-hosted and home automation | Matt Knight"><meta property="og:description" content="Technology blog by Matt Knight - open-source, self-hosted and home automation"><meta property="og:url" content="https://www.mattknight.io/"><meta property="og:site_name" content="Matt Knight"><meta name="generator" content="Eleventy"><style>@charset "UTF-8";code[class*=language-],pre[class*=language-]{color:#f8f8f2;direction:ltr;font-family:Consolas,Monaco,Andale Mono,monospace;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;text-shadow:0 1px rgba(0,0,0,.3);white-space:pre;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.property,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#f8f8f2}.token.atrule,.token.attr-value{color:#e6db74}.token.keyword{color:#f92672}.token.important,.token.regex{color:#fd971f}.token.important{font-weight:700}.token.entity{cursor:help}:root{--font-body:Seravek,"Gill Sans Nova",Ubuntu,Calibri,"DejaVu Sans",source-sans-pro,sans-serif;--color-black:#1d1d1d;--color-white:#fff;--color-primary-darkest:#012232;--color-primary-dark:#023047;--color-primary-mid:#219ebc;--color-primary-light:#8ecae6;--color-primary-lightest:#eff7fb;--color-secondary-dark:#cc3e00;--color-secondary-mid:#ffb703;--font-size-base:1.8rem}html{font-size:62.5%;height:100%}@media screen and (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion){html *{transition:none!important}}body{background:var(--color-white);color:var(--color-black);display:flex;flex-direction:column;font-family:var(--font-body);font-size:var(--font-size-base);margin:0;min-height:100%;text-underline-offset:.6rem}*,:after,:before,body{box-sizing:border-box}img{display:block;max-width:100%}p{line-height:1.6}li{line-height:2}a{color:var(--color-secondary-dark);text-decoration:underline}a:hover{text-decoration:none}h1,h2,h3,h4,h5,h6{--multiplier:1;font-size:calc(var(--font-size-base)*var(--font-size-multiplier));font-weight:400;margin-bottom:.8em;margin-top:1.2em}h1[id] a,h2[id] a,h3[id] a,h4[id] a,h5[id] a,h6[id] a{color:inherit;display:inline-block;text-decoration:none}h1[id] a:hover,h2[id] a:hover,h3[id] a:hover,h4[id] a:hover,h5[id] a:hover,h6[id] a:hover{text-decoration:underline;text-decoration-color:rgba(0,0,0,.3);text-decoration-style:dotted;text-decoration-thickness:.2rem;text-underline-offset:.6rem}h1[id] a:hover:after,h2[id] a:hover:after,h3[id] a:hover:after,h4[id] a:hover:after,h5[id] a:hover:after,h6[id] a:hover:after{content:"#";display:inline-block;opacity:.3;padding-left:.8rem;text-decoration:none}h1{--font-size-multiplier:2}h2{--font-size-multiplier:1.7}h3{--font-size-multiplier:1.4}@media (prefers-color-scheme:dark){body{background:var(--color-black);color:var(--color-white)}a{color:var(--color-secondary-mid)}}.blog-post header,.page{padding:2.4rem max(2.4rem,50vw - 512px)}.blog-post header{background:var(--color-primary-lightest);border-bottom:1px solid #e7f4fa}.blog-post header .blog-post__description{font-size:2rem}.blog-post main{padding:2.4rem max(2.4rem,50vw - 512px)}.blog-post figure{align-items:center;background:var(--color-primary-lightest);border-radius:.8rem;box-shadow:.4rem .4rem .8rem rgba(0,0,0,.1);box-sizing:border-box;display:flex;flex-direction:column;margin:3.2rem 0;padding:1.2rem;text-align:center;width:100%}.blog-post figure img{height:100%}.blog-post figure figcaption{opacity:.8;padding:1.2rem 1.2rem 0}@media (prefers-color-scheme:dark){.blog-post header{border-bottom:1px solid var(--color-primary-dark)}.blog-post figure,.blog-post header{background:var(--color-primary-darkest)}}.footer{margin-top:auto}.footer__links{background:var(--color-primary-lightest);border-top:1px solid #e7f4fa;display:grid;gap:4.8rem;grid-template-columns:1fr;padding:4.8rem max(2.4rem,50vw - 512px)}.footer__links h3{margin-bottom:1.2rem;margin-top:0}.footer__links section ul{margin:0;padding:0}.footer__links section ul li{display:block;list-style-type:none;padding:0}.footer__copyright{background:var(--color-primary-darkest);color:var(--color-white);-moz-column-gap:2.4rem;column-gap:2.4rem;display:flex;flex-wrap:wrap;justify-content:center;padding:2.4rem max(2.4rem,50vw - 512px)}.footer__copyright p{text-align:center}.footer__copyright a{color:var(--color-secondary-mid)}.footer__top-link{display:inline-block}.footer__top-link:before{content:"↑";display:inline-block;padding-right:.8rem;text-decoration:none}@media (min-width:768px){.footer{margin-top:auto}.footer__links{grid-template-columns:auto auto}}@media (prefers-color-scheme:dark){.footer__links{background:var(--color-primary-darkest);border-bottom:1px solid var(--color-primary-dark);border-top:1px solid var(--color-primary-dark);color:var(--color-white)}}.header__home{display:inline-block;font-size:2.8rem;grid-area:home;padding:.8rem 2.4rem;text-decoration:none}.header__nav{align-items:center;background:var(--color-primary-darkest);border-bottom:2px solid var(--color-primary-dark);display:grid;grid-template-areas:"home button" "nav nav";justify-content:space-between}.header__nav,.header__nav a{color:var(--color-primary-lightest)}.header__nav a:hover{color:var(--color-primary-light)}.header__nav .menuButton{--transition-duration:400ms;background:0 0;border:0;border-left:3px solid var(--color-primary-dark);box-sizing:border-box;cursor:pointer;grid-area:button;height:6.4rem;outline:0;width:-moz-min-content;width:min-content;width:6.4rem}.header__nav .menuButton:hover{background:var(--color-primary-dark)}.header__nav .menuButton svg{color:var(--color-primary-lightest);transition:transform var(--transition-duration)}.header__nav .menuButton__top{stroke-dasharray:40 160;transition:stroke-dashoffset var(--transition-duration)}.header__nav .menuButton__middle{transform-origin:50%;transition:transform var(--transition-duration)}.header__nav .menuButton__bottom{stroke-dasharray:40 85;transition:stroke-dashoffset var(--transition-duration)}body.js .header__nav .menuButton[aria-expanded=true] svg{transform:rotate(45deg)}body.js .header__nav .menuButton[aria-expanded=true] .menuButton__bottom,body.js .header__nav .menuButton[aria-expanded=true] .menuButton__top{stroke-dashoffset:-64px}body.js .header__nav .menuButton[aria-expanded=true] .menuButton__middle{transform:rotate(90deg)}body.js .header__nav .menuButton[aria-expanded=true]+ul{border-top:2px solid var(--color-primary-dark);max-height:100vh;transition:max-height .5s ease-in-out}.header__nav ul{border-top:0 solid var(--color-primary-dark);grid-area:nav;margin:0;max-height:0;overflow:hidden;padding:0}body.js .header__nav ul{transition:max-height .5s cubic-bezier(0,1,.5,1)}.header__nav ul li{list-style-type:none}.header__nav ul li a{display:block;font-size:2rem;padding:1.2rem 4.8rem;text-decoration:none}.header__nav ul li a:hover{background:var(--color-primary-dark)}@media (min-width:576px){.header__nav{grid-template-areas:"home nav";padding:0 max(2.4rem,50vw - 512px)}.header__nav .header__home{padding:0}.header__nav .header__menu{border:none;display:flex;gap:1.6rem;max-height:none}.header__nav .header__menu li a{display:block;font-size:1.8rem;padding:1.6rem}.header__nav button{display:none}}.post-list{list-style-type:none;padding:0}.post-list li{margin:2.4rem 0}.post-list h3{line-height:1;margin:0;padding:0}.post-list h3 a{display:block;padding:.8rem 0;text-decoration:none}.post-list h3 a:hover{text-decoration:underline}.post-list p{margin:0;padding:0}</style><script>var SITE;!function(){"use strict";var e={r:function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),window.addEventListener("DOMContentLoaded",(function(){document.body.classList.add("js");const e=document.getElementById("nav-button");e?.setAttribute("aria-expanded","false"),e?.addEventListener("click",(()=>{e.setAttribute("aria-expanded","true"===e.getAttribute("aria-expanded")?"false":"true")}))}),!1),SITE=t}();</script><noscript><style>#nav-menu{max-height:100vh;border-top:2px solid var(--color-primary-dark)}</style></noscript><link rel="canonical" href="https://www.mattknight.io/"><link rel="me" href="https://mastodon.knight.fyi/@matt"><link rel="icon" href="/favicon.ico" sizes="any"><link rel="manifest" href="/manifest.webmanifest"><link rel="alternate" type="application/atom+xml" href="/atom" title="Matt Knight - technology blog"><link rel="alternate" type="application/json" href="/json" title="Matt Knight - technology blog"><link rel="alternate" type="application/rss+xml" href="/feed" title="Matt Knight - technology blog"><script type="application/ld+json">{
        "@context": "https://schema.org",
        "@type": "Person",
        "name": "Matt Knight",
        "email": "mailto:[email protected]",
        "url": "https://www.mattknight.io/"
      }</script></head><body class="js"><header class="header" id="top"><nav class="header__nav" role="navigation"><a href="/" title="Home" class="header__home">Matt Knight</a> <button aria-label="Toggle Menu" aria-expanded="false" aria-controls="nav-menu" class="menuButton" id="nav-button"><svg class="menuButton__svg" viewBox="0 0 100 100" fill="none" stroke="currentColor" stroke-width="5"><path class="menuButton__top" d="m 30,33 h 40 c 3.722839,0 7.5,3.126468 7.5,8.578427 0,5.451959 -2.727029,8.421573 -7.5,8.421573 h -20"></path><path class="menuButton__middle" d="m 30,50 h 40"></path><path class="menuButton__bottom" d="m 70,67 h -40 c 0,0 -7.5,-0.802118 -7.5,-8.365747 0,-7.563629 7.5,-8.634253 7.5,-8.634253 h 20"></path></svg></button><ul id="nav-menu" class="header__menu"><li><a href="/about">About</a></li><li><a href="/blog">Blog</a></li><li><a href="/contact">Contact</a></li></ul></nav></header><main class="page"><h1>Hello. I'm Matt.</h1><p>I'm passionate about self-hosted technology, privacy and home automation.</p><p>Professionally, I have a experience in executive leadership, product management, software engineering and marketing technology.</p><p>Now I am largely focused on building our own high efficiency home in Vermont, incorporating the latest in building science and technology.</p><h2>Latest Blog Posts</h2><ol reversed="" class="post-list"><li class="post-list__item"><h3><a href="/blog/migrating-from-nextjs-to-eleventy" class="post-list__link">Why I migrated my website from Next.js to Eleventy</a></h3><p><time class="post-list__date" datetime="2024-03-27">March 27, 2024</time></p><p class="post-list__description">Here's why I switched from Next.js to Eleventy, opting for a lightweight static site approach for my blog site. I describe the benefits, deployment strategies, and the performance results in this blog post.</p></li><li class="post-list__item"><h3><a href="/blog/routing-roku-tailscale-exit-node" class="post-list__link">Routing a Roku Streaming Stick via Tailscale Exit Node</a></h3><p><time class="post-list__date" datetime="2024-01-01">January 1, 2024</time></p><p class="post-list__description">A simple guide on how to route all the traffic from a TV streaming stick or similar device via a Tailscale Exit Node, making it appear as though it's originating from somewhere else.</p></li><li class="post-list__item"><h3><a href="/blog/docker-healthchecks-in-distroless-node-js" class="post-list__link">Docker healthchecks in distroless Node.js</a></h3><p><time class="post-list__date" datetime="2023-02-18">February 18, 2023</time></p><p class="post-list__description">Running healthchecks using curl or wget won't work in distroless Docker images. Here's one way to solve the problem in Node.js.</p></li></ol></main><footer class="footer"><main class="footer__links"><section class="footer__social"><h3>Elsewhere</h3><ul><li><a href="https://www.github.com/abstractvector">abstractvector</a> on GitHub</li><li><a href="https://mastodon.knight.fyi/@matt">@[email protected]</a> on Mastodon</li><li><a href="https://matrix.to/#/@matt:knight.fyi">@matt:knight.fyi</a> on Matrix</li></ul></section><section class="footer__contact"><h3>Contact me</h3><p>I love hearing from people and will do my best to respond to all legitimate communication as promptly as I can. The best way to get in touch with me is via email: <a href="mailto:[email protected]">[email protected]</a></p></section></main><div class="footer__copyright"><p>Copyright © 2024 Matt Knight. All rights reserved.</p><p><a href="#top" class="footer__top-link">Back to top</a></p></div></footer></body></html>