[{"data":1,"prerenderedAt":150},["ShallowReactive",2],{"i-heroicons:moon-20-solid":3,"i-simple-icons:bluesky":8,"i-simple-icons:github":11,"i-simple-icons:x":13,"i-simple-icons:linkedin":15,"i-heroicons:chevron-right-20-solid":18,"i-heroicons:bars-3-center-left-20-solid":20,"\u002Fprojects\u002Fencryptedlist":22,"i-heroicons:arrow-up-right-20-solid":148},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,20,false,"\u003Cpath fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M7.455 2.004a.75.75 0 0 1 .26.77a7 7 0 0 0 9.958 7.967a.75.75 0 0 1 1.067.853A8.5 8.5 0 1 1 6.647 1.921a.75.75 0 0 1 .808.083\" clip-rule=\"evenodd\"\u002F>",{"left":4,"top":4,"width":9,"height":9,"rotate":4,"vFlip":6,"hFlip":6,"body":10},24,"\u003Cpath fill=\"currentColor\" d=\"M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037c-.856 3.061-3.978 3.842-6.755 3.37c4.854.826 6.089 3.562 3.422 6.299c-5.065 5.196-7.28-1.304-7.847-2.97c-.104-.305-.152-.448-.153-.327c0-.121-.05.022-.153.327c-.568 1.666-2.782 8.166-7.847 2.97c-2.667-2.737-1.432-5.473 3.422-6.3c-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026\"\u002F>",{"left":4,"top":4,"width":9,"height":9,"rotate":4,"vFlip":6,"hFlip":6,"body":12},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":4,"width":9,"height":9,"rotate":4,"vFlip":6,"hFlip":6,"body":14},"\u003Cpath fill=\"currentColor\" d=\"M14.234 10.162L22.977 0h-2.072l-7.591 8.824L7.251 0H.258l9.168 13.343L.258 24H2.33l8.016-9.318L16.749 24h6.993zm-2.837 3.299l-.929-1.329L3.076 1.56h3.182l5.965 8.532l.929 1.329l7.754 11.09h-3.182z\"\u002F>",{"left":4,"top":4,"width":9,"height":9,"rotate":4,"vFlip":6,"hFlip":6,"body":16,"hidden":17},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cpath fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M8.22 5.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L11.94 10L8.22 6.28a.75.75 0 0 1 0-1.06\" clip-rule=\"evenodd\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cpath fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M2 4.75A.75.75 0 0 1 2.75 4h14.5a.75.75 0 0 1 0 1.5H2.75A.75.75 0 0 1 2 4.75m0 10.5a.75.75 0 0 1 .75-.75h14.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75M2 10a.75.75 0 0 1 .75-.75h7.5a.75.75 0 0 1 0 1.5h-7.5A.75.75 0 0 1 2 10\" clip-rule=\"evenodd\"\u002F>",{"id":23,"title":24,"body":25,"description":135,"extension":136,"icon":137,"live_url":138,"meta":139,"navigation":17,"path":143,"seo":144,"source_url":145,"stem":146,"__hash__":147},"projects\u002Fprojects\u002F1.EncryptedList.md","EncryptedList",{"type":26,"value":27,"toc":126},"minimark",[28,33,37,41,44,48,59,67,73,81,85],[29,30,32],"h2",{"id":31},"what-is-encryptedlist","What is EncryptedList?",[34,35,36],"p",{},"EncryptedList is a passion project I built to catalog software tools that are secure by default. It was my first major Vue project.",[29,38,40],{"id":39},"why-did-you-build-it","Why Did You Build It?",[34,42,43],{},"I'm interested in tools that are private and secure by design, so I wanted to build a full-stack website to catalog software services that are secure by default where people can discover and share tools that enhance their digital privacy.",[29,45,47],{"id":46},"how-did-you-build-it","How Did You Build It?",[34,49,50,51,58],{},"Everything about ",[52,53,57],"a",{"href":54,"rel":55},"https:\u002F\u002Fgithub.com\u002Foneminch\u002Fencrypted-list\u002Ftree\u002Fv1\u002F",[56],"nofollow","EncryptedList 1.0"," was static. I created a simple HTML & CSS page with a couple of dropdowns for filtering items. I used a flat JSON file to store the data and vanilla JavaScript to fetch the contents of this file to render them on the page. Managing data in a static JSON file was tedious, and this led to the development of the second version.",[34,60,61,66],{},[52,62,65],{"href":63,"rel":64},"https:\u002F\u002Fgithub.com\u002Foneminch\u002Fencrypted-list\u002Ftree\u002Fv2\u002F",[56],"EncryptedList 2.0"," was an SPA that uses Vue.js for the UI and Airtable for data. I created serverless functions on Vercel to connect the UI with the Airtable database. To make the web app complete, I implemented client-side search and filtering along with a submission page for new tools powered by GitHub Issues.",[68,69,70],"blockquote",{},[34,71,72],{},"Due to most logic being done on the client-side, this version of the project had some performance issues.",[34,74,75,80],{},[52,76,79],{"href":77,"rel":78},"https:\u002F\u002Fencryptedlist.xyz\u002F",[56],"EncryptedList 3.0"," is the current version of the project built from scratch using Next.js, and follows modern best practices. It brings performance improvements, and has new features that improve the user experience such as pagination, optimized search and sorting, and features suggested by users such as multi-tag filtering.",[29,82,84],{"id":83},"what-tools-did-you-use","What Tools Did You Use?",[86,87,88,107,118],"ul",{},[89,90,91,95,96,100,101,100,104],"li",{},[92,93,94],"strong",{},"Frontend",": ",[97,98,99],"code",{},"Next.js",", ",[97,102,103],{},"Tailwind CSS",[97,105,106],{},"TypeScript",[89,108,109,95,112,100,115],{},[92,110,111],{},"Backend",[97,113,114],{},"SQLite (Turso)",[97,116,117],{},"Resend",[89,119,120,95,123],{},[92,121,122],{},"Deployment",[97,124,125],{},"Vercel",{"title":127,"searchDepth":128,"depth":129,"links":130},"",2,1,[131,132,133,134],{"id":31,"depth":128,"text":32},{"id":39,"depth":128,"text":40},{"id":46,"depth":128,"text":47},{"id":83,"depth":128,"text":84},"A passion project I built to catalog software tools that are secure by design","md","\u002Fcontent\u002Fprojects\u002Fencryptedlist-logo.svg","https:\u002F\u002Fencryptedlist.xyz",{"tags":140,"image":142},[99,103,141,106],"SQLite","\u002Fcontent\u002Fprojects\u002Fencryptedlist.v3.png","\u002Fprojects\u002Fencryptedlist",{"title":24,"description":135},"https:\u002F\u002Fgithub.com\u002Foneminch\u002Fencrypted-list","projects\u002F1.EncryptedList","XC_FXvHB9zAnVcUNhVx0oKSgR4ossxLcF_LC7ljDXlc",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":149},"\u003Cpath fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M5.22 14.78a.75.75 0 0 0 1.06 0l7.22-7.22v5.69a.75.75 0 0 0 1.5 0v-7.5a.75.75 0 0 0-.75-.75h-7.5a.75.75 0 0 0 0 1.5h5.69l-7.22 7.22a.75.75 0 0 0 0 1.06\" clip-rule=\"evenodd\"\u002F>",1789149638898]