PageSourceSearch

https://www.jurnalanas.com/projects

html jurnalanas.com collected 2026-09-28 12:19:54 UTC 34,776 bytes, 34 lines download raw bytes

1<!DOCTYPE html><html class="h-full antialiased" lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" as="image" href="/_next/static/media/avatar.a6bce19f.jpg"/><title>Projects - Muhammad Nasrurrohman</title><meta name="robots" content="follow, index"/><meta name="description" content="Thoughts on building products, programming, and life."/><meta property="og:url" content="https://www.jurnalanas.com/projects"/><meta property="og:type" content="website"/><meta property="og:site_name" content="Jurnal Anas"/><meta property="og:description" content="Thoughts on building products, programming, and life."/><meta property="og:title" content="Projects - Muhammad Nasrurrohman"/><meta property="og:image" content="https://www.jurnalanas.com/static/images/twitter-card.png"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="https://twitter.com/oianas_"/><meta name="twitter:title" content="Projects - Muhammad Nasrurrohman"/><meta name="twitter:description" content="Thoughts on building products, programming, and life."/><meta name="twitter:image" content="https://www.jurnalanas.com/static/images/twitter-card.png"/><link rel="canonical" href="https://www.jurnalanas.com/projects"/><meta name="next-head-count" content="18"/>
1<script>
2  let darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)')
3
4  updateMode()
5  darkModeMediaQuery.addEventListener('change', updateModeWithoutTransitions)
6  window.addEventListener('storage', updateModeWithoutTransitions)
7
8  function updateMode() {
9    let isSystemDarkMode = darkModeMediaQuery.matches
10    let isDarkMode = window.localStorage.isDarkMode === 'true' || (!('isDarkMode' in window.localStorage) && isSystemDarkMode)
11
12    if (isDarkMode) {
13      document.documentElement.classList.add('dark')
14    } else {
15      document.documentElement.classList.remove('dark')
16    }
17
18    if (isDarkMode === isSystemDarkMode) {
19      delete window.localStorage.isDarkMode
20    }
21  }
22
23  function disableTransitionsTemporarily() {
24    document.documentElement.classList.add('[&_*]:!transition-none')
25    window.setTimeout(() => {
26      document.documentElement.classList.remove('[&_*]:!transition-none')
27    }, 0)
28  }
29
30  function updateModeWithoutTransitions() {
31    disableTransitionsTemporarily()
32    updateMode()
33  }
34</script>
34<link rel="alternate" type="application/rss+xml" href="/feed.xml"/><link rel="icon" type="image/png" sizes="32x32" href="/static/favicons/favicon.png"/><link rel="preload" href="/_next/static/css/9fc33c20a090a206.css" as="style"/><link rel="stylesheet" href="/_next/static/css/9fc33c20a090a206.css" data-n-g=""/><noscript data-n-css=""></noscript>
34<script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script>
34<script src="/_next/static/chunks/webpack-9e8879b1a80f74a9.js" defer=""></script>
34<script src="/_next/static/chunks/framework-5f4595e5518b5600.js" defer=""></script>
34<script src="/_next/static/chunks/main-da49e4b6818c5682.js" defer=""></script>
34<script src="/_next/static/chunks/pages/_app-0b900f2a5548a316.js" defer=""></script>
34<script src="/_next/static/chunks/91-e9361017812bf05c.js" defer=""></script>
34<script src="/_next/static/chunks/pages/projects-8bb23eb00e8b05cf.js" defer=""></script>
34<script src="/_next/static/vvlzH_fCEeWkHsYVBsEay/_buildManifest.js" defer=""></script>
34<script src="/_next/static/vvlzH_fCEeWkHsYVBsEay/_ssgManifest.js" defer=""></script>
34</head><body class="flex h-full flex-col antialiased dark:bg-zinc-900"><div id="__next" data-reactroot=""><div class="fixed flex justify-center sm:px-8"><div class="flex w-full max-w-7xl lg:px-8"><div class="w-full bg-white ring-1 ring-zinc-100 dark:bg-zinc-900 dark:ring-zinc-300/20"></div></div></div><div class="relative"><header class="pointer-events-none relative z-50 flex flex-col" style="height:var(--header-height);margin-bottom:var(--header-mb)"><div class="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80" aria-hidden="true"><div class="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 rotate-[30deg] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%-30rem)] sm:w-[62.1875rem]" style="clip-path:polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div></div><div class="top-0 z-10 h-16 pt-6" style="position:var(--header-position)"><div class="sm:px-8 top-[var(--header-top,theme(spacing.6))] w-full" style="position:var(--header-inner-position)"><div class="mx-auto max-w-7xl lg:px-8 "><div class="relative px-4 sm:px-8 lg:px-12"><div class="mx-auto max-w-2xl lg:max-w-5xl "><div class="relative flex gap-4"><div class="flex flex-1"><div class="h-10 w-10 rounded-full bg-white/90 p-0.5 shadow-lg shadow-zinc-800/5 ring-1 ring-zinc-900/5 backdrop-blur dark:bg-zinc-800/90 dark:ring-white/10"><a aria-label="Home" class="pointer-events-auto" href="/"><span style="box-sizing:border-box;display:block;overflow:hidden;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;position:relative"><span style="box-sizing:border-box;display:block;width:initial;height:initial;background:none;opacity:1;border:0;margin:0;padding:0;padding-top:100%"></span><img alt="" src="/_next/static/media/avatar.a6bce19f.jpg" decoding="async" data-nimg="responsive" class="rounded-full bg-zinc-100 object-cover dark:bg-zinc-800 h-9 w-9" style="position:absolute;top:0;left:0;bottom:0;right:0;box-sizing:border-box;padding:0;border:none;margin:auto;display:block;width:0;height:0;min-width:100%;max-width:100%;min-height:100%;max-height:100%"/></span></a></div></div><div class="flex flex-1 justify-end md:justify-center"><div class="pointer-events-auto md:hidden" data-headlessui-state=""><button class="group flex items-center rounded-full bg-white/90 px-4 py-2 text-sm font-medium text-zinc-800 shadow-lg shadow-zinc-800/5 ring-1 ring-zinc-900/5 backdrop-blur dark:bg-zinc-800/90 dark:text-zinc-200 dark:ring-white/10 dark:hover:ring-white/20" id="headlessui-popover-button-undefined" type="button" aria-expanded="false" data-headlessui-state="">Menu<svg viewBox="0 0 8 6" aria-hidden="true" class="ml-3 h-auto w-2 stroke-zinc-500 group-hover:stroke-zinc-700 dark:group-hover:stroke-zinc-400"><path d="M1.75 1.75 4 4.25l2.25-2.5" fill="none" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div><nav class="pointer-events-auto hidden md:block"><ul class="flex rounded-full bg-white/90 px-3 text-sm font-medium text-zinc-800 shadow-lg shadow-zinc-800/5 ring-1 ring-zinc-900/5 backdrop-blur dark:bg-zinc-800/90 dark:text-zinc-200 dark:ring-white/10"><li><a class="relative block px-3 py-2 transition hover:text-teal-500 dark:hover:text-teal-400" href="/about">About</a></li><li><a class="relative block px-3 py-2 transition hover:text-teal-500 dark:hover:text-teal-400" href="/blog">Blog</a></li><li><a class="relative block px-3 py-2 transition text-teal-500 dark:text-teal-400" href="/projects">Projects<span class="absolute inset-x-1 -bottom-px h-px bg-gradient-to-r from-teal-500/0 via-teal-500/40 to-teal-500/0 dark:from-teal-400/0 dark:via-teal-400/40 dark:to-teal-400/0"></span></a></li><li><a class="relative block px-3 py-2 transition hover:text-teal-500 dark:hover:text-teal-400" href="/inquiry">Inquiry</a></li></ul></nav></div><div class="flex justify-end md:flex-1"><div class="pointer-events-auto"><button type="button" aria-label="Toggle dark mode" class="group rounded-full bg-white/90 px-3 py-2 shadow-lg shadow-zinc-800/5 ring-1 ring-zinc-900/5 backdrop-blur transition dark:bg-zinc-800/90 dark:ring-white/10 dark:hover:ring-white/20"><svg viewBox="0 0 24 24" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="h-6 w-6 fill-zinc-100 stroke-zinc-500 transition group-hover:fill-zinc-200 group-hover:stroke-zinc-700 dark:hidden [@media(prefers-color-scheme:dark)]:fill-teal-50 [@media(prefers-color-scheme:dark)]:stroke-teal-500 [@media(prefers-color-scheme:dark)]:group-hover:fill-teal-50 [@media(prefers-color-scheme:dark)]:group-hover:stroke-teal-600"><path d="M8 12.25A4.25 4.25 0 0 1 12.25 8v0a4.25 4.25 0 0 1 4.25 4.25v0a4.25 4.25 0 0 1-4.25 4.25v0A4.25 4.25 0 0 1 8 12.25v0Z"></path><path d="M12.25 3v1.5M21.5 12.25H20M18.791 18.791l-1.06-1.06M18.791 5.709l-1.06 1.06M12.25 20v1.5M4.5 12.25H3M6.77 6.77 5.709 5.709M6.77 17.73l-1.061 1.061" fill="none"></path></svg>
34<svg viewBox="0 0 24 24" aria-hidden="true" class="hidden h-6 w-6 fill-zinc-700 stroke-zinc-500 transition dark:block [@media(prefers-color-scheme:dark)]:group-hover:stroke-zinc-400 [@media_not_(prefers-color-scheme:dark)]:fill-teal-400/10 [@media_not_(prefers-color-scheme:dark)]:stroke-teal-500"><path d="M17.25 16.22a6.937 6.937 0 0 1-9.47-9.47 7.451 7.451 0 1 0 9.47 9.47ZM12.75 7C17 7 17 2.75 17 2.75S17 7 21.25 7C17 7 17 11.25 17 11.25S17 7 12.75 7Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></button></div></div></div></div></div></div></div></div></header><main><div class="sm:px-8 mt-16 sm:mt-32"><div class="mx-auto max-w-7xl lg:px-8 "><div class="relative px-4 sm:px-8 lg:px-12"><div class="mx-auto max-w-2xl lg:max-w-5xl "><header class="max-w-2xl"><h1 class="text-4xl font-bold tracking-tight text-zinc-800 dark:text-zinc-100 sm:text-5xl">Projects.</h1><p class="mt-6 text-base text-zinc-600 dark:text-zinc-400">Here are some of the projects I&#x27;ve worked on. Each one is a unique adventure in problem-solving and creativity.</p></header><div class="sm:mt-18 mt-16"><ul role="list" class="grid grid-cols-1 gap-x-12 gap-y-16 sm:grid-cols-2 lg:grid-cols-3" style="opacity:0"><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🚀</span></div><h2 class="text-lg font-semibold dark:text-gray-100">BuildandLearn.space (2024)</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">a cohort-based educational platform for technical online courses. Currently in private beta.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->Next.js 14 (App Router), React, Typescript, Tailwindcss, MongoDB, Prisma</p><a href="https://www.buildandlearn.space" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Visit site</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🤖</span></div><h2 class="text-lg font-semibold dark:text-gray-100">MauTutor.in (2023)</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">a personalized AI learning assistant, currently covers Front End development and English language practice</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->Next.js, Pinecone, Planetscale, Redis</p><a href="https://www.maututor.in" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
3406 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Learn more</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">👜</span></div><h2 class="text-lg font-semibold dark:text-gray-100">Simple-Ecommerce</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A mobile web ecommerce built in pure React.js</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->React.js, Tailwindcss</p><a href="https://github.com/jurnalanas/simple-ecommerce" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>View source</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🕸</span></div><h2 class="text-lg font-semibold dark:text-gray-100">RiungNode</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">REST API for Ngariung app.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->Node.js, Express.js, MongoDB</p><a href="https://github.com/jurnalanas/riungnode" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>View source</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🕸</span></div><h2 class="text-lg font-semibold dark:text-gray-100">Ngariung</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">An open source forum specifically designed to document your thoughts and moods easily.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->React.js, Tailwindcss</p><a href="https://github.com/jurnalanas/ngariung" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dar
34k:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>View source</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🗓</span></div><h2 class="text-lg font-semibold dark:text-gray-100">Simple-Calendar</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A simple calendar built with Vanilla Javascript.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->HTML, CSS, Javascript ES6+</p><a href="https://jurnalanas.github.io/simple-calendar/" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Learn more</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🏷</span></div><h2 class="text-lg font-semibold dark:text-gray-100">Bukalapak Helper</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A chrome extension that give you product recommendations from Bukalapak according to metadata of product page you currently view.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->Javascript, CSS</p><a href="https://chrome.google.com/webstore/detail/bukalapak-helper/ccblngbmfjcgiefcapoogjbgajijccnk" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
3406 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Learn more</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🐑</span></div><h2 class="text-lg font-semibold dark:text-gray-100">iSheep (2013)</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A web-based app to help breeder to prevent Tetanus and Botulism in sheep.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->HTML, CSS, PHP, MySQL, Javascript</p><a href="https://github.com/jurnalanas/isheep" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>View Source</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">💪</span></div><h2 class="text-lg font-semibold dark:text-gray-100">Gizr (2014)</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A crossplatform mobile app that help people to get a healty lifestyle and also give them recommendations of everyday meals that fit to their diet.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->HTML, CSS, Adobe Phonegap</p><a href="http://jurnalanas.com/gizr" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Learn more</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">🎰</span></div><h2 class="text-lg font-semibold dark:text-gray-100">Rekomendasi Belanja Cepat</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A browser plugin that give you price comparison and product recommendations from dozens of e-commerce in Indonesia according to the metadata of product that you currently view.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->HTML, CSS, PHP, MySQL, Javascript</p>
34<a href="https://www.dropbox.com/s/yhf2liy61t6dd7d/preview%20chrome%20extension%20anas.mp4?dl=0" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Learn more</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">👕</span></div><h2 class="text-lg font-semibold dark:text-gray-100">KaosKece</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A web app that helps college students to sell and market their products efficiently at the school.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->HTML, CSS, PHP, MySQL, Javascript</p><a href="http://jurnalanas.com/gizr" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.06 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Learn more</span></a></div></div></div><div class="h-full"><div class="flex flex-col h-full p-6 space-y-4 group relative flex flex-col items-start"><div class="flex items-center space-x-4"><div class="flex items-center justify-center w-12 h-12 rounded-full bg-gray-100 dark:bg-gray-800"><span class="text-2xl">📱</span></div><h2 class="text-lg font-semibold dark:text-gray-100">I-Kutan (2013)</h2></div><p class="flex-grow text-sm text-gray-600 dark:text-gray-300">A responsive web app that help college student to organize and collaborate events on Campus and share them to their friend.</p><div class="space-y-2"><p class="text-xs font-mono text-gray-500 dark:text-gray-400"><span class="font-semibold">Tech:</span> <!-- -->HTML, CSS, PHP, MySQL, Javascript</p><a href="https://github.com/jurnalanas/ikutan" class="flex items-center text-sm text-blue-500 hover:text-blue-600 dark:text-blue-400 dark:hover:text-blue-300"><svg viewBox="0 0 24 24" aria-hidden="true" class="w-4 h-4 mr-2"><path d="M15.712 11.823a.75.75 0 1 0 1.06 1.06l-1.06-1.06Zm-4.95 1.768a.75.75 0 0 0 1.06-1.06l-1.
3406 1.06Zm-2.475-1.414a.75.75 0 1 0-1.06-1.06l1.06 1.06Zm4.95-1.768a.75.75 0 1 0-1.06 1.06l1.06-1.06Zm3.359.53-.884.884 1.06 1.06.885-.883-1.061-1.06Zm-4.95-2.12 1.414-1.415L12 6.344l-1.415 1.413 1.061 1.061Zm0 3.535a2.5 2.5 0 0 1 0-3.536l-1.06-1.06a4 4 0 0 0 0 5.656l1.06-1.06Zm4.95-4.95a2.5 2.5 0 0 1 0 3.535L17.656 12a4 4 0 0 0 0-5.657l-1.06 1.06Zm1.06-1.06a4 4 0 0 0-5.656 0l1.06 1.06a2.5 2.5 0 0 1 3.536 0l1.06-1.06Zm-7.07 7.07.176.177 1.06-1.06-.176-.177-1.06 1.06Zm-3.183-.353.884-.884-1.06-1.06-.884.883 1.06 1.06Zm4.95 2.121-1.414 1.414 1.06 1.06 1.415-1.413-1.06-1.061Zm0-3.536a2.5 2.5 0 0 1 0 3.536l1.06 1.06a4 4 0 0 0 0-5.656l-1.06 1.06Zm-4.95 4.95a2.5 2.5 0 0 1 0-3.535L6.344 12a4 4 0 0 0 0 5.656l1.06-1.06Zm-1.06 1.06a4 4 0 0 0 5.657 0l-1.061-1.06a2.5 2.5 0 0 1-3.535 0l-1.061 1.06Zm7.07-7.07-.176-.177-1.06 1.06.176.178 1.06-1.061Z" fill="currentColor"></path></svg><span>Learn more</span></a></div></div></div></ul></div></div></div></div></div></main><footer class="mt-32"><div class="absolute inset-x-0 top-[calc(100%-13rem)] -z-10 transform-gpu overflow-hidden blur-3xl sm:top-[calc(100%-30rem)]" aria-hidden="true"><div class="relative left-[calc(50%+3rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%+36rem)] sm:w-[62.1875rem]" style="clip-path:polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)"></div></div><div class="sm:px-8"><div class="mx-auto max-w-7xl lg:px-8 "><div class="border-t border-zinc-100 pt-10 pb-16 dark:border-zinc-700/40"><div class="relative px-4 sm:px-8 lg:px-12"><div class="mx-auto max-w-2xl lg:max-w-5xl "><div class="flex flex-col items-center justify-between gap-6 sm:flex-row"><div class="flex gap-6 text-sm font-medium text-zinc-800 dark:text-zinc-200"><a href="/about">About</a><a href="/projects">Projects</a><a href="/tags">Tags</a></div><p class="text-sm text-zinc-400 dark:text-zinc-500">© <!-- -->2026<!-- --> Jurnal Anas. All rights reserved.</p></div></div></div></div></div></div></footer></div></div>
34<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/projects","query":{},"buildId":"vvlzH_fCEeWkHsYVBsEay","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script>
34</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.