[{"_path":"/pages/home","_draft":false,"_partial":false,"_empty":false,"title":"Home","description":"Hey, I'm Yogesh, a software developer.","excerpt":{"type":"root","children":[{"type":"element","tag":"h1","props":{"id":"yogesh-"},"children":[{"type":"text","value":"Yogesh "},{"type":"element","tag":"i-line-md-coffee-loop","props":{},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Hey, I am Yogesh, a self-taught developer."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I'm a passionate learner who's always willing to learn and work across technologies. I love open source and writing about tech occasionally. You can find my "},{"type":"element","tag":"a","props":{"href":"/projects"},"children":[{"type":"text","value":"full projects list here"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Currently I am focusing on web technologies."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I love to chase ideas and I spend a lot of time using some great product applications, learning from their successes and using them to inspire my creativity."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Find me on "},{"type":"element","tag":"a","props":{"href":"https://github.com/y0geshx","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"element","tag":"i-simple-icons-github","props":{},"children":[]},{"type":"text","value":" GitHub"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":""},"children":[{"type":"element","tag":"i-simple-icons-mastodon","props":{},"children":[]}]},{"type":"text","value":" "},{"type":"element","tag":"a","props":{"rel":["me"],"href":"https://infosec.exchange/@yogesh"},"children":[{"type":"text","value":"Mastodon"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://twitter.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"element","tag":"i-simple-icons-twitter","props":{},"children":[]},{"type":"text","value":" Twitter"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://discord.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"element","tag":"i-simple-icons-discord","props":{},"children":[]},{"type":"text","value":" Discord"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Mail me at "},{"type":"element","tag":"i-simple-icons-gmail","props":{},"children":[]},{"type":"text","value":" "},{"type":"element","tag":"a","props":{"href":"mailto:y0geshx@proton.me"},"children":[{"type":"text","value":"y0geshx@proton.me"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"If you like my works, you can add "},{"type":"element","tag":"a","props":{"href":"https://github.com/y0geshx","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"star to my projects"}]},{"type":"text","value":"."}]}]},"head":{"title":"Yogesh's blog"},"body":{"type":"root","children":[{"type":"element","tag":"Breadcrumbs"},{"type":"element","tag":"h1","props":{"id":"yogesh-"},"children":[{"type":"text","value":"Yogesh "},{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"coffee-loop","innerHTML":"<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path stroke-dasharray=\"48\" stroke-dashoffset=\"48\" d=\"M17 9v9a3 3 0 0 1-3 3H8a3 3 0 0 1-3-3V9z\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" dur=\"0.6s\" values=\"48;0\"></animate></path><path stroke-dasharray=\"14\" stroke-dashoffset=\"14\" d=\"M17 14H20C20.55 14 21 13.55 21 13V10C21 9.45 20.55 9 20 9H17\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"0.6s\" dur=\"0.2s\" values=\"14;28\"></animate></path></g><mask id=\"svgIDa\"><path fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" d=\"M8 0c0 2-2 2-2 4s2 2 2 4-2 2-2 4 2 2 2 4M12 0c0 2-2 2-2 4s2 2 2 4-2 2-2 4 2 2 2 4M16 0c0 2-2 2-2 4s2 2 2 4-2 2-2 4 2 2 2 4\"><animateMotion calcMode=\"linear\" dur=\"3s\" path=\"M0 0v-8\" repeatCount=\"indefinite\"></animateMotion></path></mask><rect width=\"24\" height=\"0\" y=\"7\" fill=\"currentColor\" mask=\"url(#svgIDa)\"><animate fill=\"freeze\" attributeName=\"y\" begin=\"0.8s\" dur=\"0.6s\" values=\"7;2\"></animate><animate fill=\"freeze\" attributeName=\"height\" begin=\"0.8s\" dur=\"0.6s\" values=\"0;5\"></animate></rect>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Hey, I am Yogesh, a self-taught developer."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I'm a passionate learner who's always willing to learn and work across technologies. I love open source and writing about tech occasionally. You can find my "},{"type":"element","tag":"a","props":{"href":"/projects"},"children":[{"type":"text","value":"full projects list here"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Currently I am focusing on web technologies."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I love to chase ideas and I spend a lot of time using some great product applications, learning from their successes and using them to inspire my creativity."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Find me on "},{"type":"element","tag":"a","props":{"href":"https://github.com/y0geshx","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"github","innerHTML":"<path 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\"></path>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]},{"type":"text","value":" GitHub"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":""},"children":[{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"mastodon","innerHTML":"<path fill=\"currentColor\" d=\"M23.268 5.313c-.35-2.578-2.617-4.61-5.304-5.004C17.51.242 15.792 0 11.813 0h-.03c-3.98 0-4.835.242-5.288.309C3.882.692 1.496 2.518.917 5.127C.64 6.412.61 7.837.661 9.143c.074 1.874.088 3.745.26 5.611c.118 1.24.325 2.47.62 3.68c.55 2.237 2.777 4.098 4.96 4.857c2.336.792 4.849.923 7.256.38c.265-.061.527-.132.786-.213c.585-.184 1.27-.39 1.774-.753a.057.057 0 0 0 .023-.043v-1.809a.052.052 0 0 0-.02-.041a.053.053 0 0 0-.046-.01a20.282 20.282 0 0 1-4.709.545c-2.73 0-3.463-1.284-3.674-1.818a5.593 5.593 0 0 1-.319-1.433a.053.053 0 0 1 .066-.054c1.517.363 3.072.546 4.632.546c.376 0 .75 0 1.125-.01c1.57-.044 3.224-.124 4.768-.422c.038-.008.077-.015.11-.024c2.435-.464 4.753-1.92 4.989-5.604c.008-.145.03-1.52.03-1.67c.002-.512.167-3.63-.024-5.545zm-3.748 9.195h-2.561V8.29c0-1.309-.55-1.976-1.67-1.976c-1.23 0-1.846.79-1.846 2.35v3.403h-2.546V8.663c0-1.56-.617-2.35-1.848-2.35c-1.112 0-1.668.668-1.67 1.977v6.218H4.822V8.102c0-1.31.337-2.35 1.011-3.12c.696-.77 1.608-1.164 2.74-1.164c1.311 0 2.302.5 2.962 1.498l.638 1.06l.638-1.06c.66-.999 1.65-1.498 2.96-1.498c1.13 0 2.043.395 2.74 1.164c.675.77 1.012 1.81 1.012 3.12z\"></path>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]}]},{"type":"text","value":" "},{"type":"element","tag":"a","props":{"rel":["me"],"href":"https://infosec.exchange/@yogesh"},"children":[{"type":"text","value":"Mastodon"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://twitter.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"twitter","innerHTML":"<path fill=\"currentColor\" d=\"M23.953 4.57a10 10 0 0 1-2.825.775a4.958 4.958 0 0 0 2.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 0 0-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 0 0-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 0 1-2.228-.616v.06a4.923 4.923 0 0 0 3.946 4.827a4.996 4.996 0 0 1-2.212.085a4.936 4.936 0 0 0 4.604 3.417a9.867 9.867 0 0 1-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 0 0 7.557 2.209c9.053 0 13.998-7.496 13.998-13.985c0-.21 0-.42-.015-.63A9.935 9.935 0 0 0 24 4.59z\"></path>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]},{"type":"text","value":" Twitter"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://discord.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"discord","innerHTML":"<path fill=\"currentColor\" d=\"M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418Z\"></path>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]},{"type":"text","value":" Discord"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Mail me at "},{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"gmail","innerHTML":"<path fill=\"currentColor\" d=\"M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64L12 9.548l6.545-4.91l1.528-1.145C21.69 2.28 24 3.434 24 5.457z\"></path>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]},{"type":"text","value":" "},{"type":"element","tag":"a","props":{"href":"mailto:y0geshx@proton.me"},"children":[{"type":"text","value":"y0geshx@proton.me"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"If you like my works, you can add "},{"type":"element","tag":"a","props":{"href":"https://github.com/y0geshx","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"star to my projects"}]},{"type":"text","value":"."}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:pages:1.home.md","_source":"content","_file":"pages/1.home.md","_extension":"md","storageMeta":{"atime":"2024-07-01T13:02:52.960Z","mtime":"2024-07-01T13:02:25.844Z","size":1002},"readingMins":1,"path":"/","renderer":"page","schemaOrg":{"publishedAt":"2024-07-01T13:02:52.960Z","modifiedAt":"2024-07-01T13:02:25.844Z"},"publishedAt":"2024-07-01T13:02:52.960Z","modifiedAt":"2024-07-01T13:02:25.844Z"},{"_path":"/pages/blog","_draft":false,"_partial":false,"_empty":false,"title":"Blog","description":"This is a directory of the articles I have written and published that are sometimes updated.","excerpt":{"type":"root","children":[{"type":"element","tag":"prose","props":{},"children":[{"type":"element","tag":"h1","props":{"id":"blog-"},"children":[{"type":"text","value":"Blog "},{"type":"element","tag":"i-line-md-text-box-multiple","props":{},"children":[]}]}]},{"type":"element","tag":"post-list","props":{},"children":[]}]},"prose":false,"schema":{"type":"CollectionPage"},"icon":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"text-box-multiple","innerHTML":"<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path stroke-dasharray=\"62\" stroke-dashoffset=\"62\" d=\"M22 4V3C22 2.45 21.55 2 21 2H7C6.45 2 6 2.45 6 3V17C6 17.55 6.45 18 7 18H21C21.55 18 22 17.55 22 17z\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" dur=\"0.6s\" values=\"62;124\"></animate></path><g stroke-dasharray=\"10\" stroke-dashoffset=\"10\"><path d=\"M10 6h8\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"0.7s\" dur=\"0.2s\" values=\"10;0\"></animate></path><path d=\"M10 10h8\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"0.9s\" dur=\"0.2s\" values=\"10;0\"></animate></path></g><path stroke-dasharray=\"7\" stroke-dashoffset=\"7\" d=\"M10 14h5\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"1.1s\" dur=\"0.2s\" values=\"7;0\"></animate></path><path stroke-dasharray=\"34\" stroke-dashoffset=\"34\" d=\"M2 6V21C2 21.55 2.45 22 3 22H18\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"1.4s\" dur=\"0.4s\" values=\"34;68\"></animate></path></g>"},"nav":true,"body":{"type":"root","children":[{"type":"element","tag":"prose","props":{},"children":[{"type":"element","tag":"Breadcrumbs"},{"type":"element","tag":"h1","props":{"id":"blog-"},"children":[{"type":"text","value":"Blog "},{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"text-box-multiple","innerHTML":"<g fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\"><path stroke-dasharray=\"62\" stroke-dashoffset=\"62\" d=\"M22 4V3C22 2.45 21.55 2 21 2H7C6.45 2 6 2.45 6 3V17C6 17.55 6.45 18 7 18H21C21.55 18 22 17.55 22 17z\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" dur=\"0.6s\" values=\"62;124\"></animate></path><g stroke-dasharray=\"10\" stroke-dashoffset=\"10\"><path d=\"M10 6h8\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"0.7s\" dur=\"0.2s\" values=\"10;0\"></animate></path><path d=\"M10 10h8\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"0.9s\" dur=\"0.2s\" values=\"10;0\"></animate></path></g><path stroke-dasharray=\"7\" stroke-dashoffset=\"7\" d=\"M10 14h5\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"1.1s\" dur=\"0.2s\" values=\"7;0\"></animate></path><path stroke-dasharray=\"34\" stroke-dashoffset=\"34\" d=\"M2 6V21C2 21.55 2.45 22 3 22H18\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" begin=\"1.4s\" dur=\"0.4s\" values=\"34;68\"></animate></path></g>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]}]}]},{"type":"element","tag":"post-list","props":{},"children":[]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:pages:blog.md","_source":"content","_file":"pages/blog.md","_extension":"md","storageMeta":{"atime":"2024-07-01T13:02:52.960Z","mtime":"2024-07-01T13:02:25.844Z","size":277},"readingMins":1,"path":"/blog","renderer":"page","schemaOrg":{"publishedAt":"2024-07-01T13:02:52.960Z","modifiedAt":"2024-07-01T13:02:25.844Z"},"publishedAt":"2024-07-01T13:02:52.960Z","modifiedAt":"2024-07-01T13:02:25.844Z"},{"_path":"/pages/projects","_draft":false,"_partial":false,"_empty":false,"title":"Projects","description":"This is a directory of the open-source packages and tools I've released that are actively maintained.","excerpt":{"type":"root","children":[{"type":"element","tag":"prose","props":{},"children":[{"type":"element","tag":"h1","props":{"id":"projects-"},"children":[{"type":"text","value":"Projects "},{"type":"element","tag":"i-line-md-lightbulb","props":{},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is a directory of the open-source packages and tools.  You can find all of my projects on "},{"type":"element","tag":"a","props":{"href":"https://github.com/y0geshx","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"GitHub"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"project-list","props":{},"children":[]}]},"prose":false,"schema":{"type":"CollectionPage"},"icon":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"lightbulb","innerHTML":"<path fill=\"none\" stroke=\"currentColor\" stroke-dasharray=\"46\" stroke-dashoffset=\"46\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 17H9V14.1973C7.2066 13.1599 6 11.2208 6 9C6 5.68629 8.68629 3 12 3C15.3137 3 18 5.68629 18 9C18 11.2208 16.7934 13.1599 15 14.1973V17z\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" dur=\"0.4s\" values=\"46;0\"></animate></path><rect width=\"6\" height=\"0\" x=\"9\" y=\"20\" fill=\"currentColor\" rx=\"1\"><animate fill=\"freeze\" attributeName=\"height\" begin=\"0.5s\" dur=\"0.2s\" values=\"0;2\"></animate></rect>"},"nav":true,"body":{"type":"root","children":[{"type":"element","tag":"prose","props":{},"children":[{"type":"element","tag":"Breadcrumbs"},{"type":"element","tag":"h1","props":{"id":"projects-"},"children":[{"type":"text","value":"Projects "},{"type":"element","tag":"svg","props":{"preserveAspectRatio":"xMidYMid meet","viewBox":"0 0 24 24","width":"1em","height":"1em","aria-hidden":true,"title":"lightbulb","innerHTML":"<path fill=\"none\" stroke=\"currentColor\" stroke-dasharray=\"46\" stroke-dashoffset=\"46\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 17H9V14.1973C7.2066 13.1599 6 11.2208 6 9C6 5.68629 8.68629 3 12 3C15.3137 3 18 5.68629 18 9C18 11.2208 16.7934 13.1599 15 14.1973V17z\"><animate fill=\"freeze\" attributeName=\"stroke-dashoffset\" dur=\"0.4s\" values=\"46;0\"></animate></path><rect width=\"6\" height=\"0\" x=\"9\" y=\"20\" fill=\"currentColor\" rx=\"1\"><animate fill=\"freeze\" attributeName=\"height\" begin=\"0.5s\" dur=\"0.2s\" values=\"0;2\"></animate></rect>","style":{"display":"inline-block","vertical-align":"text-bottom"}},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is a directory of the open-source packages and tools.  You can find all of my projects on "},{"type":"element","tag":"a","props":{"href":"https://github.com/y0geshx","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"GitHub"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"project-list","props":{},"children":[]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[]}},"_type":"markdown","_id":"content:pages:projects.md","_source":"content","_file":"pages/projects.md","_extension":"md","storageMeta":{"atime":"2024-07-01T13:02:26.052Z","mtime":"2024-07-01T13:02:25.844Z","size":415},"readingMins":1,"path":"/projects","renderer":"page","schemaOrg":{"publishedAt":"2024-07-01T13:02:26.052Z","modifiedAt":"2024-07-01T13:02:25.844Z"},"publishedAt":"2024-07-01T13:02:26.052Z","modifiedAt":"2024-07-01T13:02:25.844Z"},{"_path":"/posts/organising-life","_draft":false,"_partial":false,"_empty":false,"title":"How I Organise My Life","description":"In this post, I share the apps and the simplistic approach I use to organise my life.","excerpt":{"type":"root","children":[{"type":"element","tag":"toc","props":{},"children":[]},{"type":"element","tag":"primary","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This article is a work in progress. Feel free to read it, but some sections are incomplete."}]}]},{"type":"element","tag":"tip","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Note: Visit "},{"type":"element","tag":"a","props":{"href":"https://obsidian.md","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Obsidian"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://cron.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Cron"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://todoist.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Todoist"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Over the last few months, I've set out to really get my life sorted and organised so I can manage my time and thoughts better. I have explored numerous apps, and \"productivity setups\", searching for that seamless integration that could bring a sense of order to my chaotic mind and life. But nothing quite hit the mark until recently."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is not going to be one of complex setups that you often see productivity influencers making videos and courses about. I actually rejected Obsidian once because I found it really overwhelming after watching a YouTube video setting it up so extensively, reminiscent to configuring "},{"type":"element","tag":"a","props":{"href":"https://www.gnu.org/software/emacs/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Emacs"}]},{"type":"text","value":". In my opinion, people watch these second brain and personal knowledge management setup videos and think it's the holy grail of productivity. They fall into the trap of constantly looking for the perfect app and the perfect setup, always trying to optimise their workflow when they're actually just wasting their time without actually focusing on what's important: getting stuff done."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My setup embraces simplicity. Here's what I wanted from my workflow."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Note taking app: Has to have "},{"type":"element","tag":"a","props":{"href":"https://help.obsidian.md/Plugins/Backlinks","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"backlinks"}]},{"type":"text","value":" and a simple way to organise notes by topics. Should sync across all devices"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Calendar app: Creating and editing events should be fast. Also needs to have good NLP for dates and sync with my phone's calendar widget."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Tasks app: Should be easy to quickly add tasks. Has to have good NLP (Natural Language Processing) for dates Also should sync across all devices"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"So here are my apps of choice and how I use them."}]},{"type":"element","tag":"h2","props":{"id":"note-taking-app-obsidian"},"children":[{"type":"text","value":"Note Taking App: Obsidian"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://obsidian.md","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Obsidian"}]},{"type":"text","value":" is my choice of app for note taking. As I mentioned in the intro, I had used it previously in a very complex and overwhelming setup for a week which just didn't feel right. Almost all videos of Obsidian on YouTube were like that. So I had rejected the app back then."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Fast forward a few months and I saw Obsidian gaining popularity again on Twitter and Discord, so I decided to give it another try, only this time, I read the docs instead of videos. I soon realised the simplicity of Obsidian. It's just notes in Markdown, stored in a folder, called \"Vault\" in Obsidian. You can link to other notes using standard Markdown syntax and also group notes by topic using sub-folders or tags."}]},{"type":"element","tag":"h3","props":{"id":"why-i-like-obsidian"},"children":[{"type":"text","value":"Why I Like Obsidian"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Obsidian has an elegant user interface with an one of the best if not "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"the"}]},{"type":"text","value":" best Markdown editors out there which make the note-taking experience smooth and natural. My favourite part is that it supports vim keybindings in the editor! It also features a nice command palette in which all the commands can be triggered by hotkeys as well. With thousands of plugins available, it gives you tools to do pretty much anything."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"But where Obsidian really won me over is privacy. Notes are saved in a local folder and never go to a database. It also doesn't store notes in a weird Obsidian specific format, it's just standard Markdown! It allows you to own and control your data."}]},{"type":"element","tag":"h3","props":{"id":"how-i-take-notes"},"children":[{"type":"text","value":"How I Take Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All notes live in the root of my Obsidian vault. I don't use sub-directories. Whenever I need to make a new note, I just create the file in the root. To group notes by particular topics, I use tags. For example, recently I had a very cool idea to sell canned carbonated sugarcane juice, which I'm not sure will taste good by the way. So I created a note for it and put the appropriate tags for it in the frontmatter."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"A demo of tags","src":"/tags-demo.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"It's a topic which is interesting to me and also a cool idea that I might revisit and explore in the future."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I also really like links in Obsidian. A few days ago, I had been diving deep into purple coloured stones because they look really cool. So I created a note titled \"Purple Stones\" to keep track of my research. In the \"Purple Stones\" note, I made a list of all the purple stones that caught my eye with a short description of each of them. But instead of cramming detailed information for each of the stones, I created a separate note dedicated to each stone with all the information I got from my research."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"So now, when I click on any stone's name in the \"Purple Stones\" note, it takes me to its dedicated note where I can immerse myself in all the information about that particular stone."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I was also on the hunt for cool desk decorations and created a note for it. As I was researching common desk decorations I came across the idea of using beautiful rocks as decorations. So I instantly linked my note on amethyst because raw amethyst looks stunning. Obsidian also has a really cool backlinks feature, whenever I visit my amethyst note, I can also see a list of all the other notes where amethyst was mentioned. It's like having a web of interconnected knowledge!"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Links have become a huge part of my Obsidian workflow. Each note leads to even more pathways of things I've researched, ideas I've had, or cool things I've discovered. It's as if my notes have formed a collection of interconnected nodes, guiding me through my exploration of different topics and keeping everything neatly organised."}]},{"type":"element","tag":"h3","props":{"id":"what-i-take-notes-of"},"children":[{"type":"text","value":"What I Take Notes Of"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I take notes of pretty much everything."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Any idea that comes to mind"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Anything interesting I come across"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Videos or blog posts that make me think, I break down the key points"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Cool thoughts and random musings"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Research on various topics"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Planning blog posts and events"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Also Obsidian is simply the best Markdown editor I have ever used so I just use it for writing anything."}]},{"type":"element","tag":"h3","props":{"id":"how-i-navigate-notes"},"children":[{"type":"text","value":"How I Navigate Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"As I had written in the previous section, links really help in exploring and guiding you through your notes. It's like having interconnected nodes of knowledge I had said. Well Obsidian has this really feature called \"Graph View\" which lets you visualise your entire vault. Each note becomes a node and these nodes are connected to each other using the links you create."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"A look at the Graph View","src":"/graph-view.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In the Graph View you can easily search for everything, including notes, tags, and also visualise how your notes are linked."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"A screenshot of my blog graph","src":"/blog-graph.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I have heard some people saying that the Graph View is not useful, but I find it to be a natural and intuitive way to navigate my notes. It's much better than the regular search experience for me."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"To make note navigation even faster and more efficient, I use a plugin called "},{"type":"element","tag":"a","props":{"href":"https://github.com/scambier/obsidian-omnisearch","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Omnisearch"}]},{"type":"text","value":". It enhances the search functionality in Obsidian with OCR and a smart weighting algorithm. Plus, it supports vim keybindings, which I love. It reminds me of the "},{"type":"element","tag":"a","props":{"href":"https://github.com/nvim-telescope/telescope.nvim","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Telescope"}]},{"type":"text","value":" plugin in Neovim."}]},{"type":"element","tag":"h3","props":{"id":"syncing-notes"},"children":[{"type":"text","value":"Syncing Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Syncing notes across in Obsidian can be done in different ways. While Obsidian offers a paid "},{"type":"element","tag":"a","props":{"href":"https://obsidian.md/sync","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Sync"}]},{"type":"text","value":" service for seamless synchronisation across devices, I personally use a different approach since I cannot afford it at the moment."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Since Obsidian stores notes as local files in a folder, you can easily sync them using cloud storage services like "},{"type":"element","tag":"a","props":{"href":"https://google.com/drive","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Google Drive"}]},{"type":"text","value":" or "},{"type":"element","tag":"a","props":{"href":"https://dropbox.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Dropbox"}]},{"type":"text","value":". Another option is using "},{"type":"element","tag":"a","props":{"href":"https://syncthing.net/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Syncthing"}]},{"type":"text","value":" which is what I use. It's an open-source, encrypted file synchronisation program. I find Syncthing convenient because it allows me to sync my files locally between my Mac and Android phone without sending data over the internet. It's a simple and secure solution for keeping my notes in sync across devices. I really like it."}]},{"type":"element","tag":"h3","props":{"id":"publishing-notes"},"children":[{"type":"text","value":"Publishing Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"When I used to use "},{"type":"element","tag":"a","props":{"href":"https://notion.so","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Notion"}]},{"type":"text","value":", I loved the publish feature that allowed me to share notes easily with a link. Obsidian also offers a similar feature through its paid "},{"type":"element","tag":"a","props":{"href":"https://obsidian.md/publish","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Publish"}]},{"type":"text","value":" service, but it's not within my budget. So, I decided to create my own Obsidian publish solution using "},{"type":"element","tag":"a","props":{"href":"https://rust-lang.org","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Rust"}]},{"type":"text","value":". It's a command-line tool that scans my Obsidian vault for notes with "},{"type":"element","tag":"code-inline","props":{},"children":[{"type":"text","value":"publish: true"}]},{"type":"text","value":" in the metadata (similar to the official Publish plugin). It then converts the Markdown notes to HTML and deploys them to the internet. While I'm still refining the static site generator, my plan is to open-source it once it's ready for broader use. This way, others can benefit from it as well."}]},{"type":"element","tag":"h3","props":{"id":"plugins"},"children":[{"type":"text","value":"Plugins"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use just three plugins:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Minimal Theme Settings, which is the plugin to configure the "},{"type":"element","tag":"a","props":{"href":"https://minimal.guide","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Minimal Theme"}]},{"type":"text","value":" for a clean and minimalistic UI."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://github.com/scambier/obsidian-omnisearch","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"OmniSearch"}]},{"type":"text","value":", which is a better and quicker search."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://github.com/adriandersen/obsidian-fuzzytag","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"FuzzyTag"}]},{"type":"text","value":", which provides autocomplete for tags while writing them in the frontmatter."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Hopefully this shows that you don't need ten different plugins to make Obsidian functional. It's already enough for whatever you want to do."}]},{"type":"element","tag":"h2","props":{"id":"tasks-app-todoist"},"children":[{"type":"text","value":"Tasks App: Todoist"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"When it comes to managing tasks, I prefer to keep my notes and tasks separate. While some people might use Obsidian for todo-lists, I find it more comfortable to use a dedicated task app."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My go-to task app is "},{"type":"element","tag":"a","props":{"href":"https://todoist.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Todoist"}]},{"type":"text","value":". "},{"type":"element","tag":"a","props":{"href":"https://frantic.im/todo-for-robots/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Despite todo apps being broken"}]},{"type":"text","value":", Todoist "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"works fine"}]},{"type":"text","value":". It has a nice UI which allows for adding tasks quickly, even when on the go, thanks to its convenient widget. It has excellent natural language processing, it understands dates and times in whatever broken english I use."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"img","props":{"alt":"A demo of Todoist's excellent NLP","src":"/todoist-nlp.png"},"children":[]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I particularly enjoy the satisfying sound it plays when I complete a task. Todoist's sub-tasks feature is incredibly useful for breaking down complex tasks into smaller, more manageable steps, which also happens to be perfect for shopping lists and check lists."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I also use Todoist as a reminders app. A few days ago, I needed to wish a friend a safe journey for their upcoming long-distance travel, so I added a reminder in Todoist a week in advance, ensuring that I won't forget to send my well-wishes on the day."}]},{"type":"element","tag":"h2","props":{"id":"calendar-app-cron"},"children":[{"type":"text","value":"Calendar App: Cron"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://cron.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Cron"}]},{"type":"text","value":" is my preferred Calendar app. It syncs with "},{"type":"element","tag":"a","props":{"href":"https://calendar.google.com/calendar/u/0/r","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Google Calendar"}]},{"type":"text","value":" and features a clean and intuitive UI to for quickly creating and organising events. It offers all the features you'd expect from a standard calendar app but with the added benefits of being keyboard-friendly, visually appealing, and it feels "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"fast"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"While Cron doesn't have an official Android app yet, I find that the Google Calendar app works fine. I really like the widget it provides and use it to stay updated with my schedule at a glance."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Thank you!"}]}]},"publishedAt":"2023-11-1","status":"published","tags":["obsidian","Todoist","Cron"],"body":{"type":"root","children":[{"type":"element","tag":"toc","props":{},"children":[]},{"type":"element","tag":"primary","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This article is a work in progress. Feel free to read it, but some sections are incomplete."}]}]},{"type":"element","tag":"tip","props":{},"children":[{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Note: Visit "},{"type":"element","tag":"a","props":{"href":"https://obsidian.md","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Obsidian"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://cron.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Cron"}]},{"type":"text","value":", "},{"type":"element","tag":"a","props":{"href":"https://todoist.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Todoist"}]},{"type":"text","value":"."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Over the last few months, I've set out to really get my life sorted and organised so I can manage my time and thoughts better. I have explored numerous apps, and \"productivity setups\", searching for that seamless integration that could bring a sense of order to my chaotic mind and life. But nothing quite hit the mark until recently."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"This is not going to be one of complex setups that you often see productivity influencers making videos and courses about. I actually rejected Obsidian once because I found it really overwhelming after watching a YouTube video setting it up so extensively, reminiscent to configuring "},{"type":"element","tag":"a","props":{"href":"https://www.gnu.org/software/emacs/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Emacs"}]},{"type":"text","value":". In my opinion, people watch these second brain and personal knowledge management setup videos and think it's the holy grail of productivity. They fall into the trap of constantly looking for the perfect app and the perfect setup, always trying to optimise their workflow when they're actually just wasting their time without actually focusing on what's important: getting stuff done."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My setup embraces simplicity. Here's what I wanted from my workflow."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Note taking app: Has to have "},{"type":"element","tag":"a","props":{"href":"https://help.obsidian.md/Plugins/Backlinks","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"backlinks"}]},{"type":"text","value":" and a simple way to organise notes by topics. Should sync across all devices"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Calendar app: Creating and editing events should be fast. Also needs to have good NLP for dates and sync with my phone's calendar widget."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Tasks app: Should be easy to quickly add tasks. Has to have good NLP (Natural Language Processing) for dates Also should sync across all devices"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"So here are my apps of choice and how I use them."}]},{"type":"element","tag":"h2","props":{"id":"note-taking-app-obsidian"},"children":[{"type":"text","value":"Note Taking App: Obsidian"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://obsidian.md","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Obsidian"}]},{"type":"text","value":" is my choice of app for note taking. As I mentioned in the intro, I had used it previously in a very complex and overwhelming setup for a week which just didn't feel right. Almost all videos of Obsidian on YouTube were like that. So I had rejected the app back then."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Fast forward a few months and I saw Obsidian gaining popularity again on Twitter and Discord, so I decided to give it another try, only this time, I read the docs instead of videos. I soon realised the simplicity of Obsidian. It's just notes in Markdown, stored in a folder, called \"Vault\" in Obsidian. You can link to other notes using standard Markdown syntax and also group notes by topic using sub-folders or tags."}]},{"type":"element","tag":"h3","props":{"id":"why-i-like-obsidian"},"children":[{"type":"text","value":"Why I Like Obsidian"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Obsidian has an elegant user interface with an one of the best if not "},{"type":"element","tag":"strong","props":{},"children":[{"type":"text","value":"the"}]},{"type":"text","value":" best Markdown editors out there which make the note-taking experience smooth and natural. My favourite part is that it supports vim keybindings in the editor! It also features a nice command palette in which all the commands can be triggered by hotkeys as well. With thousands of plugins available, it gives you tools to do pretty much anything."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"But where Obsidian really won me over is privacy. Notes are saved in a local folder and never go to a database. It also doesn't store notes in a weird Obsidian specific format, it's just standard Markdown! It allows you to own and control your data."}]},{"type":"element","tag":"h3","props":{"id":"how-i-take-notes"},"children":[{"type":"text","value":"How I Take Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"All notes live in the root of my Obsidian vault. I don't use sub-directories. Whenever I need to make a new note, I just create the file in the root. To group notes by particular topics, I use tags. For example, recently I had a very cool idea to sell canned carbonated sugarcane juice, which I'm not sure will taste good by the way. So I created a note for it and put the appropriate tags for it in the frontmatter."}]},{"type":"element","tag":"Image","props":{"alt":"A demo of tags","src":"/tags-demo.png"},"children":[]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"It's a topic which is interesting to me and also a cool idea that I might revisit and explore in the future."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I also really like links in Obsidian. A few days ago, I had been diving deep into purple coloured stones because they look really cool. So I created a note titled \"Purple Stones\" to keep track of my research. In the \"Purple Stones\" note, I made a list of all the purple stones that caught my eye with a short description of each of them. But instead of cramming detailed information for each of the stones, I created a separate note dedicated to each stone with all the information I got from my research."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"So now, when I click on any stone's name in the \"Purple Stones\" note, it takes me to its dedicated note where I can immerse myself in all the information about that particular stone."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I was also on the hunt for cool desk decorations and created a note for it. As I was researching common desk decorations I came across the idea of using beautiful rocks as decorations. So I instantly linked my note on amethyst because raw amethyst looks stunning. Obsidian also has a really cool backlinks feature, whenever I visit my amethyst note, I can also see a list of all the other notes where amethyst was mentioned. It's like having a web of interconnected knowledge!"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Links have become a huge part of my Obsidian workflow. Each note leads to even more pathways of things I've researched, ideas I've had, or cool things I've discovered. It's as if my notes have formed a collection of interconnected nodes, guiding me through my exploration of different topics and keeping everything neatly organised."}]},{"type":"element","tag":"h3","props":{"id":"what-i-take-notes-of"},"children":[{"type":"text","value":"What I Take Notes Of"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I take notes of pretty much everything."}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Any idea that comes to mind"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Anything interesting I come across"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Videos or blog posts that make me think, I break down the key points"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Cool thoughts and random musings"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Research on various topics"}]},{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Planning blog posts and events"}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Also Obsidian is simply the best Markdown editor I have ever used so I just use it for writing anything."}]},{"type":"element","tag":"h3","props":{"id":"how-i-navigate-notes"},"children":[{"type":"text","value":"How I Navigate Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"As I had written in the previous section, links really help in exploring and guiding you through your notes. It's like having interconnected nodes of knowledge I had said. Well Obsidian has this really feature called \"Graph View\" which lets you visualise your entire vault. Each note becomes a node and these nodes are connected to each other using the links you create."}]},{"type":"element","tag":"Image","props":{"alt":"A look at the Graph View","src":"/graph-view.png"},"children":[]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"In the Graph View you can easily search for everything, including notes, tags, and also visualise how your notes are linked."}]},{"type":"element","tag":"Image","props":{"alt":"A screenshot of my blog graph","src":"/blog-graph.png"},"children":[]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I have heard some people saying that the Graph View is not useful, but I find it to be a natural and intuitive way to navigate my notes. It's much better than the regular search experience for me."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"To make note navigation even faster and more efficient, I use a plugin called "},{"type":"element","tag":"a","props":{"href":"https://github.com/scambier/obsidian-omnisearch","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Omnisearch"}]},{"type":"text","value":". It enhances the search functionality in Obsidian with OCR and a smart weighting algorithm. Plus, it supports vim keybindings, which I love. It reminds me of the "},{"type":"element","tag":"a","props":{"href":"https://github.com/nvim-telescope/telescope.nvim","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Telescope"}]},{"type":"text","value":" plugin in Neovim."}]},{"type":"element","tag":"h3","props":{"id":"syncing-notes"},"children":[{"type":"text","value":"Syncing Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Syncing notes across in Obsidian can be done in different ways. While Obsidian offers a paid "},{"type":"element","tag":"a","props":{"href":"https://obsidian.md/sync","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Sync"}]},{"type":"text","value":" service for seamless synchronisation across devices, I personally use a different approach since I cannot afford it at the moment."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Since Obsidian stores notes as local files in a folder, you can easily sync them using cloud storage services like "},{"type":"element","tag":"a","props":{"href":"https://google.com/drive","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Google Drive"}]},{"type":"text","value":" or "},{"type":"element","tag":"a","props":{"href":"https://dropbox.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Dropbox"}]},{"type":"text","value":". Another option is using "},{"type":"element","tag":"a","props":{"href":"https://syncthing.net/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Syncthing"}]},{"type":"text","value":" which is what I use. It's an open-source, encrypted file synchronisation program. I find Syncthing convenient because it allows me to sync my files locally between my Mac and Android phone without sending data over the internet. It's a simple and secure solution for keeping my notes in sync across devices. I really like it."}]},{"type":"element","tag":"h3","props":{"id":"publishing-notes"},"children":[{"type":"text","value":"Publishing Notes"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"When I used to use "},{"type":"element","tag":"a","props":{"href":"https://notion.so","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Notion"}]},{"type":"text","value":", I loved the publish feature that allowed me to share notes easily with a link. Obsidian also offers a similar feature through its paid "},{"type":"element","tag":"a","props":{"href":"https://obsidian.md/publish","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Publish"}]},{"type":"text","value":" service, but it's not within my budget. So, I decided to create my own Obsidian publish solution using "},{"type":"element","tag":"a","props":{"href":"https://rust-lang.org","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Rust"}]},{"type":"text","value":". It's a command-line tool that scans my Obsidian vault for notes with "},{"type":"element","tag":"code-inline","props":{},"children":[{"type":"text","value":"publish: true"}]},{"type":"text","value":" in the metadata (similar to the official Publish plugin). It then converts the Markdown notes to HTML and deploys them to the internet. While I'm still refining the static site generator, my plan is to open-source it once it's ready for broader use. This way, others can benefit from it as well."}]},{"type":"element","tag":"h3","props":{"id":"plugins"},"children":[{"type":"text","value":"Plugins"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I use just three plugins:"}]},{"type":"element","tag":"ul","props":{},"children":[{"type":"element","tag":"li","props":{},"children":[{"type":"text","value":"Minimal Theme Settings, which is the plugin to configure the "},{"type":"element","tag":"a","props":{"href":"https://minimal.guide","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Minimal Theme"}]},{"type":"text","value":" for a clean and minimalistic UI."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://github.com/scambier/obsidian-omnisearch","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"OmniSearch"}]},{"type":"text","value":", which is a better and quicker search."}]},{"type":"element","tag":"li","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://github.com/adriandersen/obsidian-fuzzytag","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"FuzzyTag"}]},{"type":"text","value":", which provides autocomplete for tags while writing them in the frontmatter."}]}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Hopefully this shows that you don't need ten different plugins to make Obsidian functional. It's already enough for whatever you want to do."}]},{"type":"element","tag":"h2","props":{"id":"tasks-app-todoist"},"children":[{"type":"text","value":"Tasks App: Todoist"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"When it comes to managing tasks, I prefer to keep my notes and tasks separate. While some people might use Obsidian for todo-lists, I find it more comfortable to use a dedicated task app."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"My go-to task app is "},{"type":"element","tag":"a","props":{"href":"https://todoist.com/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Todoist"}]},{"type":"text","value":". "},{"type":"element","tag":"a","props":{"href":"https://frantic.im/todo-for-robots/","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Despite todo apps being broken"}]},{"type":"text","value":", Todoist "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"works fine"}]},{"type":"text","value":". It has a nice UI which allows for adding tasks quickly, even when on the go, thanks to its convenient widget. It has excellent natural language processing, it understands dates and times in whatever broken english I use."}]},{"type":"element","tag":"Image","props":{"alt":"A demo of Todoist's excellent NLP","src":"/todoist-nlp.png"},"children":[]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I particularly enjoy the satisfying sound it plays when I complete a task. Todoist's sub-tasks feature is incredibly useful for breaking down complex tasks into smaller, more manageable steps, which also happens to be perfect for shopping lists and check lists."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"I also use Todoist as a reminders app. A few days ago, I needed to wish a friend a safe journey for their upcoming long-distance travel, so I added a reminder in Todoist a week in advance, ensuring that I won't forget to send my well-wishes on the day."}]},{"type":"element","tag":"h2","props":{"id":"calendar-app-cron"},"children":[{"type":"text","value":"Calendar App: Cron"}]},{"type":"element","tag":"p","props":{},"children":[{"type":"element","tag":"a","props":{"href":"https://cron.com","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Cron"}]},{"type":"text","value":" is my preferred Calendar app. It syncs with "},{"type":"element","tag":"a","props":{"href":"https://calendar.google.com/calendar/u/0/r","rel":["nofollow","noopener","noreferrer"],"target":"_blank"},"children":[{"type":"text","value":"Google Calendar"}]},{"type":"text","value":" and features a clean and intuitive UI to for quickly creating and organising events. It offers all the features you'd expect from a standard calendar app but with the added benefits of being keyboard-friendly, visually appealing, and it feels "},{"type":"element","tag":"em","props":{},"children":[{"type":"text","value":"fast"}]},{"type":"text","value":"."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"While Cron doesn't have an official Android app yet, I find that the Google Calendar app works fine. I really like the widget it provides and use it to stay updated with my schedule at a glance."}]},{"type":"element","tag":"p","props":{},"children":[{"type":"text","value":"Thank you!"}]}],"toc":{"title":"","searchDepth":2,"depth":2,"links":[{"id":"note-taking-app-obsidian","depth":2,"text":"Note Taking App: Obsidian","children":[{"id":"why-i-like-obsidian","depth":3,"text":"Why I Like Obsidian"},{"id":"how-i-take-notes","depth":3,"text":"How I Take Notes"},{"id":"what-i-take-notes-of","depth":3,"text":"What I Take Notes Of"},{"id":"how-i-navigate-notes","depth":3,"text":"How I Navigate Notes"},{"id":"syncing-notes","depth":3,"text":"Syncing Notes"},{"id":"publishing-notes","depth":3,"text":"Publishing Notes"},{"id":"plugins","depth":3,"text":"Plugins"}]},{"id":"tasks-app-todoist","depth":2,"text":"Tasks App: Todoist"},{"id":"calendar-app-cron","depth":2,"text":"Calendar App: Cron"}]}},"_type":"markdown","_id":"content:posts:organising-life.md","_source":"content","_file":"posts/organising-life.md","_extension":"md","storageMeta":{"atime":"2024-07-01T13:02:26.052Z","mtime":"2024-07-01T13:02:25.844Z","size":11176},"readingMins":8,"path":"/blog/organising-life","renderer":"post","schemaOrg":{"modifiedAt":"2024-07-01T13:02:25.844Z"},"modifiedAt":"2024-07-01T13:02:25.844Z"},{"_path":"/projects","_draft":false,"_partial":false,"body":[{"name":"Project","projects":[{"name":"Collage Management System","description":"Collage Management System in VB.NET","link":"https://github.com/y0geshx/Collage-Management-System","icon":"<svg preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 32 32\" width=\"1em\" height=\"1em\" ><path fill=\"currentColor\" d=\"M32 14h-4v-4h-2v4h-4v2h4v4h2v-4h4v-2zM12 4a5 5 0 1 1-5 5a5 5 0 0 1 5-5m0-2a7 7 0 1 0 7 7a7 7 0 0 0-7-7zm10 28h-2v-5a5 5 0 0 0-5-5H9a5 5 0 0 0-5 5v5H2v-5a7 7 0 0 1 7-7h6a7 7 0 0 1 7 7z\"/></svg>"},{"name":"AI Chatbot","description":"It is a fully optimized UI for AI Chats.","link":"https://github.com/y0geshx/AI-Chatbot","icon":"<svg preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 32 32\" width=\"1em\" height=\"1em\" ><path fill=\"currentColor\" d=\"M16 19a6.99 6.99 0 0 1-5.833-3.129l1.666-1.107a5 5 0 0 0 8.334 0l1.666 1.107A6.99 6.99 0 0 1 16 19zm4-11a2 2 0 1 0 2 2a1.98 1.98 0 0 0-2-2zm-8 0a2 2 0 1 0 2 2a1.98 1.98 0 0 0-2-2z\"/><path fill=\"currentColor\" d=\"M17.736 30L16 29l4-7h6a1.997 1.997 0 0 0 2-2V6a1.997 1.997 0 0 0-2-2H6a1.997 1.997 0 0 0-2 2v14a1.997 1.997 0 0 0 2 2h9v2H6a4 4 0 0 1-4-4V6a3.999 3.999 0 0 1 4-4h20a3.999 3.999 0 0 1 4 4v14a4 4 0 0 1-4 4h-4.835Z\"/></svg>"}]},{"name":"Hobby projects","projects":[{"name":"Collatz Conjecture","description":"This Collatz-Conjecture (3n+1) algorithm prints each calculated sequence in a given interval of integers","link":"https://github.com/y0geshx/Collatz-Conjecture","icon":"<svg preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 32 32\" width=\"1em\" height=\"1em\" ><path fill=\"currentColor\" d=\"M26 30H6a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h3v2H6v12h20V16h-3v-2h3a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2Z\"/><path fill=\"currentColor\" d=\"M13 20h6v2h-6zm7.59-11.41L17 12.17V2h-2v10.17l-3.59-3.58L10 10l6 6l6-6l-1.41-1.41z\"/></svg>"},{"name":"Dotfiles","description":"My UNIX configuration files.","link":"https://github.com/y0geshx/dotfiles","icon":"<svg preserveAspectRatio=\"xMidYMid meet\" viewBox=\"0 0 32 32\" width=\"1em\" height=\"1em\" ><path fill=\"currentColor\" d=\"M26 30H6a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h3v2H6v12h20V16h-3v-2h3a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2Z\"/><path fill=\"currentColor\" d=\"M13 20h6v2h-6zm7.59-11.41L17 12.17V2h-2v10.17l-3.59-3.58L10 10l6 6l6-6l-1.41-1.41z\"/></svg>"}]}],"_id":"content:projects.json","_type":"json","title":"Projects","_source":"content","_file":"projects.json","_extension":"json","storageMeta":{"atime":"2024-07-01T13:02:26.052Z","mtime":"2024-07-01T13:02:25.844Z","size":1122}}]