Help
RSS
API
Feed
Maltego
Contact
Domain > closingtags.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2019-11-22
104.28.0.96
(
ClassC
)
2025-12-09
104.21.25.98
(
ClassC
)
Port 443
HTTP/1.1 200 OKDate: Tue, 09 Dec 2025 07:18:49 GMTContent-Type: text/html;charsetutf-8Transfer-Encoding: chunkedConnection: keep-aliveServer: cloudflareNel: {report_to:cf-nel,success_fraction:0.0,max_age:604800}Vary: Accept-EncodingLast-Modified: Mon, 17 Nov 2025 16:34:48 GMTReport-To: {group:cf-nel,max_age:604800,endpoints:{url:https://a.nel.cloudflare.com/report/v4?seHLqe56LAmMlPG8CRzWiNeHe%2BYkamhIRgLTd6acwzH9YYQE15Y1%2FoAKmCK45lQWdEWZ0L%2F03cmVM0vNqfquV%2BQJjdJByrZlqx2L%2BAzfimw%3D%3D}}cf-cache-status: DYNAMICCF-RAY: 9ab2bb112f1c8b10-PDXalt-svc: h3:443; ma86400 !DOCTYPE html>html langen classscroll-smooth>head> meta charsetutf-8 /> link relicon href/favicon.ico /> meta nameviewport contentwidthdevice-width, initial-scale1 /> link href./_app/immutable/assets/0.bm5bVJjs.css relstylesheet> link href./_app/immutable/assets/2.CLOnqDef.css relstylesheet> link relmodulepreload href./_app/immutable/entry/start.BUvikaeE.js> link relmodulepreload href./_app/immutable/chunks/DXiHYMd2.js> link relmodulepreload href./_app/immutable/chunks/CPdEarCz.js> link relmodulepreload href./_app/immutable/chunks/CAk_ZHKJ.js> link relmodulepreload href./_app/immutable/chunks/DIeogL5L.js> link relmodulepreload href./_app/immutable/chunks/CYgJF_JY.js> link relmodulepreload href./_app/immutable/entry/app.D2gHHqmZ.js> link relmodulepreload href./_app/immutable/chunks/Dp1pzeXC.js> link relmodulepreload href./_app/immutable/chunks/CG01cUDs.js> link relmodulepreload href./_app/immutable/chunks/BGIRG97y.js> link relmodulepreload href./_app/immutable/chunks/CWj6FrbW.js> link relmodulepreload href./_app/immutable/chunks/D4QsSuhH.js> link relmodulepreload href./_app/immutable/nodes/0.BqxcY20x.js> link relmodulepreload href./_app/immutable/chunks/DNSHY1Ls.js> link relmodulepreload href./_app/immutable/chunks/BJYtH4Ci.js> link relmodulepreload href./_app/immutable/chunks/CI1dIr3L.js> link relmodulepreload href./_app/immutable/chunks/BcDxBqmE.js> link relmodulepreload href./_app/immutable/chunks/BxZejT1l.js> link relmodulepreload href./_app/immutable/chunks/69_IOA4Y.js> link relmodulepreload href./_app/immutable/chunks/njVXvEVo.js> link relmodulepreload href./_app/immutable/chunks/ZDoi1vfN.js> link relmodulepreload href./_app/immutable/chunks/DNc1BloK.js> link relmodulepreload href./_app/immutable/chunks/CLhvusqs.js> link relmodulepreload href./_app/immutable/chunks/BHKTYuhY.js> link relmodulepreload href./_app/immutable/chunks/BO1EMTuD.js> link relmodulepreload href./_app/immutable/chunks/C6B7Ma5E.js> link relmodulepreload href./_app/immutable/nodes/2.RWDkeMpr.js> link relmodulepreload href./_app/immutable/chunks/BS3KIulN.js> link relmodulepreload href./_app/immutable/chunks/BfDguKcc.js> link relmodulepreload href./_app/immutable/chunks/DncqW0RZ.js> link relmodulepreload href./_app/immutable/chunks/k5txUDhZ.js> link relmodulepreload href./_app/immutable/chunks/BNhEy5mC.js>!---->meta namefediverse:creator content@closingtags@mastodon.social> link href/fonts/Atkinson-Hyperlegible-Regular-102a.woff2 typefont/woff2 asfont crossorigin> link href/fonts/Atkinson-Hyperlegible-Bold-102a.woff2 typefont/woff2 asfont crossorigin> link href/fonts/Atkinson-Hyperlegible-BoldItalic-102a.woff2 typefont/woff2 asfont crossorigin> link href/fonts/Atkinson-Hyperlegible-Italic-102a.woff2 typefont/woff2 asfont crossorigin> link href/fonts/FiraCode-Regular.woff2 typefont/woff2 asfont crossorigin> link relstylesheet href/css/prism.css> link relalternate typeapplication/rss+xml titleclosingtags.com hrefhttps://www.closingtags.com/api/rss.xml>!---->!---->meta data-keydescription namedescription contentDylan Hildenbrand is a father, husband, author, and full-stack web developer that enjoys creating web applications.>!---->title>closingtags.com/title> !-- You can add global meta> tags here, but anything not global or dynamic should be a `svelte:head>` tag on the proper page(s) instead. -->/head>body> div idsvelte>!---->!---->!---->div classfont-serif flex min-h-100vh flex-col bg-gradient-to-t from-var(--back-color) to-var(--secondary-back-color) p-3 text-slate-200 transition-colors duration-200 md:p-5>header classflex flex-col items-center justify-start gap-2 font-code md:flex-row md:justify-between>a href/>div classw-72>!---->?xml version1.0 encodingUTF-8 standaloneno?>svg viewBox0 0 3000 500 version1.1 idsvg13338 sodipodi:docnameclosingtags-logo.svg inkscape:version1.1.2 (0a00cf5339, 2022-02-04) xmlns:inkscapehttp://www.inkscape.org/namespaces/inkscape xmlns:sodipodihttp://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd xmlnshttp://www.w3.org/2000/svg xmlns:svghttp://www.w3.org/2000/svg> defs iddefs13342 /> sodipodi:namedview idnamedview13340 pagecolor#505050 bordercolor#af39ff borderopacity1 inkscape:pageshadow0 inkscape:pageopacity0 inkscape:pagecheckerboard1 inkscape:document-unitsin showgridfalse inkscape:zoom1.3354167 inkscape:cx480.37441 inkscape:cy80.124805 inkscape:window-width1904 inkscape:window-height1027 inkscape:window-x1928 inkscape:window-y8 inkscape:window-maximized0 inkscape:current-layersvg13338 /> path idPath fillnone strokeblack stroke-width1 dM 235.64,123.62 C 235.64,123.62 107.39,202.80 107.39,202.80 107.39,202.80 107.39,231.84 107.39,231.84 107.39,231.84 234.30,311.00 234.30,311.00 234.30,311.00 249.33,290.62 249.33,290.62 249.33,290.62 131.44,217.48 131.44,217.48 131.44,217.48 249.33,145.00 249.33,145.00 249.33,145.00 235.64,123.62 235.64,123.62 Z M 320.41,356.61 C 320.41,356.61 462.69,62.70 462.69,62.70 462.69,62.70 440.31,52.00 440.31,52.00 440.31,52.00 297.69,346.59 297.69,346.59 297.69,346.59 320.41,356.61 320.41,356.61 Z M 595.22,301.95 C 564.83,301.95 542.78,282.16 542.78,234.84 542.78,188.20 564.48,165.72 594.89,165.72 610.58,165.72 625.28,171.09 640.31,181.16 640.31,181.16 654.00,162.72 654.00,162.72 637.64,149.02 617.94,142.00 595.22,142.00 542.78,142.00 512.39,181.83 512.39,234.84 512.39,290.22 542.45,326.00 595.22,326.00 615.59,326.00 639.31,317.98 654.34,304.97 654.34,304.97 640.97,286.53 640.97,286.53 627.61,295.58 612.92,301.95 595.22,301.95 Z M 786.20,75.00 C 786.20,75.00 704.03,75.00 704.03,75.00 704.03,75.00 704.03,97.39 704.03,97.39 704.03,97.39 758.14,97.39 758.14,97.39 758.14,97.39 758.14,277.52 758.14,277.52 758.14,307.97 779.19,326.00 810.25,326.00 828.28,326.00 842.64,322.00 852.00,316.98 852.00,316.98 844.64,296.59 844.64,296.59 834.95,300.28 825.61,302.62 815.25,302.62 798.22,302.62 786.20,296.27 786.20,278.86 786.20,278.86 786.20,75.00 786.20,75.00 Z M 986.53,142.00 C 937.09,142.00 910.38,179.81 910.38,234.17 910.38,289.88 936.77,326.00 986.19,326.00 1035.30,326.00 1062.02,288.20 1062.02,233.84 1062.02,178.14 1035.95,142.00 986.53,142.00 Z M 986.53,165.05 C 1016.59,165.05 1031.61,187.20 1031.61,233.84 1031.61,281.16 1016.59,302.97 986.19,302.97 955.80,302.97 940.77,281.16 940.77,234.17 940.77,187.20 956.12,165.05 986.53,165.05 Z M 1181.52,302.97 C 1160.80,302.97 1142.09,295.25 1128.41,283.84 1128.41,283.84 1112.70,302.30 1112.70,302.30 1127.73,315.31 1149.45,326.00 1181.52,326.00 1218.92,326.00 1255.33,311.31 1255.33,273.44 1255.33,240.55 1232.61,228.47 1198.22,219.08 1162.81,209.34 1151.78,203.98 1151.78,187.88 1151.78,174.45 1161.81,164.72 1189.86,164.72 1212.58,164.72 1227.61,171.77 1240.62,180.83 1240.62,180.83 1253.33,161.38 1253.33,161.38 1238.30,150.69 1217.58,142.00 1189.19,142.00 1149.45,142.00 1122.39,160.72 1122.39,190.22 1122.39,221.09 1146.11,232.16 1182.52,241.22 1219.92,250.62 1224.94,259.00 1224.94,274.78 1224.94,291.89 1208.56,302.97 1181.52,302.97 Z M 1390.19,64.00 C 1378.17,64.00 1370.16,72.36 1370.16,83.72 1370.16,95.06 1378.17,103.42 1390.19,103.42 1402.55,103.42 1410.91,95.06 1410.91,83.72 1410.91,72.36 1402.55,64.00 1390.19,64.00 Z M 1412.56,146.00 C 1412.56,146.00 1332.08,146.00 1332.08,146.00 1332.08,146.00 1332.08,168.39 1332.08,168.39 1332.08,168.39 1384.52,168.39 1384.52,168.39 1384.52,168.39 1384.52,299.62 1384.52,299.62 1384.52,299.62 1330.41,299.62 1330.41,299.62 1330.41,299.62 1330.41,322.00 1330.41,322.00 1330.41,322.00 1462.00,322.00 1462.00,322.00 1462.00,322.00 1462.00,299.62 1462.00,299.62 1462.00,299.62 1412.56,299.62 1412.56,299.62 1412.56,299.62 1412.56,146.00 1412.56,146.00 Z M 1525.39,322.00 C 1525.39,322.00 1553.45,322.00 1553.45,322.00 1553.45,322.00 1553.45,193.83 1553.45,193.83 1562.80,179.78 1580.50,164.39 1601.20,164.39 1627.59,164.39 1631.27,178.78 1631.27,214.92 1631.27,214.92 1631.27,322.00 1631.27,322.00 1631.27,322.00 1659.33,322.00 1659.33,322.00 1659.33,322.00 1659.33,194.17 1659.33,194.17 1659.33,161.38 1644.30,142.00 1609.89,142.00 1589.19,142.00 1565.81,152.36 1551.78,170.41 1551.78,170.41 1549.44,146.00 1549.44,146.00 1549.44,146.00 1525.39,146.00 1525.39,146.00 1525.39,146.00 1525.39,322.00 1525.39,322.00 Z M 1870.67,127.31 C 1849.97,136.00 1834.61,142.00 1790.52,142.00 1748.77,142.00 1720.38,167.39 1720.38,203.17 1720.38,225.91 1729.73,241.30 1749.77,251.66 1737.08,260.00 1730.39,271.42 1730.39,282.53 1730.39,300.31 1744.09,316.00 1774.81,316.00 1774.81,316.00 1806.22,316.00 1806.22,316.00 1828.59,316.00 1845.62,324.39 1845.62,341.14 1845.62,360.25 1828.59,370.30 1790.19,370.30 1750.77,370.30 1741.42,360.58 1741.42,339.80 1741.42,339.80 1716.03,339.80 1716.03,339.80 1716.03,375.64 1734.08,393.00 1790.19,393.00 1843.62,393.00 1874.02,373.97 1874.02,339.47 1874.02,312.00 1847.30,291.62 1811.89,291.62 1811.89,291.62 1780.17,291.62 1780.17,291.62 1762.12,291.62 1756.78,284.89 1756.78,276.47 1756.78,270.08 1760.80,263.34 1765.80,259.33 1773.48,262.00 1780.50,263.00 1792.19,263.00 1833.94,263.00 1858.31,237.95 1858.31,203.17 1858.31,183.11 1848.30,168.06 1827.59,158.70 1847.30,158.70 1864.33,158.38 1879.03,153.70 1879.03,153.70 1870.67,127.31 1870.67,127.31 Z M 1790.19,162.72 C 1816.23,162.72 1829.27,176.42 1829.27,202.84 1829.27,228.92 1815.91,244.30 1790.86,244.30 1762.12,244.30 1749.11,227.25 1749.11,203.17 1749.11,179.44 1761.80,162.72 1790.19,162.72 Z M 2069.34,313.31 C 2069.34,313.31 2058.31,294.27 2058.31,294.27 2048.97,299.28 2037.61,302.62 2024.58,302.62 2000.53,302.62 1990.84,292.25 1990.84,272.83 1990.84,272.83 1990.84,168.05 1990.84,168.05 1990.84,168.05 2048.30,168.05 2048.30,168.05 2048.30,168.05 2051.97,146.00 2051.97,146.00 2051.97,146.00 1990.84,146.00 1990.84,146.00 1990.84,146.00 1990.84,102.92 1990.84,102.92 1990.84,102.92 1962.80,106.27 1962.80,106.27 1962.80,106.27 1962.80,146.00 1962.80,146.00 1962.80,146.00 1922.38,146.00 1922.38,146.00 1922.38,146.00 1922.38,168.05 1922.38,168.05 1922.38,168.05 1962.80,168.05 1962.80,168.05 1962.80,168.05 1962.80,273.17 1962.80,273.17 1962.80,303.97 1984.17,326.00 2021.91,326.00 2038.61,326.00 2056.98,321.33 2069.34,313.31 Z M 2257.64,283.80 C 2257.64,283.80 2257.64,198.92 2257.64,198.92 2257.64,164.05 2235.59,142.00 2191.84,142.00 2174.48,142.00 2155.78,145.34 2134.06,153.03 2134.06,153.03 2141.75,174.44 2141.75,174.44 2159.78,168.08 2175.81,165.39 2187.50,165.39 2213.56,165.39 2229.25,174.78 2229.25,200.59 2229.25,200.59 2229.25,215.00 2229.25,215.00 2229.25,215.00 2203.20,215.00 2203.20,215.00 2150.09,215.00 2121.03,235.39 2121.03,271.69 2121.03,304.62 2142.42,326.00 2177.81,326.00 2200.53,326.00 2220.23,317.66 2232.92,301.27 2237.61,317.33 2249.97,324.34 2264.98,326.34 2264.98,326.34 2272.00,306.30 2272.00,306.30 2261.98,303.28 2257.64,297.91 2257.64,283.80 Z M 2184.83,304.97 C 2161.78,304.97 2151.09,293.53 2151.09,271.36 2151.09,248.50 2165.12,234.38 2203.88,234.38 2203.88,234.38 2229.25,234.38 2229.25,234.38 2229.25,234.38 2229.25,279.75 2229.25,279.75 2218.91,295.55 2202.20,304.97 2184.83,304.97 Z M 2476.67,127.31 C 2455.97,136.00 2440.61,142.00 2396.52,142.00 2354.77,142.00 2326.38,167.39 2326.38,203.17 2326.38,225.91 2335.73,241.30 2355.77,251.66 2343.08,260.00 2336.39,271.42 2336.39,282.53 2336.39,300.31 2350.09,316.00 2380.81,316.00 2380.81,316.00 2412.22,316.00 2412.22,316.00 2434.59,316.00 2451.62,324.39 2451.62,341.14 2451.62,360.25 2434.59,370.30 2396.19,370.30 2356.77,370.30 2347.42,360.58 2347.42,339.80 2347.42,339.80 2322.03,339.80 2322.03,339.80 2322.03,375.64 2340.08,393.00 2396.19,393.00 2449.62,393.00 2480.02,373.97 2480.02,339.47 2480.02,312.00 2453.30,291.62 2417.89,291.62 2417.89,291.62 2386.17,291.62 2386.17,291.62 2368.12,291.62 2362.78,284.89 2362.78,276.47 2362.78,270.08 2366.80,263.34 2371.80,259.33 2379.48,262.00 2386.50,263.00 2398.19,263.00 2439.94,263.00 2464.31,237.95 2464.31,203.17 2464.31,183.11 2454.30,168.06 2433.59,158.70 2453.30,158.70 2470.33,158.38 2485.03,153.70 2485.03,153.70 2476.67,127.31 2476.67,127.31 Z M 2396.19,162.72 C 2422.23,162.72 2435.27,176.42 2435.27,202.84 2435.27,228.92 2421.91,244.30 2396.86,244.30 2368.12,244.30 2355.11,227.25 2355.11,203.17 2355.11,179.44 2367.80,162.72 2396.19,162.72 Z M 2595.52,302.97 C 2574.80,302.97 2556.09,295.25 2542.41,283.84 2542.41,283.84 2526.70,302.30 2526.70,302.30 2541.73,315.31 2563.45,326.00 2595.52,326.00 2632.92,326.00 2669.33,311.31 2669.33,273.44 2669.33,240.55 2646.61,228.47 2612.22,219.08 2576.81,209.34 2565.78,203.98 2565.78,187.88 2565.78,174.45 2575.81,164.72 2603.86,164.72 2626.58,164.72 2641.61,171.77 2654.62,180.83 2654.62,180.83 2667.33,161.38 2667.33,161.38 2652.30,150.69 2631.58,142.00 2603.19,142.00 2563.45,142.00 2536.39,160.72 2536.39,190.22 2536.39,221.09 2560.11,232.16 2596.52,241.22 2633.92,250.62 2638.94,259.00 2638.94,274.78 2638.94,291.89 2622.56,302.97 2595.52,302.97 Z M 2747.08,123.62 C 2747.08,123.62 2733.39,145.00 2733.39,145.00 2733.39,145.00 2851.28,217.48 2851.28,217.48 2851.28,217.48 2733.39,290.30 2733.39,290.30 2733.39,290.30 2748.42,311.00 2748.42,311.00 2748.42,311.00 2875.33,231.84 2875.33,231.84 2875.33,231.84 2875.33,203.12 2875.33,203.12 2875.33,203.12 2747.08,123.62 2747.08,123.62 Z stylefill:#fff;fill-opacity:1;stroke:#af39ff;stroke-opacity:1;stroke-width:10;stroke-miterlimit:4;stroke-dasharray:none;paint-order:normal />/svg>!---->/div> span classflex items-center justify-center text-lg>web dev & more!/span>/a> div classrelative z-20 w-70vw md:w-40vw>div classflex flex-row>input typesearch idsearch classw-full border-none p-1 text-xl text-slate-800 drop-shadow-lg namesearch value placeholderSearch is loading... autocompleteoff spellcheckfalse> button classbg-violet-900 p-3 aria-labelClear>Esc/button>/div> !---->!--!-->!---->!---->/div>!----> span>input typecheckbox idmenu-btn classpeer hidden svelte-iauyn0> label formenu-btn titleMenu aria-labelMenu classcontent- fixed right-0 top-0 z-100 touch-manipulation rounded-bl-lg border-none bg-var(--back-color) p-8 text-left text-var(--fore-color) no-underline shadow-xl drop-shadow-lg transition-all duration-200 ease-in-out hover:rounded-bl-lg hover:bg-var(--secondary-back-color) peer-checked:right-64 svelte-iauyn0>span classcontent- before:content- after:content- absolute right-3 top-50% block w-9 bg-var(--fore-color) p-1px transition-all duration-200 ease-in-out before:absolute before:right-0 before:top-2 before:block before:w-9 before:bg-var(--fore-color) before:p-1px before:transition-all before:duration-200 before:ease-in-out after:absolute after:bottom-2 after:right-0 after:block after:w-9 after:bg-var(--fore-color) after:p-1px after:transition-all after:duration-200 after:ease-in-out svelte-iauyn0>/span>/label> nav classfixed right--16rem top-0 z-110 flex h-full min-w-64 flex-col justify-between bg-var(--back-color) transition-all duration-200 ease-in-out peer-checked:right-0 peer-checked:shadow-2xl>ul classrelative z-130 m-0 list-none bg-var(--back-color) p-0 text-center>!---->li classm-0 p-0>!--!-->a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline href/about>About/a>!---->/li>li classm-0 p-0>!--!-->a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline href/blog>Blog/a>!---->/li>li classm-0 p-0>!--!-->a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline href/projects>Projects/a>!---->/li>li classm-0 p-0>!--!-->a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline href/contact>Contact/a>!---->/li>li classm-0 p-0>!---->details classcursor-pointer open:bg-var(--secondary-back-color) open:text-var(--link-color) open:no-underline>summary classm-0 block w-full px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline>Support Me/summary> !---->a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline hrefhttps://closingtags.myspreadshop.com target_blank>Buy Merchandise ↗/a>a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline hrefhttps://buy.stripe.com/eVa3cHcbhd7X1cQfZ3 target_blank>Donate ↗/a>a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline hrefhttps://github.com/sponsors/Dilden target_blank>Sponsor ↗/a>!---->/details>!---->/li>li classm-0 p-0>!---->details classcursor-pointer open:bg-var(--secondary-back-color) open:text-var(--link-color) open:no-underline>summary classm-0 block w-full px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline>More.../summary> !---->a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline hrefhttps://helth.app target_blank>helth.app ↗/a>a classm-0 block px-0 py-5 text-slate-200 no-underline transition-all duration-300 ease-in-out visited:text-slate-200 hover:bg-var(--secondary-back-color) hover:text-var(--link-color) hover:no-underline hrefhttps://sveltekitbook.dev target_blank>SvelteKit Book ↗/a>!---->/details>!---->/li>!---->/ul> div classp-4>div classflex w-full flex-wrap justify-evenly gap-4>a classbasis-1/6 after:hidden hrefhttps://mastodon.social/@closingtags titleLink to my Mastodon profile target_blank>svg viewBox0 0 75 79 fillnone xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>path dM73.8393 17.4898C72.6973 9.00165 65.2994 2.31235 56.5296 1.01614C55.05 0.797115 49.4441 0 36.4582 0H36.3612C23.3717 0 20.585 0.797115 19.1054 1.01614C10.5798 2.27644 2.79399 8.28712 0.904997 16.8758C-0.00358524 21.1056 -0.100549 25.7949 0.0682394 30.0965C0.308852 36.2651 0.355538 42.423 0.91577 48.5665C1.30307 52.6474 1.97872 56.6957 2.93763 60.6812C4.73325 68.042 12.0019 74.1676 19.1233 76.6666C26.7478 79.2728 34.9474 79.7055 42.8039 77.9162C43.6682 77.7151 44.5217 77.4817 45.3645 77.216C47.275 76.6092 49.5123 75.9305 51.1571 74.7385C51.1797 74.7217 51.1982 74.7001 51.2112 74.6753C51.2243 74.6504 51.2316 74.6229 51.2325 74.5948V68.6416C51.2321 68.6154 51.2259 68.5896 51.2142 68.5661C51.2025 68.5426 51.1858 68.522 51.1651 68.5058C51.1444 68.4896 51.1204 68.4783 51.0948 68.4726C51.0692 68.4669 51.0426 68.467 51.0171 68.4729C45.9835 69.675 40.8254 70.2777 35.6502 70.2682C26.7439 70.2682 24.3486 66.042 23.6626 64.2826C23.1113 62.762 22.7612 61.1759 22.6212 59.5646C22.6197 59.5375 22.6247 59.5105 22.6357 59.4857C22.6466 59.4609 22.6633 59.4391 22.6843 59.422C22.7053 59.4048 22.73 59.3929 22.7565 59.3871C22.783 59.3813 22.8104 59.3818 22.8367 59.3886C27.7864 60.5826 32.8604 61.1853 37.9522 61.1839C39.1768 61.1839 40.3978 61.1839 41.6224 61.1516C46.7435 61.008 52.1411 60.7459 57.1796 59.7621C57.3053 59.7369 57.431 59.7154 57.5387 59.6831C65.4861 58.157 73.0493 53.3672 73.8178 41.2381C73.8465 40.7606 73.9184 36.2364 73.9184 35.7409C73.9219 34.0569 74.4606 23.7949 73.8393 17.4898Z fill#af39ff>/path>path dM61.2484 27.0263V48.114H52.8916V27.6475C52.8916 23.3388 51.096 21.1413 47.4437 21.1413C43.4287 21.1413 41.4177 23.7409 41.4177 28.8755V40.0782H33.1111V28.8755C33.1111 23.7409 31.0965 21.1413 27.0815 21.1413C23.4507 21.1413 21.6371 23.3388 21.6371 27.6475V48.114H13.2839V27.0263C13.2839 22.7176 14.384 19.2946 16.5843 16.7572C18.8539 14.2258 21.8311 12.926 25.5264 12.926C29.8036 12.926 33.0357 14.5705 35.1905 17.8559L37.2698 21.346L39.3527 17.8559C41.5074 14.5705 44.7395 12.926 49.0095 12.926C52.7013 12.926 55.6784 14.2258 57.9553 16.7572C60.1531 19.2922 61.2508 22.7152 61.2484 27.0263Z fill#200d29>/path>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://bsky.app/profile/closingtags.mastodon.social.ap.brid.gy titleLink to my Bluesky profile target_blank>svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110 viewBox0 0 568 501 xmlnshttp://www.w3.org/2000/svg>path dM123.121 33.6637C188.241 82.5526 258.281 181.681 284 234.873C309.719 181.681 379.759 82.5526 444.879 33.6637C491.866 -1.61183 568 -28.9064 568 57.9464C568 75.2916 558.055 203.659 552.222 224.501C531.947 296.954 458.067 315.434 392.347 304.249C507.222 323.8 536.444 388.56 473.333 453.32C353.473 576.312 301.061 422.461 287.631 383.039C285.169 375.812 284.017 372.431 284 375.306C283.983 372.431 282.831 375.812 280.369 383.039C266.939 422.461 214.527 576.312 94.6667 453.32C31.5556 388.56 60.7778 323.8 175.653 304.249C109.933 315.434 36.0535 296.954 15.7778 224.501C9.94525 203.659 0 75.2916 0 57.9464C0 -28.9064 76.1345 -1.61183 123.121 33.6637Z fill#af39ff>/path>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://signal.me/#eu/kuEzxRvq-6Wt_Y5NkPXJ-0z7aafnRho56ERp_-RHvxgbmh0vodhCSrhmfdQmIWMX target_blank titleMessage me on Signal>svg fillnone viewBox0 0 160 160 xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>g fill#af39ff>path dm80 0c4.1505 0 8.2271.31607 12.2072.925452l-1.1444 7.413248c-3.6069-.55226-7.3014-.8387-11.0628-.8387-3.7612 0-7.4555.28641-11.0623.83862l-1.1444-7.413245c3.9799-.609332 8.0564-.925375 12.2067-.925375z>/path>path dm98.9849 2.26619-1.7798 7.28755c7.3099 1.77896 14.1849 4.66606 20.4389 8.47306l3.895-6.411c-6.901-4.20091-14.488-7.38658-22.5541-9.34961z>/path>path dm127.279 15.4591-4.432 6.0507c5.977 4.3861 11.257 9.6664 15.643 15.6437l6.051-4.4324c-4.84-6.5957-10.666-12.4222-17.262-17.262z>/path>path dm148.384 38.4618-6.411 3.8942c3.807 6.2541 6.694 13.1299 8.473 20.4395l7.288-1.7798c-1.963-8.0657-5.149-15.6528-9.35-22.5539z>/path>path dm159.075 67.7934-7.414 1.1444c.553 3.6067.839 7.301.839 11.0622 0 3.7614-.286 7.4559-.839 11.0628l7.414 1.1444c.609-3.9801.925-8.0567.925-12.2072 0-4.1503-.316-8.2267-.925-12.2066z>/path>path dm141.973 117.645c3.807-6.255 6.694-13.13 8.473-20.44l7.288 1.7798c-1.963 8.0662-5.149 15.6532-9.35 22.5542z>/path>path dm138.49 122.847 6.051 4.432c-4.84 6.596-10.666 12.422-17.262 17.262l-4.433-6.051c5.978-4.386 11.258-9.666 15.644-15.643z>/path>path dm117.644 141.973 3.894 6.411c-6.901 4.201-14.488 7.387-22.5537 9.35l-1.7798-7.288c7.3095-1.779 14.1855-4.666 20.4395-8.473z>/path>path dm91.0622 151.661 1.1445 7.414c-3.9799.609-8.0564.925-12.2067.925-4.1505 0-8.2272-.316-12.2073-.925l1.1442-7.413c3.6054.552 7.2997.838 11.0631.838 3.7612 0 7.4555-.286 11.0622-.839z>/path>path dm62.7945 150.448-1.7794 7.286c-6.0589-1.475-11.8477-3.639-17.2785-6.406l-7.5927 1.772-1.7042-7.304 10.2604-2.394 2.4408 1.243c4.9187 2.506 10.1623 4.467 15.6536 5.803z>/path>path dm28.1097 147.273 1.7042 7.304-13.0145 3.036c-8.66079 2.021-16.433718-5.752-14.41286-14.412l3.03673-13.015 7.30383 1.704-3.03675 13.015c-.75782 3.248 2.15705 6.162 5.40485 5.405z>/path>path dm14.2041 125.56-7.30383-1.704 1.77163-7.593c-2.76664-5.431-4.93123-11.22-6.40585-17.2787l7.28586-1.7794c1.33599 5.4911 3.29709 10.7351 5.80279 15.6541l1.2435 2.441z>/path>path dm8.33759 91.0624-7.412228 1.1442c-.609324-3.9799-.925362-8.0563-.925362-12.2066 0-4.1505.316067-8.2271.925446-12.2072l7.413244 1.1444c-.55225 3.607-.83869 7.3014-.83869 11.0628 0 3.7631.28613 7.4572.83759 11.0624z>/path>path dm9.55373 62.795-7.28755-1.7798c1.96302-8.0657 5.1487-15.6528 9.34962-22.5539l6.411 3.8942c-3.807 6.2541-6.6941 13.1299-8.47307 20.4395z>/path>path dm21.5098 37.1531-6.0507-4.4324c4.8398-6.5957 10.6663-12.4221 17.262-17.2619l4.4324 6.0507c-5.9773 4.3861-11.2576 9.6663-15.6437 15.6436z>/path>path dm42.356 18.0266-3.8943-6.4111c6.9011-4.20082 14.4882-7.38645 22.554-9.34944l1.7798 7.28755c-7.3096 1.77899-14.1854 4.66589-20.4395 8.47299z>/path>path dm145 80c0 35.899-29.101 65-65 65-11.3866 0-22.0893-2.928-31.3965-8.072-.8961-.495-1.9417-.658-2.9389-.426l-28.9134 6.747 6.7465-28.914c.2326-.997.0692-2.043-.426-2.939-5.1439-9.307-8.0717-20.0095-8.0717-31.396 0-35.8985 29.1015-65 65-65 35.899 0 65 29.1015 65 65z>/path>/g>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://t.me/closingtags target_blank titleLink to my Telegram channel>svg fill#af39ff viewBox0 0 32 32 version1.1 xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>title>Telegram/title>path dM22.122 10.040c0.006-0 0.014-0 0.022-0 0.209 0 0.403 0.065 0.562 0.177l-0.003-0.002c0.116 0.101 0.194 0.243 0.213 0.403l0 0.003c0.020 0.122 0.031 0.262 0.031 0.405 0 0.065-0.002 0.129-0.007 0.193l0-0.009c-0.225 2.369-1.201 8.114-1.697 10.766-0.21 1.123-0.623 1.499-1.023 1.535-0.869 0.081-1.529-0.574-2.371-1.126-1.318-0.865-2.063-1.403-3.342-2.246-1.479-0.973-0.52-1.51 0.322-2.384 0.221-0.23 4.052-3.715 4.127-4.031 0.004-0.019 0.006-0.040 0.006-0.062 0-0.078-0.029-0.149-0.076-0.203l0 0c-0.052-0.034-0.117-0.053-0.185-0.053-0.045 0-0.088 0.009-0.128 0.024l0.002-0.001q-0.198 0.045-6.316 4.174c-0.445 0.351-1.007 0.573-1.619 0.599l-0.006 0c-0.867-0.105-1.654-0.298-2.401-0.573l0.074 0.024c-0.938-0.306-1.683-0.467-1.619-0.985q0.051-0.404 1.114-0.827 6.548-2.853 8.733-3.761c1.607-0.853 3.47-1.555 5.429-2.010l0.157-0.031zM15.93 1.025c-8.302 0.020-15.025 6.755-15.025 15.060 0 8.317 6.742 15.060 15.060 15.060s15.060-6.742 15.060-15.060c0-8.305-6.723-15.040-15.023-15.060h-0.002q-0.035-0-0.070 0z>/path>/svg>!---->/a> a classbasis-1/6 after:hidden relme hrefhttps://github.com/Dilden target_blank titleLink to my Github profile>svg viewBox0 0 20 20 classtransition ease-in-out hover:translate-y-1 hover:scale-110 duration-250 version1.1 xmlnshttp://www.w3.org/2000/svg fill#000000 stroke#000000>title>Dylans GitHub Profile/title>g idSVGRepo_bgCarrier stroke-width0>/g>g idSVGRepo_tracerCarrier stroke-linecapround stroke-linejoinround>/g>g idSVGRepo_iconCarrier>g idPage-1 strokenone stroke-width1 fillnone fill-ruleevenodd>g idDribbble-Light-Preview transformtranslate(-140.000000, -7559.000000) fill#af39ff>g idicons transformtranslate(56.000000, 160.000000)>path dM94,7399 C99.523,7399 104,7403.59 104,7409.253 C104,7413.782 101.138,7417.624 97.167,7418.981 C96.66,7419.082 96.48,7418.762 96.48,7418.489 C96.48,7418.151 96.492,7417.047 96.492,7415.675 C96.492,7414.719 96.172,7414.095 95.813,7413.777 C98.04,7413.523 100.38,7412.656 100.38,7408.718 C100.38,7407.598 99.992,7406.684 99.35,7405.966 C99.454,7405.707 99.797,7404.664 99.252,7403.252 C99.252,7403.252 98.414,7402.977 96.505,7404.303 C95.706,7404.076 94.85,7403.962 94,7403.958 C93.15,7403.962 92.295,7404.076 91.497,7404.303 C89.586,7402.977 88.746,7403.252 88.746,7403.252 C88.203,7404.664 88.546,7405.707 88.649,7405.966 C88.01,7406.684 87.619,7407.598 87.619,7408.718 C87.619,7412.646 89.954,7413.526 92.175,7413.785 C91.889,7414.041 91.63,7414.493 91.54,7415.156 C90.97,7415.418 89.522,7415.871 88.63,7414.304 C88.63,7414.304 88.101,7413.319 87.097,7413.247 C87.097,7413.247 86.122,7413.234 87.029,7413.87 C87.029,7413.87 87.684,7414.185 88.139,7415.37 C88.139,7415.37 88.726,7417.2 91.508,7416.58 C91.513,7417.437 91.522,7418.245 91.522,7418.489 C91.522,7418.76 91.338,7419.077 90.839,7418.982 C86.865,7417.627 84,7413.783 84,7409.253 C84,7403.59 88.478,7399 94,7399 idgithub-#142>/path>/g>/g>/g>/g>/svg>!---->/a> a data-sveltekit-reload classbasis-1/6 after:hidden href/api/rss.xml titleLink to my RSS feed>svg viewBox0 0 24 24 fillnone classtransition ease-in-out hover:translate-y-1 hover:scale-110 duration-250 xmlnshttp://www.w3.org/2000/svg>path dM4 11C6.38695 11 8.67613 11.9482 10.364 13.636C12.0518 15.3239 13 17.6131 13 20M4 4C8.24346 4 12.3131 5.68571 15.3137 8.68629C18.3143 11.6869 20 15.7565 20 20M6 19C6 19.5523 5.55228 20 5 20C4.44772 20 4 19.5523 4 19C4 18.4477 4.44772 18 5 18C5.55228 18 6 18.4477 6 19Z stroke#af39ff stroke-width2 stroke-linecapround stroke-linejoinround>/path>/svg>!---->/a> a classbasis-1/6 after:hidden href/contact titleLink to my contact form>svg viewBox0 0 24 24 classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110 fill#af39ff xmlnshttp://www.w3.org/2000/svg>path fill-ruleevenodd clip-ruleevenodd dM3.75 5.25L3 6V18L3.75 18.75H20.25L21 18V6L20.25 5.25H3.75ZM4.5 7.6955V17.25H19.5V7.69525L11.9999 14.5136L4.5 7.6955ZM18.3099 6.75H5.68986L11.9999 12.4864L18.3099 6.75Z fill#af39ff>/path>/svg>!---->/a>/div>!---->/div>/nav>/span>!---->/header>!----> !---->main idgrow classmx-3 mt-5 w-auto flex-auto p-1 md:mx-auto md:w-10/12 md:p-5 tabindex-1>!---->svg width0 height0 aria-hiddentrue>filter idglow-0 x-25% y-25% width150% height150%>feComponentTransfer>feFuncA typetable tableValues0 2 0>/feFuncA>/feComponentTransfer>feGaussianBlur stdDeviation2>/feGaussianBlur>feComponentTransfer resultrond>feFuncA typetable tableValues-2 3>/feFuncA>/feComponentTransfer>feMorphology operatordilate radius3>/feMorphology>feGaussianBlur stdDeviation6>/feGaussianBlur>feBlend inrond resultglow>/feBlend>feComponentTransfer inSourceGraphic>feFuncA typetable tableValues0 0 1>/feFuncA>/feComponentTransfer>feBlend in2glow>/feBlend>/filter>/svg> div classm-2 flex flex-col items-center gap-8 lg:flex-row>div classorder-2 flex w-auto flex-col gap-4 py-2 md:w-2/3>h1 classcol-span-3 text-3xl>Hi, Im Dylan! 👋/h1> p classcol-span-3 text-lg>Im a full-stack web developer and a hrefhttps://sveltekitbook.dev classtext-lg target_blank>author/a> with a penchant for understanding how things work. Over the past decade, Ive acquired a wide range of skills that spans everything from web application development to server administration & automation. Im just as comfortable building front-ends for websites as I am coding the back-end. You can read more a href/about classtext-lg>about me here/a>. If you like the posts here, want to work with me, or just want to say italic classitalic>Hello!/italic>, you can fill out a classtext-lg href/contact>this contact form/a> or find me on these other platforms!/p> div classmx-auto w-3/4 lg:w-1/2>div classflex w-full flex-wrap justify-evenly gap-4>a classbasis-1/6 after:hidden hrefhttps://mastodon.social/@closingtags titleLink to my Mastodon profile target_blank>svg viewBox0 0 75 79 fillnone xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>path dM73.8393 17.4898C72.6973 9.00165 65.2994 2.31235 56.5296 1.01614C55.05 0.797115 49.4441 0 36.4582 0H36.3612C23.3717 0 20.585 0.797115 19.1054 1.01614C10.5798 2.27644 2.79399 8.28712 0.904997 16.8758C-0.00358524 21.1056 -0.100549 25.7949 0.0682394 30.0965C0.308852 36.2651 0.355538 42.423 0.91577 48.5665C1.30307 52.6474 1.97872 56.6957 2.93763 60.6812C4.73325 68.042 12.0019 74.1676 19.1233 76.6666C26.7478 79.2728 34.9474 79.7055 42.8039 77.9162C43.6682 77.7151 44.5217 77.4817 45.3645 77.216C47.275 76.6092 49.5123 75.9305 51.1571 74.7385C51.1797 74.7217 51.1982 74.7001 51.2112 74.6753C51.2243 74.6504 51.2316 74.6229 51.2325 74.5948V68.6416C51.2321 68.6154 51.2259 68.5896 51.2142 68.5661C51.2025 68.5426 51.1858 68.522 51.1651 68.5058C51.1444 68.4896 51.1204 68.4783 51.0948 68.4726C51.0692 68.4669 51.0426 68.467 51.0171 68.4729C45.9835 69.675 40.8254 70.2777 35.6502 70.2682C26.7439 70.2682 24.3486 66.042 23.6626 64.2826C23.1113 62.762 22.7612 61.1759 22.6212 59.5646C22.6197 59.5375 22.6247 59.5105 22.6357 59.4857C22.6466 59.4609 22.6633 59.4391 22.6843 59.422C22.7053 59.4048 22.73 59.3929 22.7565 59.3871C22.783 59.3813 22.8104 59.3818 22.8367 59.3886C27.7864 60.5826 32.8604 61.1853 37.9522 61.1839C39.1768 61.1839 40.3978 61.1839 41.6224 61.1516C46.7435 61.008 52.1411 60.7459 57.1796 59.7621C57.3053 59.7369 57.431 59.7154 57.5387 59.6831C65.4861 58.157 73.0493 53.3672 73.8178 41.2381C73.8465 40.7606 73.9184 36.2364 73.9184 35.7409C73.9219 34.0569 74.4606 23.7949 73.8393 17.4898Z fill#af39ff>/path>path dM61.2484 27.0263V48.114H52.8916V27.6475C52.8916 23.3388 51.096 21.1413 47.4437 21.1413C43.4287 21.1413 41.4177 23.7409 41.4177 28.8755V40.0782H33.1111V28.8755C33.1111 23.7409 31.0965 21.1413 27.0815 21.1413C23.4507 21.1413 21.6371 23.3388 21.6371 27.6475V48.114H13.2839V27.0263C13.2839 22.7176 14.384 19.2946 16.5843 16.7572C18.8539 14.2258 21.8311 12.926 25.5264 12.926C29.8036 12.926 33.0357 14.5705 35.1905 17.8559L37.2698 21.346L39.3527 17.8559C41.5074 14.5705 44.7395 12.926 49.0095 12.926C52.7013 12.926 55.6784 14.2258 57.9553 16.7572C60.1531 19.2922 61.2508 22.7152 61.2484 27.0263Z fill#200d29>/path>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://bsky.app/profile/closingtags.mastodon.social.ap.brid.gy titleLink to my Bluesky profile target_blank>svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110 viewBox0 0 568 501 xmlnshttp://www.w3.org/2000/svg>path dM123.121 33.6637C188.241 82.5526 258.281 181.681 284 234.873C309.719 181.681 379.759 82.5526 444.879 33.6637C491.866 -1.61183 568 -28.9064 568 57.9464C568 75.2916 558.055 203.659 552.222 224.501C531.947 296.954 458.067 315.434 392.347 304.249C507.222 323.8 536.444 388.56 473.333 453.32C353.473 576.312 301.061 422.461 287.631 383.039C285.169 375.812 284.017 372.431 284 375.306C283.983 372.431 282.831 375.812 280.369 383.039C266.939 422.461 214.527 576.312 94.6667 453.32C31.5556 388.56 60.7778 323.8 175.653 304.249C109.933 315.434 36.0535 296.954 15.7778 224.501C9.94525 203.659 0 75.2916 0 57.9464C0 -28.9064 76.1345 -1.61183 123.121 33.6637Z fill#af39ff>/path>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://signal.me/#eu/kuEzxRvq-6Wt_Y5NkPXJ-0z7aafnRho56ERp_-RHvxgbmh0vodhCSrhmfdQmIWMX target_blank titleMessage me on Signal>svg fillnone viewBox0 0 160 160 xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>g fill#af39ff>path dm80 0c4.1505 0 8.2271.31607 12.2072.925452l-1.1444 7.413248c-3.6069-.55226-7.3014-.8387-11.0628-.8387-3.7612 0-7.4555.28641-11.0623.83862l-1.1444-7.413245c3.9799-.609332 8.0564-.925375 12.2067-.925375z>/path>path dm98.9849 2.26619-1.7798 7.28755c7.3099 1.77896 14.1849 4.66606 20.4389 8.47306l3.895-6.411c-6.901-4.20091-14.488-7.38658-22.5541-9.34961z>/path>path dm127.279 15.4591-4.432 6.0507c5.977 4.3861 11.257 9.6664 15.643 15.6437l6.051-4.4324c-4.84-6.5957-10.666-12.4222-17.262-17.262z>/path>path dm148.384 38.4618-6.411 3.8942c3.807 6.2541 6.694 13.1299 8.473 20.4395l7.288-1.7798c-1.963-8.0657-5.149-15.6528-9.35-22.5539z>/path>path dm159.075 67.7934-7.414 1.1444c.553 3.6067.839 7.301.839 11.0622 0 3.7614-.286 7.4559-.839 11.0628l7.414 1.1444c.609-3.9801.925-8.0567.925-12.2072 0-4.1503-.316-8.2267-.925-12.2066z>/path>path dm141.973 117.645c3.807-6.255 6.694-13.13 8.473-20.44l7.288 1.7798c-1.963 8.0662-5.149 15.6532-9.35 22.5542z>/path>path dm138.49 122.847 6.051 4.432c-4.84 6.596-10.666 12.422-17.262 17.262l-4.433-6.051c5.978-4.386 11.258-9.666 15.644-15.643z>/path>path dm117.644 141.973 3.894 6.411c-6.901 4.201-14.488 7.387-22.5537 9.35l-1.7798-7.288c7.3095-1.779 14.1855-4.666 20.4395-8.473z>/path>path dm91.0622 151.661 1.1445 7.414c-3.9799.609-8.0564.925-12.2067.925-4.1505 0-8.2272-.316-12.2073-.925l1.1442-7.413c3.6054.552 7.2997.838 11.0631.838 3.7612 0 7.4555-.286 11.0622-.839z>/path>path dm62.7945 150.448-1.7794 7.286c-6.0589-1.475-11.8477-3.639-17.2785-6.406l-7.5927 1.772-1.7042-7.304 10.2604-2.394 2.4408 1.243c4.9187 2.506 10.1623 4.467 15.6536 5.803z>/path>path dm28.1097 147.273 1.7042 7.304-13.0145 3.036c-8.66079 2.021-16.433718-5.752-14.41286-14.412l3.03673-13.015 7.30383 1.704-3.03675 13.015c-.75782 3.248 2.15705 6.162 5.40485 5.405z>/path>path dm14.2041 125.56-7.30383-1.704 1.77163-7.593c-2.76664-5.431-4.93123-11.22-6.40585-17.2787l7.28586-1.7794c1.33599 5.4911 3.29709 10.7351 5.80279 15.6541l1.2435 2.441z>/path>path dm8.33759 91.0624-7.412228 1.1442c-.609324-3.9799-.925362-8.0563-.925362-12.2066 0-4.1505.316067-8.2271.925446-12.2072l7.413244 1.1444c-.55225 3.607-.83869 7.3014-.83869 11.0628 0 3.7631.28613 7.4572.83759 11.0624z>/path>path dm9.55373 62.795-7.28755-1.7798c1.96302-8.0657 5.1487-15.6528 9.34962-22.5539l6.411 3.8942c-3.807 6.2541-6.6941 13.1299-8.47307 20.4395z>/path>path dm21.5098 37.1531-6.0507-4.4324c4.8398-6.5957 10.6663-12.4221 17.262-17.2619l4.4324 6.0507c-5.9773 4.3861-11.2576 9.6663-15.6437 15.6436z>/path>path dm42.356 18.0266-3.8943-6.4111c6.9011-4.20082 14.4882-7.38645 22.554-9.34944l1.7798 7.28755c-7.3096 1.77899-14.1854 4.66589-20.4395 8.47299z>/path>path dm145 80c0 35.899-29.101 65-65 65-11.3866 0-22.0893-2.928-31.3965-8.072-.8961-.495-1.9417-.658-2.9389-.426l-28.9134 6.747 6.7465-28.914c.2326-.997.0692-2.043-.426-2.939-5.1439-9.307-8.0717-20.0095-8.0717-31.396 0-35.8985 29.1015-65 65-65 35.899 0 65 29.1015 65 65z>/path>/g>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://t.me/closingtags target_blank titleLink to my Telegram channel>svg fill#af39ff viewBox0 0 32 32 version1.1 xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>title>Telegram/title>path dM22.122 10.040c0.006-0 0.014-0 0.022-0 0.209 0 0.403 0.065 0.562 0.177l-0.003-0.002c0.116 0.101 0.194 0.243 0.213 0.403l0 0.003c0.020 0.122 0.031 0.262 0.031 0.405 0 0.065-0.002 0.129-0.007 0.193l0-0.009c-0.225 2.369-1.201 8.114-1.697 10.766-0.21 1.123-0.623 1.499-1.023 1.535-0.869 0.081-1.529-0.574-2.371-1.126-1.318-0.865-2.063-1.403-3.342-2.246-1.479-0.973-0.52-1.51 0.322-2.384 0.221-0.23 4.052-3.715 4.127-4.031 0.004-0.019 0.006-0.040 0.006-0.062 0-0.078-0.029-0.149-0.076-0.203l0 0c-0.052-0.034-0.117-0.053-0.185-0.053-0.045 0-0.088 0.009-0.128 0.024l0.002-0.001q-0.198 0.045-6.316 4.174c-0.445 0.351-1.007 0.573-1.619 0.599l-0.006 0c-0.867-0.105-1.654-0.298-2.401-0.573l0.074 0.024c-0.938-0.306-1.683-0.467-1.619-0.985q0.051-0.404 1.114-0.827 6.548-2.853 8.733-3.761c1.607-0.853 3.47-1.555 5.429-2.010l0.157-0.031zM15.93 1.025c-8.302 0.020-15.025 6.755-15.025 15.060 0 8.317 6.742 15.060 15.060 15.060s15.060-6.742 15.060-15.060c0-8.305-6.723-15.040-15.023-15.060h-0.002q-0.035-0-0.070 0z>/path>/svg>!---->/a> a classbasis-1/6 after:hidden relme hrefhttps://github.com/Dilden target_blank titleLink to my Github profile>svg viewBox0 0 20 20 classtransition ease-in-out hover:translate-y-1 hover:scale-110 duration-250 version1.1 xmlnshttp://www.w3.org/2000/svg fill#000000 stroke#000000>title>Dylans GitHub Profile/title>g idSVGRepo_bgCarrier stroke-width0>/g>g idSVGRepo_tracerCarrier stroke-linecapround stroke-linejoinround>/g>g idSVGRepo_iconCarrier>g idPage-1 strokenone stroke-width1 fillnone fill-ruleevenodd>g idDribbble-Light-Preview transformtranslate(-140.000000, -7559.000000) fill#af39ff>g idicons transformtranslate(56.000000, 160.000000)>path dM94,7399 C99.523,7399 104,7403.59 104,7409.253 C104,7413.782 101.138,7417.624 97.167,7418.981 C96.66,7419.082 96.48,7418.762 96.48,7418.489 C96.48,7418.151 96.492,7417.047 96.492,7415.675 C96.492,7414.719 96.172,7414.095 95.813,7413.777 C98.04,7413.523 100.38,7412.656 100.38,7408.718 C100.38,7407.598 99.992,7406.684 99.35,7405.966 C99.454,7405.707 99.797,7404.664 99.252,7403.252 C99.252,7403.252 98.414,7402.977 96.505,7404.303 C95.706,7404.076 94.85,7403.962 94,7403.958 C93.15,7403.962 92.295,7404.076 91.497,7404.303 C89.586,7402.977 88.746,7403.252 88.746,7403.252 C88.203,7404.664 88.546,7405.707 88.649,7405.966 C88.01,7406.684 87.619,7407.598 87.619,7408.718 C87.619,7412.646 89.954,7413.526 92.175,7413.785 C91.889,7414.041 91.63,7414.493 91.54,7415.156 C90.97,7415.418 89.522,7415.871 88.63,7414.304 C88.63,7414.304 88.101,7413.319 87.097,7413.247 C87.097,7413.247 86.122,7413.234 87.029,7413.87 C87.029,7413.87 87.684,7414.185 88.139,7415.37 C88.139,7415.37 88.726,7417.2 91.508,7416.58 C91.513,7417.437 91.522,7418.245 91.522,7418.489 C91.522,7418.76 91.338,7419.077 90.839,7418.982 C86.865,7417.627 84,7413.783 84,7409.253 C84,7403.59 88.478,7399 94,7399 idgithub-#142>/path>/g>/g>/g>/g>/svg>!---->/a> a data-sveltekit-reload classbasis-1/6 after:hidden href/api/rss.xml titleLink to my RSS feed>svg viewBox0 0 24 24 fillnone classtransition ease-in-out hover:translate-y-1 hover:scale-110 duration-250 xmlnshttp://www.w3.org/2000/svg>path dM4 11C6.38695 11 8.67613 11.9482 10.364 13.636C12.0518 15.3239 13 17.6131 13 20M4 4C8.24346 4 12.3131 5.68571 15.3137 8.68629C18.3143 11.6869 20 15.7565 20 20M6 19C6 19.5523 5.55228 20 5 20C4.44772 20 4 19.5523 4 19C4 18.4477 4.44772 18 5 18C5.55228 18 6 18.4477 6 19Z stroke#af39ff stroke-width2 stroke-linecapround stroke-linejoinround>/path>/svg>!---->/a> a classbasis-1/6 after:hidden href/contact titleLink to my contact form>svg viewBox0 0 24 24 classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110 fill#af39ff xmlnshttp://www.w3.org/2000/svg>path fill-ruleevenodd clip-ruleevenodd dM3.75 5.25L3 6V18L3.75 18.75H20.25L21 18V6L20.25 5.25H3.75ZM4.5 7.6955V17.25H19.5V7.69525L11.9999 14.5136L4.5 7.6955ZM18.3099 6.75H5.68986L11.9999 12.4864L18.3099 6.75Z fill#af39ff>/path>/svg>!---->/a>/div>!---->/div>/div> img classorder-1 box-border w-3/4 justify-self-center rounded-full object-cover object-center_top p-2 md:w-1/3 svelte-1xvhi7z src/_app/immutable/assets/me.Cq-qN3_8.jpg altDylan Hildenbrand poses with his arms crossed. He is a caucasion man wearing glasses, has tossled hair, and a short beard. He wears a black, long-sleeve shirt and has his arms crossed. He is also incredibly handsome. Like, so ridiculously handsome its not even fair. How many other nerds do you know that look this good?>/div> div classmy-4 block w-auto text-center font-code text-3xl text-var(--link-hover-color) before:mb-2 before:mr-2 before:inline-block before:w-40% before:border before:border-solid before:border-var(--link-hover-color) before:text-var(--link-hover-color) after:mb-2 after:ml-2 after:inline-block after:w-40% after:border after:border-solid after:border-var(--link-hover-color) after:text-var(--link-hover-color)>///div>!----> div classmx-auto w-auto md:w-3/4>h2 classmy-5 text-4xl>Recent Posts/h2> ul classposts-list>!---->li>article classmy-3>a classw-full after:mb-2 href/blog/home-networking>h2 classtext-3xl>Home Is Where the WiFi Doesnt Suck/h2>/a> !---->p classmy-2>Having awesome internet is a privilege that is only appreciated when you suddenly dont have it. In this post, I document my adventures cosplaying as someone who knew what theyre doing while attempting to network my new house with an incredible internet experience./p>!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>November 13, 2025/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/diy/>#diy/a>/li>li>a href/blog/category/homelab/>#homelab/a>/li>li>a href/blog/category/networking/>#networking/a>/li>li>a href/blog/category/self-hosting/>#self-hosting/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/going-indie>h2 classtext-3xl>Going Indie/h2>/a> !---->p classmy-2>Webrings are great for connecting the IndieWeb, making it easy and fun to find new and interesting content./p>!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>June 6, 2025/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/indieweb/>#indieweb/a>/li>li>a href/blog/category/smallweb/>#smallweb/a>/li>li>a href/blog/category/webdev/>#webdev/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/svelte-stores-to-runes>h2 classtext-3xl>Migrating Svelte Stores to Runes/h2>/a> !---->p classmy-2>With the changes brought by Svelte 5, I found myself wanting to take advantage of performance improvements and harness the power of runes. But converting my stores to something rune-based proved more challenging than I had hoped since so much of my codebase relied on stores./p>!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>March 28, 2025/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/typescript/>#typescript/a>/li>li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/programming/>#programming/a>/li>li>a href/blog/category/svelte/>#svelte/a>/li>li>a href/blog/category/sveltekit/>#sveltekit/a>/li>li>a href/blog/category/indexeddb/>#indexeddb/a>/li>li>a href/blog/category/localfirst/>#localfirst/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/shopify-development>h2 classtext-3xl>Shopify Theme Development/h2>/a> !---->p classmy-2>I set out to learn how to build sites on Shopify. After becoming frustrated with starter theme, I decided to put together my own template. With this skeleton theme, Im be able to rapidly bootstrap a Shopify site without having to stumble around the cluttered mess found in Shopifys own starter./p>!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>February 11, 2025/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/shopify/>#shopify/a>/li>li>a href/blog/category/liquid/>#liquid/a>/li>li>a href/blog/category/css/>#css/a>/li>li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/tailwindcss/>#tailwindcss/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/deploying-closingtags>h2 classtext-3xl>Deploying SvelteKit Apps with Ansible/h2>/a> !---->p classmy-2>After rebuilding closingtags.com with #SvelteKit, I needed a simple and consistent means of deploying it. Since I use #Ansible to automate other features of my #homelab, I figured it would work just as well for releasing new features to my personal website./p>!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>December 16, 2024/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/svelte/>#svelte/a>/li>li>a href/blog/category/sveltekit/>#sveltekit/a>/li>li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/typescript/>#typescript/a>/li>li>a href/blog/category/nodejs/>#nodejs/a>/li>li>a href/blog/category/ansible/>#ansible/a>/li>li>a href/blog/category/homelab/>#homelab/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/v2>h2 classtext-3xl>Introducing closingtags.com, version 2.0!/h2>/a> !---->p classmy-2>Migrating away from Wordpress and rebuilding closingtags.com from the ground up using Svelte 5 and SvelteKit/p>!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>November 25, 2024/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/svelte/>#svelte/a>/li>li>a href/blog/category/sveltekit/>#sveltekit/a>/li>li>a href/blog/category/wordpress/>#wordpress/a>/li>li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/typescript/>#typescript/a>/li>li>a href/blog/category/css/>#css/a>/li>li>a href/blog/category/homelab/>#homelab/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/helth-app-0-3-0-📅>h2 classtext-3xl>helth.app 0.3.0 📅/h2>/a> !--!-->!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>July 16, 2024/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/helth-app/>#helth-app/a>/li>li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/programming/>#programming/a>/li>li>a href/blog/category/typescript/>#typescript/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/ignoring-jsdom-errors-in-vitest>h2 classtext-3xl>Ignoring JSDOM Errors in Vitest/h2>/a> !--!-->!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>June 3, 2024/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/programming/>#programming/a>/li>li>a href/blog/category/svelte/>#svelte/a>/li>li>a href/blog/category/sveltekit/>#sveltekit/a>/li>li>a href/blog/category/typescript/>#typescript/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/helth-app-0-2-0-🥳>h2 classtext-3xl>helth.app 0.2.0 🥳/h2>/a> !--!-->!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>May 7, 2024/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/helth-app/>#helth-app/a>/li>li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/svelte/>#svelte/a>/li>li>a href/blog/category/sveltekit/>#sveltekit/a>/li>!---->/ul>!---->/div>/article>/li>li>article classmy-3>a classw-full after:mb-2 href/blog/mocking-svelte-stores-in-vitest>h2 classtext-3xl>Mocking Svelte Stores in Vitest/h2>/a> !--!-->!----> div classhover:text-slate-400w-full flex flex-row items-center justify-between text-sm italic text-slate-400>div classgrow-0 basis-1/2>April 30, 2024/div> !---->ul classflex basis-1/2 flex-row flex-wrap justify-end gap-2 not-italic>!---->li>a href/blog/category/javascript/>#javascript/a>/li>li>a href/blog/category/programming/>#programming/a>/li>li>a href/blog/category/svelte/>#svelte/a>/li>li>a href/blog/category/sveltekit/>#sveltekit/a>/li>!---->/ul>!---->/div>/article>/li>!---->/ul>!---->/div> !---->!---->nav aria-labelPagination navigation classpagination mx-auto w-auto lg:w-2/5>ul classflex flex-row justify-between>!---->li>a classtext-md text-bold text-var(--link-hover-color) after:block after:h-1px after:w-full after:bg-var(--link-hover-color) href/blog/page/1 aria-currenttrue>span classsr-only>!---->Current page:!---->/span> 1/a>/li>li>a classtext-md href/blog/page/2 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 2/a>/li>li>a classtext-md href/blog/page/3 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 3/a>/li>li>a classtext-md href/blog/page/4 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 4/a>/li>li>a classtext-md href/blog/page/5 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 5/a>/li>li>a classtext-md href/blog/page/6 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 6/a>/li>li>a classtext-md href/blog/page/7 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 7/a>/li>li>a classtext-md href/blog/page/8 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 8/a>/li>li>a classtext-md href/blog/page/9 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 9/a>/li>li>a classtext-md href/blog/page/10 aria-currentfalse>span classsr-only>!--!-->Go to page!---->/span> 10/a>/li>!---->/ul>/nav>!---->!---->!----> !--!-->!---->!---->!---->!---->/main>!----> div classshrink-0>div classmy-4 block w-auto text-center font-code text-3xl text-var(--link-hover-color) before:mb-2 before:mr-2 before:inline-block before:w-40% before:border before:border-solid before:border-var(--link-hover-color) before:text-var(--link-hover-color) after:mb-2 after:ml-2 after:inline-block after:w-40% after:border after:border-solid after:border-var(--link-hover-color) after:text-var(--link-hover-color)>///div>!----> footer classmx-4 mt-10 flex w-auto flex-col items-stretch justify-between gap-4 p-3 font-code md:mx-auto md:w-10/12 md:p-5>div classflex flex-col items-center justify-center gap-6 md:flex-row>span classorder-2 w-10/12 md:order-1 md:basis-1/3>p classcenter text-xl>Follow me around the web/p> div classflex w-full flex-wrap justify-evenly gap-4>a classbasis-1/6 after:hidden hrefhttps://mastodon.social/@closingtags titleLink to my Mastodon profile target_blank>svg viewBox0 0 75 79 fillnone xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>path dM73.8393 17.4898C72.6973 9.00165 65.2994 2.31235 56.5296 1.01614C55.05 0.797115 49.4441 0 36.4582 0H36.3612C23.3717 0 20.585 0.797115 19.1054 1.01614C10.5798 2.27644 2.79399 8.28712 0.904997 16.8758C-0.00358524 21.1056 -0.100549 25.7949 0.0682394 30.0965C0.308852 36.2651 0.355538 42.423 0.91577 48.5665C1.30307 52.6474 1.97872 56.6957 2.93763 60.6812C4.73325 68.042 12.0019 74.1676 19.1233 76.6666C26.7478 79.2728 34.9474 79.7055 42.8039 77.9162C43.6682 77.7151 44.5217 77.4817 45.3645 77.216C47.275 76.6092 49.5123 75.9305 51.1571 74.7385C51.1797 74.7217 51.1982 74.7001 51.2112 74.6753C51.2243 74.6504 51.2316 74.6229 51.2325 74.5948V68.6416C51.2321 68.6154 51.2259 68.5896 51.2142 68.5661C51.2025 68.5426 51.1858 68.522 51.1651 68.5058C51.1444 68.4896 51.1204 68.4783 51.0948 68.4726C51.0692 68.4669 51.0426 68.467 51.0171 68.4729C45.9835 69.675 40.8254 70.2777 35.6502 70.2682C26.7439 70.2682 24.3486 66.042 23.6626 64.2826C23.1113 62.762 22.7612 61.1759 22.6212 59.5646C22.6197 59.5375 22.6247 59.5105 22.6357 59.4857C22.6466 59.4609 22.6633 59.4391 22.6843 59.422C22.7053 59.4048 22.73 59.3929 22.7565 59.3871C22.783 59.3813 22.8104 59.3818 22.8367 59.3886C27.7864 60.5826 32.8604 61.1853 37.9522 61.1839C39.1768 61.1839 40.3978 61.1839 41.6224 61.1516C46.7435 61.008 52.1411 60.7459 57.1796 59.7621C57.3053 59.7369 57.431 59.7154 57.5387 59.6831C65.4861 58.157 73.0493 53.3672 73.8178 41.2381C73.8465 40.7606 73.9184 36.2364 73.9184 35.7409C73.9219 34.0569 74.4606 23.7949 73.8393 17.4898Z fill#af39ff>/path>path dM61.2484 27.0263V48.114H52.8916V27.6475C52.8916 23.3388 51.096 21.1413 47.4437 21.1413C43.4287 21.1413 41.4177 23.7409 41.4177 28.8755V40.0782H33.1111V28.8755C33.1111 23.7409 31.0965 21.1413 27.0815 21.1413C23.4507 21.1413 21.6371 23.3388 21.6371 27.6475V48.114H13.2839V27.0263C13.2839 22.7176 14.384 19.2946 16.5843 16.7572C18.8539 14.2258 21.8311 12.926 25.5264 12.926C29.8036 12.926 33.0357 14.5705 35.1905 17.8559L37.2698 21.346L39.3527 17.8559C41.5074 14.5705 44.7395 12.926 49.0095 12.926C52.7013 12.926 55.6784 14.2258 57.9553 16.7572C60.1531 19.2922 61.2508 22.7152 61.2484 27.0263Z fill#200d29>/path>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://bsky.app/profile/closingtags.mastodon.social.ap.brid.gy titleLink to my Bluesky profile target_blank>svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110 viewBox0 0 568 501 xmlnshttp://www.w3.org/2000/svg>path dM123.121 33.6637C188.241 82.5526 258.281 181.681 284 234.873C309.719 181.681 379.759 82.5526 444.879 33.6637C491.866 -1.61183 568 -28.9064 568 57.9464C568 75.2916 558.055 203.659 552.222 224.501C531.947 296.954 458.067 315.434 392.347 304.249C507.222 323.8 536.444 388.56 473.333 453.32C353.473 576.312 301.061 422.461 287.631 383.039C285.169 375.812 284.017 372.431 284 375.306C283.983 372.431 282.831 375.812 280.369 383.039C266.939 422.461 214.527 576.312 94.6667 453.32C31.5556 388.56 60.7778 323.8 175.653 304.249C109.933 315.434 36.0535 296.954 15.7778 224.501C9.94525 203.659 0 75.2916 0 57.9464C0 -28.9064 76.1345 -1.61183 123.121 33.6637Z fill#af39ff>/path>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://signal.me/#eu/kuEzxRvq-6Wt_Y5NkPXJ-0z7aafnRho56ERp_-RHvxgbmh0vodhCSrhmfdQmIWMX target_blank titleMessage me on Signal>svg fillnone viewBox0 0 160 160 xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>g fill#af39ff>path dm80 0c4.1505 0 8.2271.31607 12.2072.925452l-1.1444 7.413248c-3.6069-.55226-7.3014-.8387-11.0628-.8387-3.7612 0-7.4555.28641-11.0623.83862l-1.1444-7.413245c3.9799-.609332 8.0564-.925375 12.2067-.925375z>/path>path dm98.9849 2.26619-1.7798 7.28755c7.3099 1.77896 14.1849 4.66606 20.4389 8.47306l3.895-6.411c-6.901-4.20091-14.488-7.38658-22.5541-9.34961z>/path>path dm127.279 15.4591-4.432 6.0507c5.977 4.3861 11.257 9.6664 15.643 15.6437l6.051-4.4324c-4.84-6.5957-10.666-12.4222-17.262-17.262z>/path>path dm148.384 38.4618-6.411 3.8942c3.807 6.2541 6.694 13.1299 8.473 20.4395l7.288-1.7798c-1.963-8.0657-5.149-15.6528-9.35-22.5539z>/path>path dm159.075 67.7934-7.414 1.1444c.553 3.6067.839 7.301.839 11.0622 0 3.7614-.286 7.4559-.839 11.0628l7.414 1.1444c.609-3.9801.925-8.0567.925-12.2072 0-4.1503-.316-8.2267-.925-12.2066z>/path>path dm141.973 117.645c3.807-6.255 6.694-13.13 8.473-20.44l7.288 1.7798c-1.963 8.0662-5.149 15.6532-9.35 22.5542z>/path>path dm138.49 122.847 6.051 4.432c-4.84 6.596-10.666 12.422-17.262 17.262l-4.433-6.051c5.978-4.386 11.258-9.666 15.644-15.643z>/path>path dm117.644 141.973 3.894 6.411c-6.901 4.201-14.488 7.387-22.5537 9.35l-1.7798-7.288c7.3095-1.779 14.1855-4.666 20.4395-8.473z>/path>path dm91.0622 151.661 1.1445 7.414c-3.9799.609-8.0564.925-12.2067.925-4.1505 0-8.2272-.316-12.2073-.925l1.1442-7.413c3.6054.552 7.2997.838 11.0631.838 3.7612 0 7.4555-.286 11.0622-.839z>/path>path dm62.7945 150.448-1.7794 7.286c-6.0589-1.475-11.8477-3.639-17.2785-6.406l-7.5927 1.772-1.7042-7.304 10.2604-2.394 2.4408 1.243c4.9187 2.506 10.1623 4.467 15.6536 5.803z>/path>path dm28.1097 147.273 1.7042 7.304-13.0145 3.036c-8.66079 2.021-16.433718-5.752-14.41286-14.412l3.03673-13.015 7.30383 1.704-3.03675 13.015c-.75782 3.248 2.15705 6.162 5.40485 5.405z>/path>path dm14.2041 125.56-7.30383-1.704 1.77163-7.593c-2.76664-5.431-4.93123-11.22-6.40585-17.2787l7.28586-1.7794c1.33599 5.4911 3.29709 10.7351 5.80279 15.6541l1.2435 2.441z>/path>path dm8.33759 91.0624-7.412228 1.1442c-.609324-3.9799-.925362-8.0563-.925362-12.2066 0-4.1505.316067-8.2271.925446-12.2072l7.413244 1.1444c-.55225 3.607-.83869 7.3014-.83869 11.0628 0 3.7631.28613 7.4572.83759 11.0624z>/path>path dm9.55373 62.795-7.28755-1.7798c1.96302-8.0657 5.1487-15.6528 9.34962-22.5539l6.411 3.8942c-3.807 6.2541-6.6941 13.1299-8.47307 20.4395z>/path>path dm21.5098 37.1531-6.0507-4.4324c4.8398-6.5957 10.6663-12.4221 17.262-17.2619l4.4324 6.0507c-5.9773 4.3861-11.2576 9.6663-15.6437 15.6436z>/path>path dm42.356 18.0266-3.8943-6.4111c6.9011-4.20082 14.4882-7.38645 22.554-9.34944l1.7798 7.28755c-7.3096 1.77899-14.1854 4.66589-20.4395 8.47299z>/path>path dm145 80c0 35.899-29.101 65-65 65-11.3866 0-22.0893-2.928-31.3965-8.072-.8961-.495-1.9417-.658-2.9389-.426l-28.9134 6.747 6.7465-28.914c.2326-.997.0692-2.043-.426-2.939-5.1439-9.307-8.0717-20.0095-8.0717-31.396 0-35.8985 29.1015-65 65-65 35.899 0 65 29.1015 65 65z>/path>/g>/svg>!---->/a> a classbasis-1/6 after:hidden hrefhttps://t.me/closingtags target_blank titleLink to my Telegram channel>svg fill#af39ff viewBox0 0 32 32 version1.1 xmlnshttp://www.w3.org/2000/svg classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110>title>Telegram/title>path dM22.122 10.040c0.006-0 0.014-0 0.022-0 0.209 0 0.403 0.065 0.562 0.177l-0.003-0.002c0.116 0.101 0.194 0.243 0.213 0.403l0 0.003c0.020 0.122 0.031 0.262 0.031 0.405 0 0.065-0.002 0.129-0.007 0.193l0-0.009c-0.225 2.369-1.201 8.114-1.697 10.766-0.21 1.123-0.623 1.499-1.023 1.535-0.869 0.081-1.529-0.574-2.371-1.126-1.318-0.865-2.063-1.403-3.342-2.246-1.479-0.973-0.52-1.51 0.322-2.384 0.221-0.23 4.052-3.715 4.127-4.031 0.004-0.019 0.006-0.040 0.006-0.062 0-0.078-0.029-0.149-0.076-0.203l0 0c-0.052-0.034-0.117-0.053-0.185-0.053-0.045 0-0.088 0.009-0.128 0.024l0.002-0.001q-0.198 0.045-6.316 4.174c-0.445 0.351-1.007 0.573-1.619 0.599l-0.006 0c-0.867-0.105-1.654-0.298-2.401-0.573l0.074 0.024c-0.938-0.306-1.683-0.467-1.619-0.985q0.051-0.404 1.114-0.827 6.548-2.853 8.733-3.761c1.607-0.853 3.47-1.555 5.429-2.010l0.157-0.031zM15.93 1.025c-8.302 0.020-15.025 6.755-15.025 15.060 0 8.317 6.742 15.060 15.060 15.060s15.060-6.742 15.060-15.060c0-8.305-6.723-15.040-15.023-15.060h-0.002q-0.035-0-0.070 0z>/path>/svg>!---->/a> a classbasis-1/6 after:hidden relme hrefhttps://github.com/Dilden target_blank titleLink to my Github profile>svg viewBox0 0 20 20 classtransition ease-in-out hover:translate-y-1 hover:scale-110 duration-250 version1.1 xmlnshttp://www.w3.org/2000/svg fill#000000 stroke#000000>title>Dylans GitHub Profile/title>g idSVGRepo_bgCarrier stroke-width0>/g>g idSVGRepo_tracerCarrier stroke-linecapround stroke-linejoinround>/g>g idSVGRepo_iconCarrier>g idPage-1 strokenone stroke-width1 fillnone fill-ruleevenodd>g idDribbble-Light-Preview transformtranslate(-140.000000, -7559.000000) fill#af39ff>g idicons transformtranslate(56.000000, 160.000000)>path dM94,7399 C99.523,7399 104,7403.59 104,7409.253 C104,7413.782 101.138,7417.624 97.167,7418.981 C96.66,7419.082 96.48,7418.762 96.48,7418.489 C96.48,7418.151 96.492,7417.047 96.492,7415.675 C96.492,7414.719 96.172,7414.095 95.813,7413.777 C98.04,7413.523 100.38,7412.656 100.38,7408.718 C100.38,7407.598 99.992,7406.684 99.35,7405.966 C99.454,7405.707 99.797,7404.664 99.252,7403.252 C99.252,7403.252 98.414,7402.977 96.505,7404.303 C95.706,7404.076 94.85,7403.962 94,7403.958 C93.15,7403.962 92.295,7404.076 91.497,7404.303 C89.586,7402.977 88.746,7403.252 88.746,7403.252 C88.203,7404.664 88.546,7405.707 88.649,7405.966 C88.01,7406.684 87.619,7407.598 87.619,7408.718 C87.619,7412.646 89.954,7413.526 92.175,7413.785 C91.889,7414.041 91.63,7414.493 91.54,7415.156 C90.97,7415.418 89.522,7415.871 88.63,7414.304 C88.63,7414.304 88.101,7413.319 87.097,7413.247 C87.097,7413.247 86.122,7413.234 87.029,7413.87 C87.029,7413.87 87.684,7414.185 88.139,7415.37 C88.139,7415.37 88.726,7417.2 91.508,7416.58 C91.513,7417.437 91.522,7418.245 91.522,7418.489 C91.522,7418.76 91.338,7419.077 90.839,7418.982 C86.865,7417.627 84,7413.783 84,7409.253 C84,7403.59 88.478,7399 94,7399 idgithub-#142>/path>/g>/g>/g>/g>/svg>!---->/a> a data-sveltekit-reload classbasis-1/6 after:hidden href/api/rss.xml titleLink to my RSS feed>svg viewBox0 0 24 24 fillnone classtransition ease-in-out hover:translate-y-1 hover:scale-110 duration-250 xmlnshttp://www.w3.org/2000/svg>path dM4 11C6.38695 11 8.67613 11.9482 10.364 13.636C12.0518 15.3239 13 17.6131 13 20M4 4C8.24346 4 12.3131 5.68571 15.3137 8.68629C18.3143 11.6869 20 15.7565 20 20M6 19C6 19.5523 5.55228 20 5 20C4.44772 20 4 19.5523 4 19C4 18.4477 4.44772 18 5 18C5.55228 18 6 18.4477 6 19Z stroke#af39ff stroke-width2 stroke-linecapround stroke-linejoinround>/path>/svg>!---->/a> a classbasis-1/6 after:hidden href/contact titleLink to my contact form>svg viewBox0 0 24 24 classduration-250 transition ease-in-out hover:translate-y-1 hover:scale-110 fill#af39ff xmlnshttp://www.w3.org/2000/svg>path fill-ruleevenodd clip-ruleevenodd dM3.75 5.25L3 6V18L3.75 18.75H20.25L21 18V6L20.25 5.25H3.75ZM4.5 7.6955V17.25H19.5V7.69525L11.9999 14.5136L4.5 7.6955ZM18.3099 6.75H5.68986L11.9999 12.4864L18.3099 6.75Z fill#af39ff>/path>/svg>!---->/a>/div>!---->/span> span classorder-1 md:order-2 md:basis-2/3>h1 classtext-3xl>Categories/h1> !---->ul>!---->li classmx-1 inline-block>a href/blog/category/ansible classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>ansible/a>/li>li classmx-1 inline-block>a href/blog/category/automation classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>automation/a>/li>li classmx-1 inline-block>a href/blog/category/css classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>css/a>/li>li classmx-1 inline-block>a href/blog/category/diy classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>diy/a>/li>li classmx-1 inline-block>a href/blog/category/docker classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>docker/a>/li>li classmx-1 inline-block>a href/blog/category/helth-app classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>helth-app/a>/li>li classmx-1 inline-block>a href/blog/category/homelab classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>homelab/a>/li>li classmx-1 inline-block>a href/blog/category/html5 classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>html5/a>/li>li classmx-1 inline-block>a href/blog/category/indexeddb classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>indexeddb/a>/li>li classmx-1 inline-block>a href/blog/category/indieweb classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>indieweb/a>/li>li classmx-1 inline-block>a href/blog/category/javascript classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>javascript/a>/li>li classmx-1 inline-block>a href/blog/category/jquery classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>jquery/a>/li>li classmx-1 inline-block>a href/blog/category/linux classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>linux/a>/li>li classmx-1 inline-block>a href/blog/category/liquid classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>liquid/a>/li>li classmx-1 inline-block>a href/blog/category/localfirst classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>localfirst/a>/li>li classmx-1 inline-block>a href/blog/category/mobile classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>mobile/a>/li>li classmx-1 inline-block>a href/blog/category/networking classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>networking/a>/li>li classmx-1 inline-block>a href/blog/category/nodejs classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>nodejs/a>/li>li classmx-1 inline-block>a href/blog/category/parallax classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>parallax/a>/li>li classmx-1 inline-block>a href/blog/category/php classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>php/a>/li>li classmx-1 inline-block>a href/blog/category/plugins classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>plugins/a>/li>li classmx-1 inline-block>a href/blog/category/programming classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>programming/a>/li>li classmx-1 inline-block>a href/blog/category/python classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>python/a>/li>li classmx-1 inline-block>a href/blog/category/security classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>security/a>/li>li classmx-1 inline-block>a href/blog/category/self-hosting classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>self-hosting/a>/li>li classmx-1 inline-block>a href/blog/category/server classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>server/a>/li>li classmx-1 inline-block>a href/blog/category/shopify classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>shopify/a>/li>li classmx-1 inline-block>a href/blog/category/smallweb classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>smallweb/a>/li>li classmx-1 inline-block>a href/blog/category/svelte classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>svelte/a>/li>li classmx-1 inline-block>a href/blog/category/sveltekit classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>sveltekit/a>/li>li classmx-1 inline-block>a href/blog/category/tailwindcss classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>tailwindcss/a>/li>li classmx-1 inline-block>a href/blog/category/themes classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>themes/a>/li>li classmx-1 inline-block>a href/blog/category/typescript classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>typescript/a>/li>li classmx-1 inline-block>a href/blog/category/webdev classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>webdev/a>/li>li classmx-1 inline-block>a href/blog/category/wordpress classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>wordpress/a>/li>li classmx-1 inline-block>a href/blog/category/yii2 classhover:text-var(--link-hover-color) inline-block px-3 text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full>yii2/a>/li>!---->/ul>!---->!---->/span>/div> div classmy-4 block w-auto text-center font-code text-3xl text-var(--link-hover-color) before:mb-2 before:mr-2 before:inline-block before:w-40% before:border before:border-solid before:border-var(--link-hover-color) before:text-var(--link-hover-color) after:mb-2 after:ml-2 after:inline-block after:w-40% after:border after:border-solid after:border-var(--link-hover-color) after:text-var(--link-hover-color)>///div>!----> h3 classtext-center>a classhover:text-var(--link-hover-color) block text-2xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://webmasterwebring.netlify.app>Webmaster Webring/a>/h3> div classflex flex-row justify-around>a classhover:text-var(--link-hover-color) block text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://webmasterwebring.netlify.app?closingtags-previous>← Previous/a> a classhover:text-var(--link-hover-color) block text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://webmasterwebring.netlify.app?closingtags-random>Random 🎲/a> a classhover:text-var(--link-hover-color) block text-xl text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://webmasterwebring.netlify.app?closingtags-next>Next →/a>/div>!----> div classmy-4 block w-auto text-center font-code text-3xl text-var(--link-hover-color) before:mb-2 before:mr-2 before:inline-block before:w-40% before:border before:border-solid before:border-var(--link-hover-color) before:text-var(--link-hover-color) after:mb-2 after:ml-2 after:inline-block after:w-40% after:border after:border-solid after:border-var(--link-hover-color) after:text-var(--link-hover-color)>///div>!----> ul classmx-auto grid w-full grid-cols-1 gap-2 md:grid-cols-3>!---->li classm-0 p-0>!--!-->a data-sveltekit-reload classhover:text-var(--link-hover-color) block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block href/about>About/a>!---->/li>li classm-0 p-0>!--!-->a data-sveltekit-reload classhover:text-var(--link-hover-color) block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block href/blog>Blog/a>!---->/li>li classm-0 p-0>!--!-->a data-sveltekit-reload classhover:text-var(--link-hover-color) block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block href/projects>Projects/a>!---->/li>li classm-0 p-0>!--!-->a data-sveltekit-reload classhover:text-var(--link-hover-color) block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block href/contact>Contact/a>!---->/li>li classm-0 p-0>!---->details classflex cursor-pointer flex-col gap-2 open:bg-var(--secondary-back-color) open:text-var(--link-color) open:no-underline>summary classhover:text-var(--link-hover-color) m-0 block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block>Support Me/summary> !---->a data-sveltekit-reload classhover:text-var(--link-hover-color) ml-1 mt-1 block pl-1 text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://closingtags.myspreadshop.com target_blank>Buy Merchandise ↗/a>a data-sveltekit-reload classhover:text-var(--link-hover-color) ml-1 mt-1 block pl-1 text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://buy.stripe.com/eVa3cHcbhd7X1cQfZ3 target_blank>Donate ↗/a>a data-sveltekit-reload classhover:text-var(--link-hover-color) ml-1 mt-1 block pl-1 text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://github.com/sponsors/Dilden target_blank>Sponsor ↗/a>!---->/details>!---->/li>li classm-0 p-0>!---->details classflex cursor-pointer flex-col gap-2 open:bg-var(--secondary-back-color) open:text-var(--link-color) open:no-underline>summary classhover:text-var(--link-hover-color) m-0 block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block>More.../summary> !---->a data-sveltekit-reload classhover:text-var(--link-hover-color) ml-1 mt-1 block pl-1 text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://helth.app target_blank>helth.app ↗/a>a data-sveltekit-reload classhover:text-var(--link-hover-color) ml-1 mt-1 block pl-1 text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block hrefhttps://sveltekitbook.dev target_blank>SvelteKit Book ↗/a>!---->/details>!---->/li>li classm-0 p-0>!--!-->a data-sveltekit-reload classhover:text-var(--link-hover-color) block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block href/sitemap.xml>Sitemap/a>!---->/li>li classm-0 p-0>!--!-->a data-sveltekit-reload classhover:text-var(--link-hover-color) block text-var(--link-color) duration-200 after:block after:h-1px after:w-0 after:bg-var(--link-hover-color) after:duration-200 after:content- hover:after:w-full md:inline-block href/api/rss.xml>RSS/a>!---->/li>!---->/ul> p classtext-md p-4 pt-7 text-center>©2025 Dylan Hildenbrand / Closingtags LLC br>v2.0.6/p>/footer>!---->/div>/div>!---->!----> !--!-->!---->!----> script typeapplication/json data-sveltekit-fetched data-url/api/posts.json>{status:200,statusText:,headers:{},body:{\metadata\:{\title\:\Home Is Where the WiFi Doesnt Suck\,\date\:\2025-11-13\,\status\:\published\,\excerpt\:\Having awesome internet is a privilege that is only appreciated when you suddenly dont have it. In this post, I document my adventures cosplaying as someone who knew what theyre doing while attempting to network my new house with an incredible internet experience.\,\categories\:\diy\,\homelab\,\networking\,\self-hosting\,\wordCount\:2045},\slug\:\home-networking\,\date\:\November 13, 2025\},{\metadata\:{\title\:\Going Indie\,\date\:\2025-06-06\,\status\:\published\,\excerpt\:\Webrings are great for connecting the IndieWeb, making it easy and fun to find new and interesting content.\,\categories\:\indieweb\,\smallweb\,\webdev\,\wordCount\:784},\slug\:\going-indie\,\date\:\June 6, 2025\},{\metadata\:{\title\:\Migrating Svelte Stores to Runes\,\excerpt\:\With the changes brought by Svelte 5, I found myself wanting to take advantage of performance improvements and harness the power of runes. But converting my stores to something rune-based proved more challenging than I had hoped since so much of my codebase relied on stores.\,\date\:\2025-03-28\,\status\:\published\,\categories\:\typescript\,\javascript\,\programming\,\svelte\,\sveltekit\,\indexeddb\,\localfirst\,\wordCount\:1536},\slug\:\svelte-stores-to-runes\,\date\:\March 28, 2025\},{\metadata\:{\title\:\Shopify Theme Development\,\date\:\2025-02-11\,\status\:\published\,\excerpt\:\I set out to learn how to build sites on Shopify. After becoming frustrated with starter theme, I decided to put together my own template. With this skeleton theme, Im be able to rapidly bootstrap a Shopify site without having to stumble around the cluttered mess found in Shopifys own starter.\,\categories\:\shopify\,\liquid\,\css\,\javascript\,\tailwindcss\,\wordCount\:1347},\slug\:\shopify-development\,\date\:\February 11, 2025\},{\metadata\:{\title\:\Deploying SvelteKit Apps with Ansible\,\date\:\2024-12-16\,\status\:\published\,\excerpt\:\After rebuilding closingtags.com with #SvelteKit, I needed a simple and consistent means of deploying it. Since I use #Ansible to automate other features of my #homelab, I figured it would work just as well for releasing new features to my personal website.\,\categories\:\svelte\,\sveltekit\,\javascript\,\typescript\,\nodejs\,\ansible\,\homelab\,\wordCount\:1812},\slug\:\deploying-closingtags\,\date\:\December 16, 2024\},{\metadata\:{\title\:\Introducing closingtags.com, version 2.0!\,\date\:\2024-11-25\,\updated\:\2025-01-21\,\status\:\published\,\excerpt\:\Migrating away from Wordpress and rebuilding closingtags.com from the ground up using Svelte 5 and SvelteKit\,\categories\:\svelte\,\sveltekit\,\wordpress\,\javascript\,\typescript\,\css\,\homelab\,\wordCount\:3725},\slug\:\v2\,\date\:\November 25, 2024\},{\metadata\:{\title\:\helth.app 0.3.0 📅\,\date\:\2024-07-16\,\status\:\published\,\categories\:\helth-app\,\javascript\,\programming\,\typescript\,\tags\:\helth-app\,\javascript\,\typescript\,\wordCount\:575},\slug\:\helth-app-0-3-0-📅\,\date\:\July 16, 2024\},{\metadata\:{\title\:\Ignoring JSDOM Errors in Vitest\,\date\:\2024-06-03\,\status\:\published\,\categories\:\javascript\,\programming\,\svelte\,\sveltekit\,\typescript\,\tags\:\css\,\javascript\,\tdd\,\wordCount\:1389},\slug\:\ignoring-jsdom-errors-in-vitest\,\date\:\June 3, 2024\},{\metadata\:{\title\:\helth.app 0.2.0 🥳\,\date\:\2024-05-07\,\status\:\published\,\categories\:\helth-app\,\javascript\,\svelte\,\sveltekit\,\tags\:\helth-app\,\javascript\,\svelte\,\sveltekit\,\wordCount\:371},\slug\:\helth-app-0-2-0-🥳\,\date\:\May 7, 2024\},{\metadata\:{\title\:\Mocking Svelte Stores in Vitest\,\date\:\2024-04-30\,\status\:\published\,\categories\:\javascript\,\programming\,\svelte\,\sveltekit\,\tags\:\javascript\,\svelte\,\sveltekit\,\wordCount\:979},\slug\:\mocking-svelte-stores-in-vitest\,\date\:\April 30, 2024\},{\metadata\:{\title\:\JS Party podcast\,\date\:\2024-03-01\,\status\:\published\,\categories\:\javascript\,\programming\,\svelte\,\sveltekit\,\tags\:\book\,\javascript\,\sveltekit\,\wordCount\:82},\slug\:\js-party-podcast\,\date\:\March 1, 2024\},{\metadata\:{\title\:\Custom \\\Click Outside\\\ Event with Svelte & TypeScript\,\date\:\2024-02-01\,\status\:\published\,\categories\:\css\,\html5\,\javascript\,\svelte\,\sveltekit\,\tags\:\css\,\svelte\,\sveltekit\,\typescript\,\wordCount\:1399},\slug\:\custom-click-outside-event-with-svelte-typescript\,\date\:\February 1, 2024\},{\metadata\:{\title\:\WordPress + Docker v2\,\date\:\2024-01-18\,\status\:\published\,\categories\:\docker\,\plugins\,\wordpress\,\tags\:\docker\,\docker-compose\,\plugins\,\wordpress\,\coverImage\:\/images/container.jpg\,\wordCount\:713},\slug\:\wordpress-docker-v2\,\date\:\January 18, 2024\},{\metadata\:{\title\:\2023 Recap\,\date\:\2023-12-22\,\status\:\published\,\categories\:\javascript\,\svelte\,\sveltekit\,\tags\:\2024\,\book\,\recap\,\svelte\,\sveltekit\,\writing\,\wordCount\:970},\slug\:\2023-recap\,\date\:\December 22, 2023\},{\metadata\:{\title\:\Remote Debugging Web Apps on iOS from Linux\,\date\:\2023-11-28\,\status\:\published\,\categories\:\html5\,\javascript\,\linux\,\php\,\programming\,\python\,\tags\:\apple\,\ios\,\linux\,\open-source\,\safari\,\wordCount\:1546},\slug\:\remote-debugging-web-apps-on-ios-from-linux\,\date\:\November 28, 2023\},{\metadata\:{\title\:\Accessibility for Lazy Developers\,\date\:\2023-10-30\,\status\:\published\,\categories\:\css\,\html5\,\javascript\,\programming\,\sveltekit\,\wordpress\,\wordCount\:971},\slug\:\accessibility-for-lazy-developers\,\date\:\October 30, 2023\},{\metadata\:{\title\:\Enabling Persistent Storage in IndexedDB\,\date\:\2023-09-23\,\status\:\published\,\categories\:\javascript\,\programming\,\svelte\,\sveltekit\,\tags\:\javascript\,\svelte\,\sveltekit\,\wordCount\:444},\slug\:\enabling-persistent-storage-in-indexeddb\,\date\:\September 23, 2023\},{\metadata\:{\title\:\I Wrote a (Technical) Book and So Can You\,\date\:\2023-08-01\,\status\:\published\,\categories\:\css\,\html5\,\javascript\,\svelte\,\sveltekit\,\tags\:\book\,\javascript\,\svelte\,\sveltekit\,\writing\,\wordCount\:1739},\slug\:\i-wrote-a-technical-book-and-so-can-you\,\date\:\August 1, 2023\},{\metadata\:{\title\:\SvelteKit Up and Running is available now!\,\date\:\2023-07-28\,\status\:\published\,\categories\:\css\,\javascript\,\svelte\,\sveltekit\,\tags\:\book\,\javascript\,\svelte\,\sveltekit\,\writing\,\coverImage\:\/images/mobile-cover.png\,\wordCount\:92},\slug\:\sveltekit-up-and-running-is-available-now\,\date\:\July 28, 2023\},{\metadata\:{\title\:\10 Days to Publication!\,\date\:\2023-07-18\,\status\:\published\,\categories\:\javascript\,\svelte\,\sveltekit\,\tags\:\book\,\javascript\,\svelte\,\sveltekit\,\coverImage\:\/images/mobile-cover.png\,\wordCount\:41},\slug\:\10-days-to-publication\,\date\:\July 18, 2023\},{\metadata\:{\title\:\Tailwind CSS + SvelteKit ❤️ && 💔\,\date\:\2023-07-06\,\status\:\published\,\categories\:\css\,\javascript\,\programming\,\svelte\,\sveltekit\,\tags\:\css\,\javascript\,\svelte\,\sveltekit\,\tailwindcss\,\coverImage\:\/images/MU-2.png\,\wordCount\:1195},\slug\:\tailwind-css-sveltekit-❤️-💔\,\date\:\July 6, 2023\},{\metadata\:{\title\:\Why I Quit Writing\,\date\:\2023-06-28\,\status\:\published\,\categories\:\javascript\,\programming\,\svelte\,\sveltekit\,\tags\:\javascript\,\svelte\,\sveltekit\,\wordCount\:375},\slug\:\why-i-quit-writing\,\date\:\June 28, 2023\},{\metadata\:{\title\:\Automating Manual Nextcloud Upgrades\,\date\:\2023-06-21\,\status\:\published\,\categories\:\automation\,\homelab\,\security\,\server\,\tags\:\ansible\,\automation\,\nextcloud\,\proxmox\,\wordCount\:1095},\slug\:\automating-manual-nextcloud-upgrades\,\date\:\June 21, 2023\},{\metadata\:{\title\:\Pruning Pestering Prompts from Pop!_OS\,\date\:\2023-04-06\,\status\:\published\,\categories\:\linux\,\tags\:\linux\,\pop_os\,\wordCount\:226},\slug\:\pruning-pestering-prompts-from-pop_os\,\date\:\April 6, 2023\},{\metadata\:{\title\:\AMD Annoyances\,\date\:\2023-03-31\,\status\:\published\,\categories\:\linux\,\tags\:\amd\,\linux\,\wordCount\:495},\slug\:\amd-annoyances\,\date\:\March 31, 2023\},{\metadata\:{\title\:\Recovering Corrupted .docx Files\,\date\:\2023-02-14\,\status\:\published\,\categories\:\programming\,\security\,\tags\:\libreoffice\,\microsoft-office\,\word\,\wordCount\:381},\slug\:\recovering-corrupted-docx-files\,\date\:\February 14, 2023\},{\metadata\:{\title\:\Prerendered Pains\,\date\:\2023-01-27\,\status\:\published\,\categories\:\css\,\sveltekit\,\tags\:\javascript\,\sveltekit\,\wordCount\:549},\slug\:\prerendered-pains\,\date\:\January 27, 2023\},{\metadata\:{\title\:\2022 Recap\,\date\:\2022-12-15\,\updated\:\2025-03-28\,\status\:\published\,\categories\:\javascript\,\programming\,\security\,\server\,\svelte\,\tags\:\2022\,\fullstack\,\recap\,\webdev\,\wordCount\:1429},\slug\:\2022-recap\,\date\:\December 15, 2022\},{\metadata\:{\title\:\Svelte Work:Rest Timer\,\date\:\2022-11-30\,\status\:\published\,\categories\:\css\,\html5\,\javascript\,\svelte\,\tags\:\javascript\,\svelte\,\sveltekit\,\timer\,\wordCount\:1535},\slug\:\svelte-workrest-timer\,\date\:\November 30, 2022\},{\metadata\:{\title\:\BUY! BUY! BUY!\,\date\:\2022-11-09\,\status\:\published\,\categories\:\automation\,\css\,\html5\,\javascript\,\linux\,\mobile\,\php\,\programming\,\security\,\server\,\svelte\,\wordpress\,\tags\:\49\,\business\,\consumerism\,\wordCount\:299},\slug\:\buy-buy-buy\,\date\:\November 9, 2022\},{\metadata\:{\title\:\Svelte stores in IndexedDB\,\date\:\2022-10-26\,\status\:\published\,\categories\:\javascript\,\programming\,\svelte\,\tags\:\javascript\,\svelte\,\wordCount\:1186},\slug\:\svelte-stores-in-indexeddb\,\date\:\October 26, 2022\},{\metadata\:{\title\:\Svelte stores in localStorage\,\date\:\2022-09-28\,\updated\:\2025-03-28\,\status\:\published\,\categories\:\javascript\,\svelte\,\tags\:\javascript\,\svelte\,\wordCount\:267},\slug\:\svelte-stores-in-localstorage\,\date\:\September 28, 2022\},{\metadata\:{\title\:\WordPress + Docker\,\date\:\2022-08-25\,\status\:\published\,\categories\:\plugins\,\programming\,\themes\,\wordpress\,\tags\:\docker\,\wordpress\,\wordCount\:609},\slug\:\wordpress-docker\,\date\:\August 25, 2022\},{\metadata\:{\title\:\helth app\,\date\:\2022-07-22\,\updated\:\2025-03-28\,\status\:\published\,\categories\:\javascript\,\svelte\,\tags\:\javascript\,\svelte\,\wordCount\:706},\slug\:\helth-app\,\date\:\July 22, 2022\},{\metadata\:{\title\:\Deploying Node.js Apps with Ansible\,\date\:\2022-06-16\,\status\:\published\,\categories\:\automation\,\javascript\,\server\,\tags\:\automation\,\javascript\,\proxmox\,\wordCount\:970},\slug\:\deploying-node-js-apps-with-ansible\,\date\:\June 16, 2022\},{\metadata\:{\title\:\Sniffing Dat App\,\date\:\2022-05-16\,\status\:\published\,\categories\:\security\,\tags\:\pentesting\,\proxy\,\wordCount\:1968},\slug\:\sniffing-dat-app\,\date\:\May 16, 2022\},{\metadata\:{\title\:\Global CSS in SvelteKit\,\date\:\2022-04-29\,\status\:\published\,\categories\:\css\,\javascript\,\programming\,\svelte\,\tags\:\css\,\js\,\svelte\,\coverImage\:\/images/404-not-found.png\,\wordCount\:592},\slug\:\global-css-in-sveltekit\,\date\:\April 29, 2022\},{\metadata\:{\title\:\Deobfuscating Node Debacles\,\date\:\2022-03-19\,\status\:\published\,\categories\:\javascript\,\programming\,\security\,\tags\:\javascript\,\node\,\security\,\wordCount\:1161},\slug\:\deobfuscating-node-debacles\,\date\:\March 19, 2022\},{\metadata\:{\title\:\Writing to Bind Mounts from Unprivileged LXC Containers\,\date\:\2022-03-08\,\updated\:\2025-04-30\,\status\:\published\,\categories\:\automation\,\linux\,\security\,\server\,\tags\:\bind-mount\,\lxc\,\proxmox\,\wordCount\:810},\slug\:\writing-to-bind-mounts-from-unprivileged-lxc-containers\,\date\:\March 8, 2022\},{\metadata\:{\title\:\Simple API Scraper with node-fetch\,\date\:\2022-02-24\,\status\:\published\,\categories\:\javascript\,\programming\,\wordCount\:566},\slug\:\simple-api-scraper-with-node-fetch\,\date\:\February 24, 2022\},{\metadata\:{\title\:\Node + MongoDB development environment w/Docker Compose\,\date\:\2022-01-24\,\status\:\published\,\categories\:\automation\,\javascript\,\server\,\tags\:\automation\,\docker\,\docker-compose\,\javascript\,\wordCount\:711},\slug\:\node-mongodb-development-environment-w-docker-compose\,\date\:\January 24, 2022\},{\metadata\:{\title\:\The Hacker Hotkey\,\date\:\2021-05-01\,\status\:\published\,\categories\:\linux\,\programming\,\wordCount\:623},\slug\:\the-hacker-hotkey\,\date\:\May 1, 2021\},{\metadata\:{\title\:\.dotfiles\,\date\:\2021-03-29\,\status\:\published\,\categories\:\linux\,\programming\,\coverImage\:\/images/image-1024x565.png\,\wordCount\:1796},\slug\:\dotfiles\,\date\:\March 29, 2021\},{\metadata\:{\title\:\Backup containers w/Ansible\,\date\:\2021-02-23\,\status\:\published\,\categories\:\linux\,\server\,\wordCount\:231},\slug\:\backup-containers-w-ansible\,\date\:\February 23, 2021\},{\metadata\:{\title\:\Generate thumbnails for PDFs\,\date\:\2021-01-01\,\status\:\published\,\categories\:\php\,\programming\,\wordCount\:293},\slug\:\generate-thumbnails-for-pdf-uploads\,\date\:\January 1, 2020\},{\metadata\:{\title\:\A Brief Introduction to the Lemur Pro by System76\,\date\:\2020-05-07\,\status\:\published\,\categories\:\linux\,\wordCount\:1167},\slug\:\a-brief-introduction-to-the-lemur-pro-by-system76\,\date\:\May 7, 2020\},{\metadata\:{\title\:\Bulk Image Compression via CLI\,\date\:\2019-11-19\,\status\:\published\,\categories\:\linux\,\programming\,\wordCount\:237},\slug\:\bulk-image-compression-via-cli\,\date\:\November 19, 2019\},{\metadata\:{\title\:\Starting Systemd Services with Vagrant machines\,\date\:\2019-09-04\,\status\:\published\,\categories\:\linux\,\server\,\yii2\,\wordCount\:269},\slug\:\starting-systemd-services-with-vagrant-machines\,\date\:\September 4, 2019\},{\metadata\:{\title\:\Automating Proxmox LXC Container Creation, Updates, and more with Ansible\,\date\:\2019-07-03\,\status\:\published\,\categories\:\linux\,\server\,\wordCount\:308},\slug\:\automating-proxmox-lxc-container-creation-updates-and-more-with-ansible\,\date\:\July 3, 2019\},{\metadata\:{\title\:\Kernelcon - An Epic Gathering of Hackers\,\date\:\2019-04-09\,\status\:\published\,\categories\:\security\,\wordCount\:1317},\slug\:\kernelcon-an-epic-gathering-of-hackers\,\date\:\April 9, 2019\},{\metadata\:{\title\:\I Gave a Talk\,\date\:\2019-02-10\,\status\:\published\,\categories\:\php\,\programming\,\security\,\wordpress\,\wordCount\:117},\slug\:\i-gave-a-talk\,\date\:\February 10, 2019\},{\metadata\:{\title\:\DDNS with Cloudflare API\,\date\:\2019-01-22\,\status\:\published\,\categories\:\server\,\wordCount\:330},\slug\:\ddns-with-cloudflare-api\,\date\:\January 22, 2019\},{\metadata\:{\title\:\WordCamp Omaha 2018 Great Success\,\date\:\2018-08-31\,\status\:\published\,\categories\:\wordpress\,\wordCount\:375},\slug\:\wordcamp-omaha-2018-great-success\,\date\:\August 31, 2018\},{\metadata\:{\title\:\Converting Privileged LXC Containers to Unprivileged\,\date\:\2018-05-25\,\status\:\published\,\categories\:\linux\,\security\,\server\,\wordCount\:371},\slug\:\converting-privileged-lxc-containers-to-unprivileged\,\date\:\May 25, 2018\},{\metadata\:{\title\:\Javascript Factorial Function w/Recursion\,\date\:\2018-05-01\,\status\:\published\,\categories\:\javascript\,\programming\,\wordCount\:262},\slug\:\javascript-factorial-function-w-recursion\,\date\:\May 1, 2018\},{\metadata\:{\title\:\Storj-CLI Update + Shortcuts\,\date\:\2018-02-11\,\status\:\published\,\categories\:\linux\,\security\,\server\,\wordCount\:221},\slug\:\storj-cli-update-shortcuts\,\date\:\February 11, 2018\},{\metadata\:{\title\:\WordPress Backup Bash Script\,\date\:\2018-01-05\,\status\:\published\,\categories\:\linux\,\security\,\server\,\wordpress\,\wordCount\:272},\slug\:\wordpress-backup-bash-script\,\date\:\January 5, 2018\},{\metadata\:{\title\:\Deployments w/Deployer\,\date\:\2017-10-09\,\status\:\published\,\categories\:\linux\,\php\,\server\,\wordCount\:747},\slug\:\deployments-wdeployer\,\date\:\October 9, 2017\},{\metadata\:{\title\:\Custom LXC Container Templates in Proxmox 5.0\,\date\:\2017-10-06\,\status\:\published\,\categories\:\linux\,\server\,\wordCount\:363},\slug\:\custom-lxc-container-templates-in-proxmox-5-0\,\date\:\October 6, 2017\},{\metadata\:{\title\:\Im back!\,\date\:\2017-09-29\,\status\:\published\,\categories\:\php\,\security\,\wordCount\:28},\slug\:\im-back\,\date\:\September 29, 2017\},{\metadata\:{\title\:\Restricting Dates of jQuery UI Datepicker with custom WordPress plugin\,\date\:\2016-11-21\,\status\:\published\,\categories\:\jquery\,\php\,\plugins\,\wordpress\,\wordCount\:807},\slug\:\restricting-dates-of-jquery-ui-datepicker-with-custom-wordpress-plugin\,\date\:\November 21, 2016\},{\metadata\:{\title\:\Text to Speech in Python\,\date\:\2016-07-05\,\status\:\published\,\categories\:\linux\,\python\,\wordCount\:204},\slug\:\text-to-speech-in-python\,\date\:\July 5, 2016\},{\metadata\:{\title\:\Deployments w/Git\,\date\:\2016-03-21\,\status\:\published\,\categories\:\plugins\,\themes\,\wordpress\,\wordCount\:428},\slug\:\deployments-with-git\,\date\:\March 21, 2016\},{\metadata\:{\title\:\Deployments w/Capistrano\,\date\:\2015-12-16\,\status\:\published\,\categories\:\php\,\security\,\wordpress\,\yii2\,\wordCount\:785},\slug\:\deployment-wcapistrano\,\date\:\December 16, 2015\},{\metadata\:{\title\:\Yii2 Feedback Widget\,\date\:\2015-11-30\,\status\:\published\,\categories\:\php\,\yii2\,\wordCount\:126},\slug\:\yii2-feedback-widget\,\date\:\November 30, 2015\},{\metadata\:{\title\:\Status Update + wp-class.php backdoor\,\date\:\2015-09-15\,\status\:\published\,\categories\:\php\,\security\,\wordpress\,\wordCount\:406},\slug\:\status-update-wp-class-php-backdoor\,\date\:\September 15, 2015\},{\metadata\:{\title\:\VVV\,\date\:\2015-05-28\,\status\:\published\,\categories\:\plugins\,\themes\,\wordpress\,\wordCount\:116},\slug\:\vvv\,\date\:\May 28, 2015\},{\metadata\:{\title\:\You (and I) should be contributing to WordPress\,\date\:\2015-05-08\,\status\:\published\,\categories\:\wordpress\,\wordCount\:543},\slug\:\you-and-i-should-be-contributing-to-wordpress\,\date\:\May 8, 2015\},{\metadata\:{\title\:\Writing (More) Secure Plugins\,\date\:\2015-04-28\,\status\:\published\,\categories\:\php\,\plugins\,\wordpress\,\wordCount\:1045},\slug\:\writing-more-secure-plugins\,\date\:\April 28, 2015\},{\metadata\:{\title\:\WordCamp Minneapolis\,\date\:\2015-04-24\,\status\:\published\,\categories\:\wordpress\,\wordCount\:87},\slug\:\wordcamp-minneapolis\,\date\:\April 24, 2015\},{\metadata\:{\title\:\Obscure PHP code in WordPress files\,\date\:\2015-04-07\,\status\:\published\,\categories\:\php\,\wordpress\,\wordCount\:344},\slug\:\obscure-php-code-in-wordpress-files\,\date\:\April 7, 2015\},{\metadata\:{\title\:\Checking WordPress with WPScan\,\date\:\2015-04-02\,\status\:\published\,\categories\:\plugins\,\themes\,\wordpress\,\wordCount\:272},\slug\:\checking-wordpress-with-wpscan\,\date\:\April 2, 2015\},{\metadata\:{\title\:\Edit Hopper Update, Now Supports Custom Post Types\,\date\:\2015-03-31\,\status\:\published\,\categories\:\php\,\plugins\,\wordpress\,\wordCount\:75},\slug\:\edit-hopper-update-now-supports-custom-post-types\,\date\:\March 31, 2015\},{\metadata\:{\title\:\Edit Hopper plugin v1\,\date\:\2015-03-18\,\status\:\published\,\categories\:\php\,\plugins\,\wordpress\,\wordCount\:198},\slug\:\edit-hopper-plugin-v1\,\date\:\March 18, 2015\},{\metadata\:{\title\:\SSL with VagrantPress\,\date\:\2015-03-16\,\status\:\published\,\categories\:\php\,\plugins\,\themes\,\wordpress\,\wordCount\:352},\slug\:\ssl-with-vagrantpress\,\date\:\March 16, 2015\},{\metadata\:{\title\:\CSS Hamburger Menu\,\date\:\2015-02-23\,\status\:\published\,\categories\:\css\,\jquery\,\wordpress\,\wordCount\:300},\slug\:\css-hamburger-menu\,\date\:\February 23, 2015\},{\metadata\:{\title\:\Developing with Vagrant\,\date\:\2015-01-23\,\status\:\published\,\categories\:\css\,\html5\,\jquery\,\mobile\,\php\,\wordpress\,\wordCount\:61},\slug\:\developing-with-vagrant\,\date\:\January 23, 2015\},{\metadata\:{\title\:\DemocracyOS\,\date\:\2014-12-02\,\status\:\published\,\categories\:\css\,\html5\,\jquery\,\php\,\wordpress\,\wordCount\:197},\slug\:\democracyos\,\date\:\December 2, 2014\},{\metadata\:{\title\:\The Perfect Browser Home Page\,\date\:\2014-11-13\,\status\:\published\,\categories\:\css\,\jquery\,\wordCount\:175},\slug\:\the-perfect-browser-home-page\,\date\:\November 13, 2014\},{\metadata\:{\title\:\Day of the Year\,\date\:\2014-10-27\,\status\:\published\,\categories\:\php\,\wordCount\:86},\slug\:\day-of-the-year\,\date\:\October 27, 2014\},{\metadata\:{\title\:\Simple PHP User Input Sort\,\date\:\2014-10-24\,\status\:\published\,\categories\:\php\,\wordCount\:256},\slug\:\simple-php-user-input-sort\,\date\:\October 24, 2014\},{\metadata\:{\title\:\HTML Games\,\date\:\2014-10-23\,\status\:\published\,\categories\:\html5\,\jquery\,\wordCount\:44},\slug\:\html-games\,\date\:\October 23, 2014\},{\metadata\:{\title\:\Random Password Generator\,\date\:\2014-10-23\,\status\:\published\,\categories\:\php\,\wordCount\:209},\slug\:\random-password-generator\,\date\:\October 23, 2014\},{\metadata\:{\title\:\Custom WordPress Admin Login Logo\,\date\:\2014-09-10\,\status\:\published\,\categories\:\css\,\themes\,\wordpress\,\wordCount\:71},\slug\:\custom-login-logo\,\date\:\September 10, 2014\},{\metadata\:{\title\:\Shortcodes for Custom Column Sizes\,\date\:\2014-09-08\,\status\:\published\,\categories\:\css\,\themes\,\wordpress\,\wordCount\:929},\slug\:\shortcodes-for-custom-column-sizes\,\date\:\September 8, 2014\},{\metadata\:{\title\:\Disabling Comments In WordPress\,\date\:\2014-08-18\,\status\:\published\,\categories\:\themes\,\wordpress\,\wordCount\:240},\slug\:\disabling-comments-in-wordpress\,\date\:\August 18, 2014\},{\metadata\:{\title\:\Custom Admin Toolbar in WordPress\,\date\:\2014-07-31\,\status\:\published\,\categories\:\plugins\,\themes\,\wordpress\,\wordCount\:233},\slug\:\custom-admin-toolbar-in-wordpress\,\date\:\July 31, 2014\},{\metadata\:{\title\:\Code School\,\date\:\2014-07-15\,\status\:\published\,\categories\:\jquery\,\wordCount\:81},\slug\:\code-school-2\,\date\:\July 15, 2014\},{\metadata\:{\title\:\Styling Scrollbars w/CSS\,\date\:\2014-05-08\,\status\:\published\,\categories\:\css\,\wordCount\:197},\slug\:\styling-scrollbars\,\date\:\May 8, 2014\},{\metadata\:{\title\:\Getting SASS to work with Sublime Text 2\,\date\:\2014-04-23\,\status\:\published\,\categories\:\css\,\wordCount\:168},\slug\:\getting-sass-to-work-with-sublime-text-2\,\date\:\April 23, 2014\},{\metadata\:{\title\:\Setting up SASS\,\date\:\2014-04-21\,\status\:\published\,\categories\:\css\,\wordCount\:87},\slug\:\setting-up-sass\,\date\:\April 21, 2014\},{\metadata\:{\title\:\jQuery code to set 2 elements to same height\,\date\:\2014-03-27\,\status\:\published\,\categories\:\css\,\jquery\,\wordCount\:86},\slug\:\jquery-code-to-set-2-elements-to-same-height\,\date\:\March 27, 2014\},{\metadata\:{\title\:\What is WordPress?\,\date\:\2014-03-17\,\status\:\published\,\categories\:\plugins\,\themes\,\wordpress\,\wordCount\:769},\slug\:\what-is-wordpress\,\date\:\March 17, 2014\},{\metadata\:{\title\:\HTML and CSS artwork\,\date\:\2014-02-09\,\status\:\published\,\categories\:\css\,\jquery\,\wordCount\:26},\slug\:\html-and-css-artwork\,\date\:\February 9, 2014\},{\metadata\:{\title\:\Scrolling Shadows\,\date\:\2013-12-09\,\status\:\published\,\categories\:\jquery\,\parallax\,\wordCount\:154},\slug\:\scrolling-shadows\,\date\:\December 9, 2013\},{\metadata\:{\title\:\Live shadow effects on an element\,\date\:\2013-12-05\,\status\:\published\,\categories\:\jquery\,\tags\:\jquery\,\moving-shadow\,\parallax-2\,\wordCount\:108},\slug\:\live-shadow-effects-on-an-element\,\date\:\December 5, 2013\},{\metadata\:{\title\:\Edit Hopper\,\date\:\2013-11-29\,\status\:\published\,\categories\:\plugins\,\wordpress\,\wordCount\:192},\slug\:\edit-hopper\,\date\:\November 29, 2013\}}/script> script> { __sveltekit_coawph { base: new URL(., location).pathname.slice(0, -1) }; const element document.currentScript.parentElement; Promise.all( import(./_app/immutable/entry/start.BUvikaeE.js), import(./_app/immutable/entry/app.D2gHHqmZ.js) ).then((kit, app) > { kit.start(app, element, { node_ids: 0, 2, data: null,{type:data,data:{posts:{metadata:{title:Home Is Where the WiFi Doesnt Suck,date:2025-11-13,status:published,excerpt:Having awesome internet is a privilege that is only appreciated when you suddenly dont have it. In this post, I document my adventures cosplaying as someone who knew what theyre doing while attempting to network my new house with an incredible internet experience.,categories:diy,homelab,networking,self-hosting,wordCount:2045},slug:home-networking,date:November 13, 2025},{metadata:{title:Going Indie,date:2025-06-06,status:published,excerpt:Webrings are great for connecting the IndieWeb, making it easy and fun to find new and interesting content.,categories:indieweb,smallweb,webdev,wordCount:784},slug:going-indie,date:June 6, 2025},{metadata:{title:Migrating Svelte Stores to Runes,excerpt:With the changes brought by Svelte 5, I found myself wanting to take advantage of performance improvements and harness the power of runes. But converting my stores to something rune-based proved more challenging than I had hoped since so much of my codebase relied on stores.,date:2025-03-28,status:published,categories:typescript,javascript,programming,svelte,sveltekit,indexeddb,localfirst,wordCount:1536},slug:svelte-stores-to-runes,date:March 28, 2025},{metadata:{title:Shopify Theme Development,date:2025-02-11,status:published,excerpt:I set out to learn how to build sites on Shopify. After becoming frustrated with starter theme, I decided to put together my own template. With this skeleton theme, Im be able to rapidly bootstrap a Shopify site without having to stumble around the cluttered mess found in Shopifys own starter.,categories:shopify,liquid,css,javascript,tailwindcss,wordCount:1347},slug:shopify-development,date:February 11, 2025},{metadata:{title:Deploying SvelteKit Apps with Ansible,date:2024-12-16,status:published,excerpt:After rebuilding closingtags.com with #SvelteKit, I needed a simple and consistent means of deploying it. Since I use #Ansible to automate other features of my #homelab, I figured it would work just as well for releasing new features to my personal website.,categories:svelte,sveltekit,javascript,typescript,nodejs,ansible,homelab,wordCount:1812},slug:deploying-closingtags,date:December 16, 2024},{metadata:{title:Introducing closingtags.com, version 2.0!,date:2024-11-25,updated:2025-01-21,status:published,excerpt:Migrating away from Wordpress and rebuilding closingtags.com from the ground up using Svelte 5 and SvelteKit,categories:svelte,sveltekit,wordpress,javascript,typescript,css,homelab,wordCount:3725},slug:v2,date:November 25, 2024},{metadata:{title:helth.app 0.3.0 📅,date:2024-07-16,status:published,categories:helth-app,javascript,programming,typescript,tags:helth-app,javascript,typescript,wordCount:575},slug:helth-app-0-3-0-📅,date:July 16, 2024},{metadata:{title:Ignoring JSDOM Errors in Vitest,date:2024-06-03,status:published,categories:javascript,programming,svelte,sveltekit,typescript,tags:css,javascript,tdd,wordCount:1389},slug:ignoring-jsdom-errors-in-vitest,date:June 3, 2024},{metadata:{title:helth.app 0.2.0 🥳,date:2024-05-07,status:published,categories:helth-app,javascript,svelte,sveltekit,tags:helth-app,javascript,svelte,sveltekit,wordCount:371},slug:helth-app-0-2-0-🥳,date:May 7, 2024},{metadata:{title:Mocking Svelte Stores in Vitest,date:2024-04-30,status:published,categories:javascript,programming,svelte,sveltekit,tags:javascript,svelte,sveltekit,wordCount:979},slug:mocking-svelte-stores-in-vitest,date:April 30, 2024},total:97},uses:{}}, form: null, error: null }); }); } /script> /div>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]