1<!DOCTYPE html><html lang="en"><head> 2 <link rel="stylesheet" type="text/css" href="/assets/static/bootstrap-1fded8c0.CqLr8KVv.css"> 3 <link rel="stylesheet" type="text/css" href="/assets/static/src_components_PhotoCard-9e33423c.Clj5xGkb.css"> 4 <link rel="stylesheet" type="text/css" href="/assets/static/src_components_BlogPostCard-965d30d3.ByKMeSZ5.css"> 5 <link rel="stylesheet" type="text/css" href="/assets/static/src_pages_index_Page-269485aa.V-wOPWoi.css"> 6 <meta charset="UTF-8"> 7 8 9 <title>Tim Johns - Software Engineering Leader & Entrepreneur</title><meta property="og:title" content="Tim Johns - Software Engineering Leader & Entrepreneur"> 10 <meta name="viewport" content="width=device-width,initial-scale=1"> 11 <!--[--><!--[--><!-- OpenGraph Tags --><meta property="og:type" content="website"><meta property="og:image" content="https://timjohns.com/assets/static/TimSquareProfile-190x190.LcHweGpK.png"><!-- Twitter Card Tags --><meta name="twitter:card" content="summary"><meta name="twitter:creator" content="@timjohns"><!-- Structured Data -->
11<script type="application/ld+json">{ 12 "name": "Tim Johns", 13 "alternateName": "Tim Johns - Software Engineering Leader", 14 "url": "https://timjohns.com", 15 "description": "Personal website and portfolio of Tim Johns - Software engineering leader, entrepreneur, and creator of Epic Road Trip Planner.", 16 "author": { 17 "@type": "Person", 18 "name": "Tim Johns", 19 "url": "https://timjohns.com" 20 }, 21 "creator": { 22 "@type": "Person", 23 "name": "Tim Johns" 24 }, 25 "inLanguage": "en-US", 26 "copyrightHolder": { 27 "@type": "Person", 28 "name": "Tim Johns" 29 }, 30 "copyrightYear": 2026, 31 "@context": "https://schema.org", 32 "@type": "WebSite" 33}</script>
33<script type="application/ld+json">{ 34 "name": "Tim Johns", 35 "url": "https://timjohns.com", 36 "image": "https://timjohns.com/assets/static/TimSquareProfile-190x190.LcHweGpK.png", 37 "description": "Senior Engineering Manager at doxo, entrepreneur, and creator of Epic Road Trip Planner. Passionate about building high-performing teams and solving real problems.", 38 "jobTitle": "Senior Engineering Manager", 39 "worksFor": { 40 "@type": "Organization", 41 "name": "doxo", 42 "url": "https://www.doxo.com" 43 }, 44 "sameAs": [ 45 "https://github.com/TimJohns", 46 "https://www.linkedin.com/in/timjohnswa/", 47 "https://bsky.app/profile/timjohns.com", 48 "https://www.instagram.com/timjohns", 49 "https://stackoverflow.com/users/1015143/tim-johns" 50 ], 51 "knowsAbout": [ 52 "Software Engineering", 53 "Engineering Leadership", 54 "Entrepreneurship", 55 "Full-Stack Development", 56 "Product Development" 57 ], 58 "@context": "https://schema.org", 59 "@type": "Person" 60}</script>
60<!--]--><!--[--><!-- Favicon and Icons --><link rel="apple-touch-icon" sizes="120x120" href="/favicons/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png"><link rel="manifest" href="/favicons/site.webmanifest"><link rel="shortcut icon" type="image/x-icon" href="/favicons/favicon.ico"><!-- Canonical URL --><link rel="canonical" href="https://timjohns.com/"><!-- Preconnect --><link rel="preconnect" href="https://fonts.googleapis.com" crossorigin="anonymous"><!-- Standard Meta Tags --><meta name="msapplication-TileColor" content="#da532c"><meta name="msapplication-config" content="/favicons/browserconfig.xml"><meta name="theme-color" content="#ffffff"><meta name="language" content="English"><!-- Author and Copyright --><meta name="author" content="Tim Johns"><meta name="copyright" content="© 2026 Tim Johns"><!-- Web App Capabilities --><meta name="mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><!-- Referrer Policy --><meta name="referrer" content="origin-when-cross-origin"><!-- Color Scheme --><meta name="color-scheme" content="light"><!-- Rating --><meta name="rating" content="general"><!--]--><!--]--> 61 62 <meta name="description" content="Tim Johns - Software Engineer, Entrepreneur, and Creator of Epic Road Trip Planner"><meta property="og:description" content="Tim Johns - Software Engineer, Entrepreneur, and Creator of Epic Road Trip Planner"> 63 64 65 66 </head> 67 <body> 68 69 <div id="app"><div id="app" class="d-flex flex-column vh-100"><!--[--><!--]--><header><nav class="navbar navbar-expand sticky-top bg-light shadow-sm py-0" tabindex="0"><div class="container-fluid"><a class="navbar-brand py-2 nav-link fw-semibold" href="/"> Tim Johns </a><ul class="navbar-nav"><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">Products</a><ul class="dropdown-menu dropdown-menu-start"><li><a class="dropdown-item" href="/epicroadtripplanner">Epic Road Trip Planner </a></li></ul></li><li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">About Me</a><ul class="dropdown-menu dropdown-menu-start"><li><a class="dropdown-item" href="/about">About </a></li><li><a class="dropdown-item" href="/blog">Blog </a></li><li><a class="dropdown-item" href="/photos">Photos </a></li><li><a class="dropdown-item" href="/contact">Contact </a></li></ul></li></ul></div></nav></header><!--[--><main data-v-bbe90fb2=""><div class="flex-shrink-0 container" data-v-bbe90fb2=""><!-- Hero Section --><div class="mx-auto text-center mb-5 mt-3" data-v-bbe90fb2=""><div class="border-bottom mb-4 pb-4" data-v-bbe90fb2=""><a href="/" data-v-bbe90fb2=""><img class="rounded-circle mb-3 profile-photo" width="190" height="190" alt="Tim Johns Profile Photo" src="/assets/static/TimSquareProfile-190x190.LcHweGpK.png" data-v-bbe90fb2=""></a><h1 class="display-4 fw-bold mb-3" data-v-bbe90fb2="">Tim Johns</h1><p class="lead mb-3" data-v-bbe90fb2="">Hands-On Software Engineering Leader</p><p class="text-muted" data-v-bbe90fb2="">Founding Engineer, Technical Cofounder, Creator, Culture Builder</p></div></div><!-- Introduction Section --><div class="row mb-5" data-v-bbe90fb2=""><div class="col-lg-8 mx-auto" data-v-bbe90fb2=""><div class="card shadow-sm" data-v-bbe90fb2=""><div class="card-body p-4" data-v-bbe90fb2=""><h2 class="h4 mb-3" data-v-bbe90fb2="">ð Welcome!</h2><p class="mb-3" data-v-bbe90fb2=""> I'm a Senior Engineering Manager at <a href="https://www.doxo.com" target="_blank" data-v-bbe90fb2="">doxo</a>. </p><p class="mb-3" data-v-bbe90fb2=""> I've bootstrapped a few solo projects, most recently including <a href="https://epicroadtripplanner.com" target="_blank" data-v-bbe90fb2="">Epic Road Trip Planner</a> to help people coordinate amazing road trips without the stress. I've also been lucky enough to get on board super-early with a few magical founding teams, including <a href="https://tiller.com" target="_blank" data-v-bbe90fb2="">Tiller</a>, Ontela, BlueWater Systems, and MSR Development. </p><p class="mb-0" data-v-bbe90fb2=""> When I'm not writing code, you might find me spending time with my family, hiking, or taking photos -- ideally, all three at the same time. </p></div></div></div></div><!-- Featured Photos Section --><div class="row mb-5" data-v-bbe90fb2=""><div class="col-12" data-v-bbe90fb2=""><h2 class="h3 mb-4 text-center" data-v-bbe90fb2="">Featured Photos</h2></div><div class="col-12" data-v-bbe90fb2=""><div class="row g-3" data-v-bbe90fb2=""><!--[--><div class="col-sm-6 col-md-4 col-lg-4" data-v-bbe90fb2=""><div class="card h-100 shadow-sm photo-card" data-v-bbe90fb2="" data-v-f1b33f0a=""><a href="/photos/bike-on-the-breakwater" class="text-decoration-none" data-v-f1b33f0a=""><div class="photo-wrapper" style="aspect-ratio:1;" data-v-f1b33f0a=""><img src="/assets/static/bike-on-the-breakwater.f853ae2a.webp" srcset="/assets/static/bike-on-the-breakwater-400w.4b085598.webp 400w, /assets/static/bike-on-the-breakwater-600w.210685ff.webp 600w, /assets/static/bike-on-the-breakwater-800w.0bcaca6f.webp 800w, /assets/static/bike-on-the-breakwater-1000w.5b0e4bbf.webp 1000w, /assets/static/bike-on-the-breakwater-1200w.f853ae2a.webp 1200w, /assets/static/bike-on-the-breakwater-1600w.4a4fcf6c.webp 1600w, /assets/static/bike-on-the-breakwater-2000w.ebb38d37.webp 2000w" sizes="(max-width: 576px) 50vw, (max-width: 768px) 33vw, (max-width: 992px) 33vw, 400px" alt="Bike on the Breakwater" class="card-img-top photo-thumbnail" loading="lazy" data-v-f1b33f0a=""></div><div class="card-body" data-v-f1b33f0a=""><h3 class="h6 card-title" data-v-f1b33f0a="">Bike on the Breakwater</h3><p class="card-text small text-muted" data-v-f1b33f0a="">A cyclist practices balance on the rocks</p><p class="card-text" data-v-f1b33f0a=""><small class="text-muted" data-v-f1b33f0a="">Edmonds, Washington</small></p></div></a></div></div><div class="col-sm-6 col-md-4 col-lg-4" data-v-bbe90fb2=""><div class="card h-100 shadow-sm photo-card" data-v-bbe90fb2="" data-v-f1b33f0a=""><a href="/photos/calling-it-a-day" class="text-decoration-none" data-v-f1b33f0a=""><div class="photo-wrapper" style="aspect-ratio:1;" data-v-f1b33f0a=""><img src="/assets/static/calling-it-a-day.97f44098.webp" srcset="/assets/static/calling-it-a-day-400w.9f01eab8.webp 400w, /assets/static/calling-it-a-day-600w.91351a85.webp 600w, /assets/static/calling-it-a-day-800w.cd9a1a10.webp 800w, /assets/static/calling-it-a-day-1000w.07b
69ccb9b.webp 1000w, /assets/static/calling-it-a-day-1200w.97f44098.webp 1200w, /assets/static/calling-it-a-day-1600w.706b2542.webp 1600w, /assets/static/calling-it-a-day-2000w.a10038c0.webp 2000w" sizes="(max-width: 576px) 50vw, (max-width: 768px) 33vw, (max-width: 992px) 33vw, 400px" alt="Calling it a Day" class="card-img-top photo-thumbnail" loading="lazy" data-v-f1b33f0a=""></div><div class="card-body" data-v-f1b33f0a=""><h3 class="h6 card-title" data-v-f1b33f0a="">Calling it a Day</h3><p class="card-text small text-muted" data-v-f1b33f0a="">Burning daylight across Puget Sound</p><p class="card-text" data-v-f1b33f0a=""><small class="text-muted" data-v-f1b33f0a="">Edmonds, Washington</small></p></div></a></div></div><div class="col-sm-6 col-md-4 col-lg-4" data-v-bbe90fb2=""><div class="card h-100 shadow-sm photo-card" data-v-bbe90fb2="" data-v-f1b33f0a=""><a href="/photos/backlit-sunbeam-ferry" class="text-decoration-none" data-v-f1b33f0a=""><div class="photo-wrapper" style="aspect-ratio:1;" data-v-f1b33f0a=""><img src="/assets/static/backlit-sunbeam-ferry.c96c5787.webp" srcset="/assets/static/backlit-sunbeam-ferry-400w.2483a006.webp 400w, /assets/static/backlit-sunbeam-ferry-600w.4816bf0a.webp 600w, /assets/static/backlit-sunbeam-ferry-800w.4d8eb595.webp 800w, /assets/static/backlit-sunbeam-ferry-1000w.a2aec3cf.webp 1000w, /assets/static/backlit-sunbeam-ferry-1200w.c96c5787.webp 1200w, /assets/static/backlit-sunbeam-ferry-1600w.6de95e46.webp 1600w, /assets/static/backlit-sunbeam-ferry-2000w.7ba6ecc2.webp 2000w" sizes="(max-width: 576px) 50vw, (max-width: 768px) 33vw, (max-width: 992px) 33vw, 400px" alt="Sunbeam Ferry" class="card-img-top photo-thumbnail" loading="lazy" data-v-f1b33f0a=""></div><div class="card-body" data-v-f1b33f0a=""><h3 class="h6 card-title" data-v-f1b33f0a="">Sunbeam Ferry</h3><p class="card-text small text-muted" data-v-f1b33f0a="">Sunbeam ferry crossing Puget Sound</p><p class="card-text" data-v-f1b33f0a=""><small class="text-muted" data-v-f1b33f0a="">Edmonds, Washington</small></p></div></a></div></div><!--]--></div></div><div class="col-12 text-center mt-3" data-v-bbe90fb2=""><a href="/photos" class="btn btn-primary" data-v-bbe90fb2="">View All Photos</a></div></div><!-- Recent Blog Posts Section --><div class="row mb-5" data-v-bbe90fb2=""><div class="col-12" data-v-bbe90fb2=""><h2 class="h3 mb-4 text-center" data-v-bbe90fb2="">Recent Blog Posts</h2></div><div class="col-12" data-v-bbe90fb2=""><div class="row" data-v-bbe90fb2=""><!--[--><div class="col-lg-4 mb-4" data-v-bbe90fb2=""><div class="card h-100 shadow-sm" data-v-bbe90fb2="" data-v-333a1412=""><div class="card-body" data-v-333a1412=""><h3 class="h5 card-title" data-v-333a1412=""><a href="/blog/connection-allowlists" class="text-decoration-none" data-v-333a1412="">Connection Allowlists</a></h3><p class="card-text text-muted small" data-v-333a1412="">Experiments with the Connection Allowlists draft support in Chrome 148</p><p class="card-text" data-v-333a1412=""><small class="text-muted" data-v-333a1412="">May 24, 2026</small></p><a href="/blog/connection-allowlists" class="btn btn-sm btn-outline-primary" data-v-333a1412="">Read More</a></div></div></div><div class="col-lg-4 mb-4" data-v-bbe90fb2=""><div class="card h-100 shadow-sm" data-v-bbe90fb2="" data-v-333a1412=""><div class="card-body" data-v-333a1412=""><h3 class="h5 card-title" data-v-333a1412=""><a href="/blog/epic-road-trip-planner-update-spring-2026" class="text-decoration-none" data-v-333a1412="">Epic Road Trip Planner Update (Spring 2026)</a></h3><p class="card-text text-muted small" data-v-333a1412="">What I've been up to, and what's ahead for Epic Road Trip Planner</p><p class="card-text" data-v-333a1412=""><small class="text-muted" data-v-333a1412="">May 15, 2026</small></p><a href="/blog/epic-road-trip-planner-update-spring-2026" class="btn btn-sm btn-outline-primary" data-v-333a1412="">Read More</a></div></div></div><div class="col-lg-4 mb-4" data-v-bbe90fb2=""><div class="card h-100 shadow-sm" data-v-bbe90fb2="" data-v-333a1412=""><div class="card-body" data-v-333a1412=""><h3 class="h5 card-title" data-v-333a1412=""><a href="/blog/slow-is-smooth-smooth-is-fast" class="text-decoration-none" data-v-333a1412="">Slow is Smooth, Smooth is Fast</a></h3><p class="card-text text-muted small" data-v-333a1412="">Move with a sense of urgency. Have a purpose. Do the thing as fast as you can. But not faster.</p><p class="card-text" data-v-333a1412=""><small class="text-muted" data-v-333a1412="">November 15, 2025</small></p><a href="/blog/slow-is-smooth-smooth-is-fast" class="btn btn-sm btn-outline-primary" data-v-333a1412="">Read More</a></div></div></div><!--]--></div></div><div class="col-12 text-center mt-3" data-v-bbe90fb2=""><a href="/blog" class="btn btn-primary" data-v-bbe90fb2="">View All Posts</a></div></div><!-- Call to Action Section --><div class="row mb-5" data-v-bbe90fb2=""><div class="col-lg-8 mx-auto" data-v-bbe90fb2=""><div class="card bg-light shadow-sm" data-v-bbe90fb2=""><div class="card-body p-4 text-center" data-v-bbe90fb2=""><h2 class="h4 mb-3" data-v-bbe90fb2="">Let's Connect</h2><p class="mb-4" data-v-bbe90fb2=""> Interested in collaborating, consulting, or just want to chat about tech and entrepreneurship? </p><div class="d-flex flex-wrap justify-content-center gap-2" data-v-bbe90fb2=""><a href="/contact" class="btn btn-primary" data-v-bbe90fb2="">Contact Me</a><a href="https://github.com/TimJohns" class="btn btn-outline-secondary" target="_blank" data-v-bbe90fb2="">GitHub</a><a href="https://www.linkedin.com/in/timjohnswa/" class="btn btn-outline-secondary" target="_blank" data-v-bbe90fb2="">LinkedIn</a><a href="https://bsky.app/profile/timjohns.com" class="btn btn-outline-secondary" target="_blank" data-v-bbe90fb2="">Bluesky</a></div></div></div></div></div></div></main><!--]--><footer class="container-fluid d-flex flex-wrap justify-content-between align-items-center py-3 mt-auto mb-4 border-top"><div class="col-md-4 d-flex align-items-center"><span class="text-muted">© 2023-2026 Tim Johns</span></div><ul class="nav col-md-4 justify-content-end list-unstyled d-flex">
69<li class="ms-3"><a href="https://www.instagram.com/timjohns/" target="_blank" rel="noopener noreferrer"><img src="data:image/png;base64,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" height="24" width="24" alt="Instagram Logo" loading="lazy"></a></li><li class="ms-3"><a href="https://www.facebook.com/timjohns/" target="_blank" rel="noopener noreferrer"><img src="data:image/png;base64,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" height="24" width="24" alt="Facebook Logo" loading="lazy"></a></li><li class="ms-3"><a href="https://bsky.app/profile/timjohns.com" target="_blank" rel="noopener noreferrer"><img src="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20width='600'%20height='530'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m135.72%2044.03c66.496%2049.921%20138.02%20151.14%20164.28%20205.46%2026.262-54.316%2097.782-155.54%20164.28-205.46%2047.98-36.021%20125.72-63.892%20125.72%2024.795%200%2017.712-10.155%20148.79-16.111%20170.07-20.703%2073.984-96.144%2092.854-163.25%2081.433%20117.3%2019.964%20147.14%2086.092%2082.697%20152.22-122.39%20125.59-175.91-31.511-189.63-71.766-2.514-7.3797-3.6904-10.832-3.7077-7.8964-0.0174-2.9357-1.1937%200.51669-3.7077%207.8964-13.714%2040.255-67.233%20197.36-189.63%2071.766-64.444-66.128-34.605-132.26%2082.697-152.22-67.108%2011.421-142.55-7.4491-163.25-81.433-5.9562-21.282-16.111-152.36-16.111-170.07%200-88.687%2077.742-60.816%20125.72-24.795z'%20fill='%231185fe'/%3e%3c/svg%3e" height="24" width="24" alt="Bluesky Logo" loading="lazy"></a></li><li class="ms-3"><a href="https://www.linkedin.com/in/timjohnswa/" target="_blank" rel="noopener noreferrer"><img src="data:image/png;base64,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" height="24" width="28" alt="LinkedIn Logo" loading="lazy"></a></li></ul></footer></div></div> 70 <div id="teleported"></div> 71
71<script id="vike_pageContext" type="application/json">{"fromHtmlRenderer":{},"pageId":"\/src\/pages\/index","routeParams":{},"data":{"recentPosts":[{"slug":"connection-allowlists","headline":"Connection Allowlists","datePublished":"!Date:2026-05-24T15:00:00.000Z","description":"Experiments with the Connection Allowlists draft support in Chrome 148"},{"slug":"epic-road-trip-planner-update-spring-2026","headline":"Epic Road Trip Planner Update (Spring 2026)","datePublished":"!Date:2026-05-15T17:55:00.000Z","description":"What I've been up to, and what's ahead for Epic Road Trip Planner"},{"slug":"slow-is-smooth-smooth-is-fast","headline":"Slow is Smooth, Smooth is Fast","datePublished":"!Date:2025-11-15T18:00:00.000Z","description":"Move with a sense of urgency. Have a purpose. Do the thing as fast as you can. But not faster."}],"featuredPhotos":[{"slug":"bike-on-the-breakwater","title":"Bike on the Breakwater","caption":"A cyclist practices balance on the rocks","location":"Edmonds, Washington","imageUrl":"\/assets\/static\/bike-on-the-breakwater.f853ae2a.webp","thumbnailUrl":"\/assets\/static\/bike-on-the-breakwater.f853ae2a.webp","thumbnailSrcSet":"\/assets\/static\/bike-on-the-breakwater-400w.4b085598.webp 400w, \/assets\/static\/bike-on-the-breakwater-600w.210685ff.webp 600w, \/assets\/static\/bike-on-the-breakwater-800w.0bcaca6f.webp 800w, \/assets\/static\/bike-on-the-breakwater-1000w.5b0e4bbf.webp 1000w, \/assets\/static\/bike-on-the-breakwater-1200w.f853ae2a.webp 1200w, \/assets\/static\/bike-on-the-breakwater-1600w.4a4fcf6c.webp 1600w, \/assets\/static\/bike-on-the-breakwater-2000w.ebb38d37.webp 2000w"},{"slug":"calling-it-a-day","title":"Calling it a Day","caption":"Burning daylight across Puget Sound","location":"Edmonds, Washington","imageUrl":"\/assets\/static\/calling-it-a-day.97f44098.webp","thumbnailUrl":"\/assets\/static\/calling-it-a-day.97f44098.webp","thumbnailSrcSet":"\/assets\/static\/calling-it-a-day-400w.9f01eab8.webp 400w, \/assets\/static\/calling-it-a-day-600w.91351a85.webp 600w, \/assets\/static\/calling-it-a-day-800w.cd9a1a10.webp 800w, \/assets\/static\/calling-it-a-day-1000w.07bccb9b.webp 1000w, \/assets\/static\/calling-it-a-day-1200w.97f44098.webp 1200w, \/assets\/static\/calling-it-a-day-1600w.706b2542.webp 1600w, \/assets\/static\/calling-it-a-day-2000w.a10038c0.webp 2000w"},{"slug":"backlit-sunbeam-ferry","title":"Sunbeam Ferry","caption":"Sunbeam ferry crossing Puget Sound","location":"Edmonds, Washington","imageUrl":"\/assets\/static\/backlit-sunbeam-ferry.c96c5787.webp","thumbnailUrl":"\/assets\/static\/backlit-sunbeam-ferry.c96c5787.webp","thumbnailSrcSet":"\/assets\/static\/backlit-sunbeam-ferry-400w.2483a006.webp 400w, \/assets\/static\/backlit-sunbeam-ferry-600w.4816bf0a.webp 600w, \/assets\/static\/backlit-sunbeam-ferry-800w.4d8eb595.webp 800w, \/assets\/static\/backlit-sunbeam-ferry-1000w.a2aec3cf.webp 1000w, \/assets\/static\/backlit-sunbeam-ferry-1200w.c96c5787.webp 1200w, \/assets\/static\/backlit-sunbeam-ferry-1600w.6de95e46.webp 1600w, \/assets\/static\/backlit-sunbeam-ferry-2000w.7ba6ecc2.webp 2000w"}]}}</script>
71 72
72<script id="vike_globalContext" type="application/json">{}</script>
72 73
73<script src="/assets/entries/entry-client-routing.C8vRbdW4.js" type="module" async="" integrity="sha384-ZB76R54v35Sy7LXF64yuNhUa6qnqRSPKWYCKyBrsuz0U6y8euNhKKCjVzXT8Ziuu"></script>
73 74 <link rel="modulepreload" href="/assets/entries/src_pages_index.CfW6hxsW.js" as="script" type="text/javascript"> 75 <link rel="modulepreload" href="/assets/chunks/chunk-D2PpAfiu.js" as="script" type="text/javascript"> 76 <link rel="modulepreload" href="/assets/chunks/chunk-D3EdLf1Y.js" as="script" type="text/javascript"> 77 <link rel="modulepreload" href="/assets/chunks/chunk-MUX_KhoT.js" as="script" type="text/javascript"> 78 79 </body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.