1Feed

1Feed is your quiet place on the internet, where you can focus on the people and content you care about.

Did super satisfying refactoring of backend code into objects for each source type!

Released v0.1.7 🎉

New features: https://twitter.com/booligoosh/status/1302860614994481152

Pushed Version 0.1.6 — Important bug fixes for entity detection and feed fetching

Fixed bug which caused all tags to be concatenated</span> </h2> <div class="mt-4 text-zinc-400"> PSA TO DEVS OUT THERE WHO USE CHEERIO: .text() returns the text within ALL of the matching elements, concatenated! I didn't realise this before. You can fix it by changing it to .first().text() </div> <div class="mt-6 -mb-4 -mx-4 border-t rounded-b-lg bg-zinc-900 border-zinc-700"> <div class="my-2 px-4 flex items-center gap-3"> <a href="/sign-up" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-5 h-5 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span>1 Like</span></a> <a href="/tasks/8c2bc41a-d8ce-4ff3-abb6-a5297118f79e" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-circle" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501C16.608 19.942 11.659 20.922 7.7 19L3 20"/></svg> <span>2 Comments</span></a> </div> <a id="comment-3e7e6ecf-7fda-4330-bcee-39a044bbfd5e"></a> <div class="border-t border-zinc-700 p-4 flex space-x-3 group" x-cloak x-show="comment"> <img class="rounded-full w-9 h-9" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> <div class=""> <div class="w-fit mb-2 flex flex-col"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs px-1 py-0.5 bg-zinc-950/70 rounded-md text-primary-600">Author</span> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <time class="text-xs text-zinc-500" datetime=2020-09-06T10:14:39.252+00:00 x-text="DateTime.fromISO('2020-09-06T10:14:39.252+00:00').toRelative()"> September 6, 2020 at 10:14 AM </time> </div> <div class="text-zinc-300"> <p>😂😂😂</p> </div> <a href="/sign-up" class="flex mt-4 items-center space-x-1 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-4 h-4 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span class="text-xs">0 Likes</span> </a> </div> </div> <a id="comment-5480c901-4db5-4c30-ab7a-d72358561836"></a> <div class="border-t border-zinc-700 p-4 flex space-x-3 group" x-cloak x-show="comment"> <img class="rounded-full w-9 h-9" src="https://makerlog-cdn.nyc3.digitaloceanspaces.com/avatars/clsf3npl603vo1xsb81bvf0vu.jpg" /> <div class=""> <div class="w-fit mb-2 flex flex-col"> <div class="flex items-center space-x-1"> <a href="/sergio" class="font-medium text-zinc-400 hover:text-primary-600"> Sergio Mattei </a> <span class="text-xs hidden group-hover:inline-block">@sergio</span> </div> <time class="text-xs text-zinc-500" datetime=2020-09-05T22:47:52.860+00:00 x-text="DateTime.fromISO('2020-09-05T22:47:52.860+00:00').toRelative()"> September 5, 2020 at 10:47 PM </time> </div> <div class="text-zinc-300"> <p>I use Cheerios in the morning.</p> </div> <a href="/sign-up" class="flex mt-4 items-center space-x-1 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-4 h-4 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span class="text-xs">0 Likes</span> </a> </div> </div> </div> </div> <div id="task-4a3f01b1-8ab3-4dbc-b16a-ac01c8a458a4" x-data="{ comment: false }" hx-disinherit="hx-select hx-get hx-target" class="w-full bg-zinc-900 border border-t-4 rounded-lg border-zinc-700 border-t-primary-600 py-4 px-4 mb-6 shadow-md max-w-[24.6rem] sm:max-w-none"> <div class="flex justify-between group"> <div class="flex flex-1 space-x-3"> <div class="relative"> <img class="w-9 h-9 rounded-full" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> </div> <div class="w-fit"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <div class="flex space-x-1 text-xs text-zinc-400"> <a href="/tasks/4a3f01b1-8ab3-4dbc-b16a-ac01c8a458a4" class="text-zinc-500 hover:underline"> <time datetime=2020-09-05T22:20:08.292+00:00 x-text="DateTime.fromISO('2020-09-05T22:20:08.292+00:00').toRelative()"> September 5, 2020 at 10:20 PM </time> </a> </div> </div> </div> <div class="relative" x-data="{ open: false }" x-on:click.away="open = false"> <button type="button" class="text-zinc-500 hover:text-zinc-400" x-on:click="open = !open"> <svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="dots-vertical" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0-14a1 1 0 1 0 2 0a1 1 0 1 0-2 0"/></svg> </button> <div x-cloak x-show="open" x-transition:enter="ease-out duration-200" x-transition:enter-start="-translate-y-2" x-transition:enter-end="translate-y-0" class="absolute z-50 w-auto mt-12 top-0 right-0" > <div class="p-2 bg-zinc-900 border rounded-md shadow-md drop-shadow-md border-zinc-700 text-zinc-500 -mt-5"> <ul class="w-80 text-sm space-y-2"> <li class="text-zinc-400"> <a href="#" class="flex items-start gap-2 py-1.5 px-2 rounded-md bg-transparent hover:bg-black hover:text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-report" class="w-6 h-6 flex-shrink-0"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 21V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H8l-4 4m8-13v3m0 3v.01"/></svg> <span class="flex flex-col"> <span class="mb-0.5">Report Task</span> <span class="text-xs text-zinc-500">We won't let Ethan know who reported this.</span> </span> </a> </li> </ul> </div> </div> </div> </div> <h2 class="my-4 text-base text-zinc-100 flex space-x-1.5 items-center"> <span class="text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="circle-check-filled" class="w-6 h-6"><g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M0 0h24v24H0z"/><path fill="currentColor" d="M17 3.34a10 10 0 1 1-14.995 8.984L2 12l.005-.324A10 10 0 0 1 17 3.34zm-1.293 5.953a1 1 0 0 0-1.32-.083l-.094.083L11 12.585l-1.293-1.292l-.094-.083a1 1 0 0 0-1.403 1.403l.083.094l2 2l.094.083a1 1 0 0 0 1.226 0l.094-.083l4-4l.083-.094a1 1 0 0 0-.083-1.32z"/></g></svg> </span> <span>Cache avatars on Vercel for 1 day before serving stale & revalidating (changed from 1 month)</span> </h2> <div class="mt-4 text-zinc-400"> It won't put too much suspicious load on the sites it's fetching from, and it won't affect performance since it's revalidated in the background. </div> <div class="mt-6 -mb-4 -mx-4 border-t rounded-b-lg bg-zinc-900 border-zinc-700"> <div class="my-2 px-4 flex items-center gap-3"> <a href="/sign-up" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-5 h-5 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span>1 Like</span></a> <a href="/tasks/4a3f01b1-8ab3-4dbc-b16a-ac01c8a458a4" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-circle" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501C16.608 19.942 11.659 20.922 7.7 19L3 20"/></svg> <span>3 Comments</span></a> </div> <a id="comment-109409b5-cb47-41b5-ab95-5e6a9ba0f6d2"></a> <div class="border-t border-zinc-700 p-4 flex space-x-3 group" x-cloak x-show="comment"> <img class="rounded-full w-9 h-9" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> <div class=""> <div class="w-fit mb-2 flex flex-col"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs px-1 py-0.5 bg-zinc-950/70 rounded-md text-primary-600">Author</span> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <time class="text-xs text-zinc-500" datetime=2020-09-06T10:16:37.982+00:00 x-text="DateTime.fromISO('2020-09-06T10:16:37.982+00:00').toRelative()"> September 6, 2020 at 10:16 AM </time> </div> <div class="text-zinc-300"> <p>Also, it's got much faster response times than Netlify and they give you some caching control. Using Netlify + Cloudflare comes close, but still, it's nice having everything in one platform. And just running <code>vc dev</code> to get my backend and frontend started all at once makes things so easy!</p> </div> <a href="/sign-up" class="flex mt-4 items-center space-x-1 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-4 h-4 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span class="text-xs">0 Likes</span> </a> </div> </div> <a id="comment-2702e1bf-4ca9-4385-963c-377995dce5bb"></a> <div class="border-t border-zinc-700 p-4 flex space-x-3 group" x-cloak x-show="comment"> <img class="rounded-full w-9 h-9" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> <div class=""> <div class="w-fit mb-2 flex flex-col"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs px-1 py-0.5 bg-zinc-950/70 rounded-md text-primary-600">Author</span> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <time class="text-xs text-zinc-500" datetime=2020-09-06T10:15:15.487+00:00 x-text="DateTime.fromISO('2020-09-06T10:15:15.487+00:00').toRelative()"> September 6, 2020 at 10:15 AM </time> </div> <div class="text-zinc-300"> <p>Yeah! I love how easy it makes deploying cloud functions 😍</p> </div> <a href="/sign-up" class="flex mt-4 items-center space-x-1 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-4 h-4 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span class="text-xs">0 Likes</span> </a> </div> </div> <div class="px-4 pt-1 pb-4 text-sm" x-cloak x-show="comment"> <a href="/tasks/4a3f01b1-8ab3-4dbc-b16a-ac01c8a458a4" class="text-zinc-500 hover:underline" > View 1 more replies. </a> </div> </div> </div> <div id="task-50ef7091-4466-4e8a-8380-a509504db7f9" x-data="{ comment: false }" hx-disinherit="hx-select hx-get hx-target" class="w-full bg-zinc-900 border border-t-4 rounded-lg border-zinc-700 border-t-primary-600 py-4 px-4 mb-6 shadow-md max-w-[24.6rem] sm:max-w-none"> <div class="flex justify-between group"> <div class="flex flex-1 space-x-3"> <div class="relative"> <img class="w-9 h-9 rounded-full" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> </div> <div class="w-fit"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <div class="flex space-x-1 text-xs text-zinc-400"> <a href="/tasks/50ef7091-4466-4e8a-8380-a509504db7f9" class="text-zinc-500 hover:underline"> <time datetime=2020-09-05T22:19:18.369+00:00 x-text="DateTime.fromISO('2020-09-05T22:19:18.369+00:00').toRelative()"> September 5, 2020 at 10:19 PM </time> </a> </div> </div> </div> <div class="relative" x-data="{ open: false }" x-on:click.away="open = false"> <button type="button" class="text-zinc-500 hover:text-zinc-400" x-on:click="open = !open"> <svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="dots-vertical" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0-14a1 1 0 1 0 2 0a1 1 0 1 0-2 0"/></svg> </button> <div x-cloak x-show="open" x-transition:enter="ease-out duration-200" x-transition:enter-start="-translate-y-2" x-transition:enter-end="translate-y-0" class="absolute z-50 w-auto mt-12 top-0 right-0" > <div class="p-2 bg-zinc-900 border rounded-md shadow-md drop-shadow-md border-zinc-700 text-zinc-500 -mt-5"> <ul class="w-80 text-sm space-y-2"> <li class="text-zinc-400"> <a href="#" class="flex items-start gap-2 py-1.5 px-2 rounded-md bg-transparent hover:bg-black hover:text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-report" class="w-6 h-6 flex-shrink-0"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 21V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H8l-4 4m8-13v3m0 3v.01"/></svg> <span class="flex flex-col"> <span class="mb-0.5">Report Task</span> <span class="text-xs text-zinc-500">We won't let Ethan know who reported this.</span> </span> </a> </li> </ul> </div> </div> </div> </div> <h2 class="my-4 text-base text-zinc-100 flex space-x-1.5 items-center"> <span class="text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="circle-check-filled" class="w-6 h-6"><g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M0 0h24v24H0z"/><path fill="currentColor" d="M17 3.34a10 10 0 1 1-14.995 8.984L2 12l.005-.324A10 10 0 0 1 17 3.34zm-1.293 5.953a1 1 0 0 0-1.32-.083l-.094.083L11 12.585l-1.293-1.292l-.094-.083a1 1 0 0 0-1.403 1.403l.083.094l2 2l.094.083a1 1 0 0 0 1.226 0l.094-.083l4-4l.083-.094a1 1 0 0 0-.083-1.32z"/></g></svg> </span> <span>Fixed issue where some RSS feeds would return a 406 error</span> </h2> <div class="mt-4 text-zinc-400"> Before I was requesting them with the Accept header "application/rss+xml", however some servers returned a 406 which means they couldn't return anything that matches the content type. This is probably because there are a wide variety of different content types used for RSS. So I updated the header to "application/rss+xml, *; q=0.1" which means it prefers RSS but will fall back to any content type (eg. plain XML, plain text) </div> <div class="mt-6 -mb-4 -mx-4 border-t rounded-b-lg bg-zinc-900 border-zinc-700"> <div class="my-2 px-4 flex items-center gap-3"> <a href="/sign-up" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-5 h-5 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span>0 Likes</span></a> <a href="/tasks/50ef7091-4466-4e8a-8380-a509504db7f9" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-circle" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501C16.608 19.942 11.659 20.922 7.7 19L3 20"/></svg> <span>0 Comments</span></a> </div> </div> </div> </div> <div id="task-1a0ed65c-ae2b-4ef9-9e07-1f33203759c6" x-data="{ comment: false }" hx-disinherit="hx-select hx-get hx-target" class="w-full bg-zinc-900 border border-t-4 rounded-lg border-zinc-700 border-t-primary-600 py-4 px-4 mb-6 shadow-md max-w-[24.6rem] sm:max-w-none"> <div class="flex justify-between group"> <div class="flex flex-1 space-x-3"> <div class="relative"> <img class="w-9 h-9 rounded-full" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> </div> <div class="w-fit"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <div class="flex space-x-1 text-xs text-zinc-400"> <a href="/tasks/1a0ed65c-ae2b-4ef9-9e07-1f33203759c6" class="text-zinc-500 hover:underline"> <time datetime=2020-09-05T10:38:00.063+00:00 x-text="DateTime.fromISO('2020-09-05T10:38:00.063+00:00').toRelative()"> September 5, 2020 at 10:38 AM </time> </a> </div> </div> </div> <div class="relative" x-data="{ open: false }" x-on:click.away="open = false"> <button type="button" class="text-zinc-500 hover:text-zinc-400" x-on:click="open = !open"> <svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="dots-vertical" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0-14a1 1 0 1 0 2 0a1 1 0 1 0-2 0"/></svg> </button> <div x-cloak x-show="open" x-transition:enter="ease-out duration-200" x-transition:enter-start="-translate-y-2" x-transition:enter-end="translate-y-0" class="absolute z-50 w-auto mt-12 top-0 right-0" > <div class="p-2 bg-zinc-900 border rounded-md shadow-md drop-shadow-md border-zinc-700 text-zinc-500 -mt-5"> <ul class="w-80 text-sm space-y-2"> <li class="text-zinc-400"> <a href="#" class="flex items-start gap-2 py-1.5 px-2 rounded-md bg-transparent hover:bg-black hover:text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-report" class="w-6 h-6 flex-shrink-0"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 21V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H8l-4 4m8-13v3m0 3v.01"/></svg> <span class="flex flex-col"> <span class="mb-0.5">Report Task</span> <span class="text-xs text-zinc-500">We won't let Ethan know who reported this.</span> </span> </a> </li> </ul> </div> </div> </div> </div> <h2 class="my-4 text-base text-zinc-100 flex space-x-1.5 items-center"> <span class="text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="circle-check-filled" class="w-6 h-6"><g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M0 0h24v24H0z"/><path fill="currentColor" d="M17 3.34a10 10 0 1 1-14.995 8.984L2 12l.005-.324A10 10 0 0 1 17 3.34zm-1.293 5.953a1 1 0 0 0-1.32-.083l-.094.083L11 12.585l-1.293-1.292l-.094-.083a1 1 0 0 0-1.403 1.403l.083.094l2 2l.094.083a1 1 0 0 0 1.226 0l.094-.083l4-4l.083-.094a1 1 0 0 0-.083-1.32z"/></g></svg> </span> <span>Released v0.1.5 — Mainly lots of UX improvements</span> </h2> <div class="mt-4 text-zinc-400"> Two releases in one day, edgy 👀👀 </div> <div class="mt-6 -mb-4 -mx-4 border-t rounded-b-lg bg-zinc-900 border-zinc-700"> <div class="my-2 px-4 flex items-center gap-3"> <a href="/sign-up" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-5 h-5 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span>1 Like</span></a> <a href="/tasks/1a0ed65c-ae2b-4ef9-9e07-1f33203759c6" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-circle" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501C16.608 19.942 11.659 20.922 7.7 19L3 20"/></svg> <span>0 Comments</span></a> </div> </div> </div> </div> <div id="task-decf42ac-2e0c-4a36-af88-fc4cb339a1d7" x-data="{ comment: false }" hx-disinherit="hx-select hx-get hx-target" class="w-full bg-zinc-900 border border-t-4 rounded-lg border-zinc-700 border-t-primary-600 py-4 px-4 mb-6 shadow-md max-w-[24.6rem] sm:max-w-none"> <div class="flex justify-between group"> <div class="flex flex-1 space-x-3"> <div class="relative"> <img class="w-9 h-9 rounded-full" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> </div> <div class="w-fit"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <div class="flex space-x-1 text-xs text-zinc-400"> <a href="/tasks/decf42ac-2e0c-4a36-af88-fc4cb339a1d7" class="text-zinc-500 hover:underline"> <time datetime=2020-09-05T10:11:58.100+00:00 x-text="DateTime.fromISO('2020-09-05T10:11:58.100+00:00').toRelative()"> September 5, 2020 at 10:11 AM </time> </a> </div> </div> </div> <div class="relative" x-data="{ open: false }" x-on:click.away="open = false"> <button type="button" class="text-zinc-500 hover:text-zinc-400" x-on:click="open = !open"> <svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="dots-vertical" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0-14a1 1 0 1 0 2 0a1 1 0 1 0-2 0"/></svg> </button> <div x-cloak x-show="open" x-transition:enter="ease-out duration-200" x-transition:enter-start="-translate-y-2" x-transition:enter-end="translate-y-0" class="absolute z-50 w-auto mt-12 top-0 right-0" > <div class="p-2 bg-zinc-900 border rounded-md shadow-md drop-shadow-md border-zinc-700 text-zinc-500 -mt-5"> <ul class="w-80 text-sm space-y-2"> <li class="text-zinc-400"> <a href="#" class="flex items-start gap-2 py-1.5 px-2 rounded-md bg-transparent hover:bg-black hover:text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-report" class="w-6 h-6 flex-shrink-0"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 21V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H8l-4 4m8-13v3m0 3v.01"/></svg> <span class="flex flex-col"> <span class="mb-0.5">Report Task</span> <span class="text-xs text-zinc-500">We won't let Ethan know who reported this.</span> </span> </a> </li> </ul> </div> </div> </div> </div> <h2 class="my-4 text-base text-zinc-100 flex space-x-1.5 items-center"> <span class="text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="circle-check-filled" class="w-6 h-6"><g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M0 0h24v24H0z"/><path fill="currentColor" d="M17 3.34a10 10 0 1 1-14.995 8.984L2 12l.005-.324A10 10 0 0 1 17 3.34zm-1.293 5.953a1 1 0 0 0-1.32-.083l-.094.083L11 12.585l-1.293-1.292l-.094-.083a1 1 0 0 0-1.403 1.403l.083.094l2 2l.094.083a1 1 0 0 0 1.226 0l.094-.083l4-4l.083-.094a1 1 0 0 0-.083-1.32z"/></g></svg> </span> <span>Made add entity page scrollable</span> </h2> <div class="mt-6 -mb-4 -mx-4 border-t rounded-b-lg bg-zinc-900 border-zinc-700"> <div class="my-2 px-4 flex items-center gap-3"> <a href="/sign-up" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-5 h-5 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span>0 Likes</span></a> <a href="/tasks/decf42ac-2e0c-4a36-af88-fc4cb339a1d7" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-circle" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501C16.608 19.942 11.659 20.922 7.7 19L3 20"/></svg> <span>0 Comments</span></a> </div> </div> </div> </div> <div id="task-24543025-57fd-4dcc-aa48-beac56ce4ecd" x-data="{ comment: false }" hx-disinherit="hx-select hx-get hx-target" class="w-full bg-zinc-900 border border-t-4 rounded-lg border-zinc-700 border-t-primary-600 py-4 px-4 mb-6 shadow-md max-w-[24.6rem] sm:max-w-none"> <div class="flex justify-between group"> <div class="flex flex-1 space-x-3"> <div class="relative"> <img class="w-9 h-9 rounded-full" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> </div> <div class="w-fit"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <div class="flex space-x-1 text-xs text-zinc-400"> <a href="/tasks/24543025-57fd-4dcc-aa48-beac56ce4ecd" class="text-zinc-500 hover:underline"> <time datetime=2020-09-05T10:11:42.768+00:00 x-text="DateTime.fromISO('2020-09-05T10:11:42.768+00:00').toRelative()"> September 5, 2020 at 10:11 AM </time> </a> </div> </div> </div> <div class="relative" x-data="{ open: false }" x-on:click.away="open = false"> <button type="button" class="text-zinc-500 hover:text-zinc-400" x-on:click="open = !open"> <svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="dots-vertical" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0-14a1 1 0 1 0 2 0a1 1 0 1 0-2 0"/></svg> </button> <div x-cloak x-show="open" x-transition:enter="ease-out duration-200" x-transition:enter-start="-translate-y-2" x-transition:enter-end="translate-y-0" class="absolute z-50 w-auto mt-12 top-0 right-0" > <div class="p-2 bg-zinc-900 border rounded-md shadow-md drop-shadow-md border-zinc-700 text-zinc-500 -mt-5"> <ul class="w-80 text-sm space-y-2"> <li class="text-zinc-400"> <a href="#" class="flex items-start gap-2 py-1.5 px-2 rounded-md bg-transparent hover:bg-black hover:text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-report" class="w-6 h-6 flex-shrink-0"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 21V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H8l-4 4m8-13v3m0 3v.01"/></svg> <span class="flex flex-col"> <span class="mb-0.5">Report Task</span> <span class="text-xs text-zinc-500">We won't let Ethan know who reported this.</span> </span> </a> </li> </ul> </div> </div> </div> </div> <h2 class="my-4 text-base text-zinc-100 flex space-x-1.5 items-center"> <span class="text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="circle-check-filled" class="w-6 h-6"><g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M0 0h24v24H0z"/><path fill="currentColor" d="M17 3.34a10 10 0 1 1-14.995 8.984L2 12l.005-.324A10 10 0 0 1 17 3.34zm-1.293 5.953a1 1 0 0 0-1.32-.083l-.094.083L11 12.585l-1.293-1.292l-.094-.083a1 1 0 0 0-1.403 1.403l.083.094l2 2l.094.083a1 1 0 0 0 1.226 0l.094-.083l4-4l.083-.094a1 1 0 0 0-.083-1.32z"/></g></svg> </span> <span>Use vue-fontawesome with embedded SVGs rather than webfont for performance reasons!</span> </h2> <div class="mt-6 -mb-4 -mx-4 border-t rounded-b-lg bg-zinc-900 border-zinc-700"> <div class="my-2 px-4 flex items-center gap-3"> <a href="/sign-up" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-5 h-5 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span>1 Like</span></a> <a href="/tasks/24543025-57fd-4dcc-aa48-beac56ce4ecd" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-circle" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501C16.608 19.942 11.659 20.922 7.7 19L3 20"/></svg> <span>0 Comments</span></a> </div> </div> </div> </div> <div id="task-5efe01d2-3ef4-4396-9273-9e5dd35ef60f" x-data="{ comment: false }" hx-disinherit="hx-select hx-get hx-target" class="w-full bg-zinc-900 border border-t-4 rounded-lg border-zinc-700 border-t-primary-600 py-4 px-4 mb-6 shadow-md max-w-[24.6rem] sm:max-w-none"> <div class="flex justify-between group"> <div class="flex flex-1 space-x-3"> <div class="relative"> <img class="w-9 h-9 rounded-full" src="https://www.gravatar.com/avatar/82dc3398f58928df3d42ffb3b400b2b9?d=retro&r=g&s=200" /> </div> <div class="w-fit"> <div class="flex items-center space-x-1"> <a href="/ethan" class="font-medium text-zinc-400 hover:text-primary-600"> Ethan </a> <span class="text-xs hidden group-hover:inline-block">@ethan</span> </div> <div class="flex space-x-1 text-xs text-zinc-400"> <a href="/tasks/5efe01d2-3ef4-4396-9273-9e5dd35ef60f" class="text-zinc-500 hover:underline"> <time datetime=2020-09-05T08:56:37.486+00:00 x-text="DateTime.fromISO('2020-09-05T08:56:37.486+00:00').toRelative()"> September 5, 2020 at 8:56 AM </time> </a> </div> </div> </div> <div class="relative" x-data="{ open: false }" x-on:click.away="open = false"> <button type="button" class="text-zinc-500 hover:text-zinc-400" x-on:click="open = !open"> <svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="dots-vertical" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 12a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0-14a1 1 0 1 0 2 0a1 1 0 1 0-2 0"/></svg> </button> <div x-cloak x-show="open" x-transition:enter="ease-out duration-200" x-transition:enter-start="-translate-y-2" x-transition:enter-end="translate-y-0" class="absolute z-50 w-auto mt-12 top-0 right-0" > <div class="p-2 bg-zinc-900 border rounded-md shadow-md drop-shadow-md border-zinc-700 text-zinc-500 -mt-5"> <ul class="w-80 text-sm space-y-2"> <li class="text-zinc-400"> <a href="#" class="flex items-start gap-2 py-1.5 px-2 rounded-md bg-transparent hover:bg-black hover:text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-report" class="w-6 h-6 flex-shrink-0"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 21V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H8l-4 4m8-13v3m0 3v.01"/></svg> <span class="flex flex-col"> <span class="mb-0.5">Report Task</span> <span class="text-xs text-zinc-500">We won't let Ethan know who reported this.</span> </span> </a> </li> </ul> </div> </div> </div> </div> <h2 class="my-4 text-base text-zinc-100 flex space-x-1.5 items-center"> <span class="text-primary-600"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="circle-check-filled" class="w-6 h-6"><g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M0 0h24v24H0z"/><path fill="currentColor" d="M17 3.34a10 10 0 1 1-14.995 8.984L2 12l.005-.324A10 10 0 0 1 17 3.34zm-1.293 5.953a1 1 0 0 0-1.32-.083l-.094.083L11 12.585l-1.293-1.292l-.094-.083a1 1 0 0 0-1.403 1.403l.083.094l2 2l.094.083a1 1 0 0 0 1.226 0l.094-.083l4-4l.083-.094a1 1 0 0 0-.083-1.32z"/></g></svg> </span> <span>Change theme color meta tag based on dark/light mode</span> </h2> <div class="mt-6 -mb-4 -mx-4 border-t rounded-b-lg bg-zinc-900 border-zinc-700"> <div class="my-2 px-4 flex items-center gap-3"> <a href="/sign-up" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500 group"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="thumb-up" class="w-5 h-5 group-hover:text-primary-600"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 11v8a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h3a4 4 0 0 0 4-4V6a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1-2 2h-7a3 3 0 0 1-3-3"/></svg> <span>0 Likes</span></a> <a href="/tasks/5efe01d2-3ef4-4396-9273-9e5dd35ef60f" class="active:scale-95 justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:ring-0 focus:ring-offset-0 disabled:opacity-50 disabled:pointer-events-none disabled:cursor-not-allowed bg-transparent hover:bg-zinc-800 hover:text-zinc-100 h-10 py-2 px-4 flex-1 flex items-center gap-2 text-zinc-500"><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message-circle" class="w-5 h-5"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m3 20l1.3-3.9C1.976 12.663 2.874 8.228 6.4 5.726c3.526-2.501 8.59-2.296 11.845.48c3.255 2.777 3.695 7.266 1.029 10.501C16.608 19.942 11.659 20.922 7.7 19L3 20"/></svg> <span>0 Comments</span></a> </div> </div> </div> </div> <div class="w-full bg-zinc-900 border rounded-lg border-zinc-700 py-4 px-4 mb-6 shadow-md border-t-zinc-700 border-t-1"> <ul class="flex items-center justify-between text-sm space-x-3"> <li> <a href="/1feed?page=5" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > ◄ Previous </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=1" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > 1 </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=2" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > 2 </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=3" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > 3 </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=4" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > 4 </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=5" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > 5 </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=6" class="text-zinc-400 px-3 py-1 rounded-lg bg-zinc-700" > 6 </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=7" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > 7 </a> </li> <li class="hidden sm:block"> <a href="/1feed?page=8" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > 8 </a> </li> <li> <a href="/1feed?page=7" class="bg-zinc-900 text-zinc-400 px-3 py-1 rounded-lg hover:text-primary-700" > Next ► </a> </li> </ul> </div> </section> <aside class="w-[375px] hidden sm:block"> <div class="w-full bg-zinc-900 border border-t-4 rounded-lg border-zinc-700 border-t-primary-600 py-4 px-4 mb-6 shadow-md"> <div class="pb-4"> <p class="font-medium text-zinc-100">Leaderboard</p> </div> <div class="bg-black rounded-md px-4 py-3 flex justify-between"> <span class="block text-sm cursor-not-allowed hover:text-primary-600">This Week</span> <span class="block text-sm cursor-pointer text-primary-600">This Month</span> <span class="block text-sm cursor-not-allowed hover:text-primary-600">This Year</span> </div> <div class="flex justify-around mt-4 mx-4"> <a href="/fajarsiddiq" class="mt-6 flex flex-col items-center"> <div class="relative"> <img class="rounded-full w-16 h-auto" src="https://makerlog-cdn.nyc3.digitaloceanspaces.com/avatars/clsf3kmfd03871xsbbxlt3jh4.png" /> <span class="absolute -bottom-1.5 left-4 rounded-full bg-zinc-500 border-2 border-zinc-800 text-white text-xs font-semibold py-0.5 px-2">2</span> </div> <div class="text-center mt-2"> <p class="text-xs font-medium text-zinc-400">Fajar Siddiq</p> <p class="text-sm">123</p> </div> </a> <a href="/jasonleow" class="mb-6 flex flex-col items-center"> <div class="relative"> <img class="rounded-full w-16 h-auto" src="https://makerlog-cdn.nyc3.digitaloceanspaces.com/avatars/clsf3n55103sa1xsb5ewceuw4.jpeg" /> <span class="absolute -bottom-1.5 left-4 rounded-full bg-primary-600 border-2 border-zinc-800 text-white text-xs font-semibold py-0.5 px-2">1</span> </div> <div class="text-center mt-2"> <p class="text-xs font-medium text-zinc-400">Jason Leow</p> <p class="text-sm">130</p> </div> </a> <a href="/yuyu" class="mt-6 flex flex-col items-center"> <div class="relative"> <img class="rounded-full w-16 h-auto" src="https://www.gravatar.com/avatar/353643339bb66dfb188d87f44146bbfe?d=retro&r=g&s=200" /> <span class="absolute -bottom-1.5 left-4 rounded-full bg-zinc-500 border-2 border-zinc-800 text-white text-xs font-semibold py-0.5 px-2">3</span> </div> <div class="text-center mt-2"> <p class="text-xs font-medium text-zinc-400">Yuyu</p> <p class="text-sm">64</p> </div> </a> </div> <ul class="mt-6 mx-4 divide-y divide-zinc-700"> <li> <a href="/danielhemmati" class="flex justify-between items-center py-4"> <div class="w-8 font-semibold text-zinc-300">4</div> <div class="flex-1 flex items-center space-x-4"> <img class="rounded-full w-8 h-8" src="https://makerlog-cdn.nyc3.digitaloceanspaces.com/avatars/clsf3lg6l03ei1xsbelyy15iy.jpg" /> <span class="text-xs font-medium text-zinc-400">Daniel</span> </div> <div class="w-10 text-zinc-500 text-sm">46</div> </a> </li> <li> <a href="/ryanhefner" class="flex justify-between items-center py-4"> <div class="w-8 font-semibold text-zinc-300">5</div> <div class="flex-1 flex items-center space-x-4"> <img class="rounded-full w-8 h-8" src="https://www.gravatar.com/avatar/12556c70a3b7619d0afdcb0d3afae224?d=retro&r=g&s=200" /> <span class="text-xs font-medium text-zinc-400">Ryan Hefner</span> </div> <div class="w-10 text-zinc-500 text-sm">46</div> </a> </li> <li> <a href="/helengriffinjr" class="flex justify-between items-center py-4"> <div class="w-8 font-semibold text-zinc-300">6</div> <div class="flex-1 flex items-center space-x-4"> <img class="rounded-full w-8 h-8" src="https://makerlog-cdn.nyc3.digitaloceanspaces.com/avatars/clsf3msb103p61xsb8yrdbabm.jpg" /> <span class="text-xs font-medium text-zinc-400">Helen</span> </div> <div class="w-10 text-zinc-500 text-sm">46</div> </a> </li> <li> <a href="/darren" class="flex justify-between items-center py-4"> <div class="w-8 font-semibold text-zinc-300">7</div> <div class="flex-1 flex items-center space-x-4"> <img class="rounded-full w-8 h-8" src="https://makerlog-cdn.nyc3.digitaloceanspaces.com/avatars/clsf3mb6x03ky1xsbc7zl725w.png" /> <span class="text-xs font-medium text-zinc-400">Darren Travel</span> </div> <div class="w-10 text-zinc-500 text-sm">37</div> </a> </li> <li> <a href="/monojson" class="flex justify-between items-center py-4"> <div class="w-8 font-semibold text-zinc-300">8</div> <div class="flex-1 flex items-center space-x-4"> <img class="rounded-full w-8 h-8" src="https://www.gravatar.com/avatar/33024334a638c451c1fec92fd98f859f?d=retro&r=g&s=200" /> <span class="text-xs font-medium text-zinc-400">monojson</span> </div> <div class="w-10 text-zinc-500 text-sm">25</div> </a> </li> <li> <a href="/recliner" class="flex justify-between items-center py-4"> <div class="w-8 font-semibold text-zinc-300">9</div> <div class="flex-1 flex items-center space-x-4"> <img class="rounded-full w-8 h-8" src="https://makerlog-cdn.nyc3.digitaloceanspaces.com/avatars/clsf3aqme001v1xsb5nxabi6c.png" /> <span class="text-xs font-medium text-zinc-400">recliner</span> </div> <div class="w-10 text-zinc-500 text-sm">22</div> </a> </li> <li> <a href="/michaelsmith468" class="flex justify-between items-center py-4"> <div class="w-8 font-semibold text-zinc-300">10</div> <div class="flex-1 flex items-center space-x-4"> <img class="rounded-full w-8 h-8" src="https://www.gravatar.com/avatar/910eddb0d36b48242d8afbb072760678?d=retro&r=g&s=200" /> <span class="text-xs font-medium text-zinc-400">michaelsmith77</span> </div> <div class="w-10 text-zinc-500 text-sm">20</div> </a> </li> <li class="text-xs pt-4 text-center"> Leaderboards updated every hour. </li> </ul> </div> </div> </aside> </main> <footer class="p-4 w-full"> <p class="text-xs text-center text-zinc-500">Copyright © 2024 <a href="https://aniftyco.com" class="font-semibold hover:underline" title="NiftyCo, LLC">NiftyCo, LLC</a>. All rights reserved.</p> </footer> <ul class="sm:hidden flex justify-between sticky left-0 bottom-0 bg-zinc-900 border-t border-t-zinc-700 w-full px-4 py-2"> <li> <a href="/" title="Feed" class="flex flex-col items-center justify-center" ><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="activity-heartbeat" class="w-8 h-8"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12h4.5L9 6l4 12l2-9l1.5 3H21"/></svg> <span class="block">Feed</span> </a> </li> <li> <a href="/discussions" title="Discussions" class="flex flex-col items-center justify-center" ><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="message" class="w-8 h-8"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 9h8m-8 4h6m4-9a3 3 0 0 1 3 3v8a3 3 0 0 1-3 3h-5l-5 3v-3H6a3 3 0 0 1-3-3V7a3 3 0 0 1 3-3h12z"/></svg> <span class="block">Discussions</span> </a> </li> <li> <a href="/posts" title="Posts" class="flex flex-col items-center justify-center" ><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="news" class="w-8 h-8"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 6h3a1 1 0 0 1 1 1v11a2 2 0 0 1-4 0V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v12a3 3 0 0 0 3 3h11M8 8h4m-4 4h4m-4 4h4"/></svg> <span class="block">Posts</span> </a> </li> <li> <a href="/milestones" title="Milestones" class="flex flex-col items-center justify-center" ><svg width="1em" height="1em" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24" name="award" class="w-8 h-8"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="M6 9a6 6 0 1 0 12 0A6 6 0 1 0 6 9"/><path d="m12 15l3.4 5.89l1.598-3.233l3.598.232l-3.4-5.889M6.802 12l-3.4 5.89L7 17.657l1.598 3.232l3.4-5.889"/></g></svg> <span class="block">Milestones</span> </a> </li> </ul> </body> </html>