{"data":[{"id":"69ff8fd51ff8d400013e1c4d","uuid":"7e3f7435-2616-472f-a1f6-e6c142a8efe3","slug":"ai-and-the-future-of-work","title":"AI & the Future of Work","excerpt":"Popular student podcast show host, Fakhar Abbas, interviews Grayhat's CEO, Saad Bazaz, along with Maaz Ali Nadeem, CEO of Vector AI.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/ai-and-the-future-of-work","featureImage":"https://ghost.coldpeak.co/echo/content/images/2026/05/podcast-thumbnail-notext.png","featureImageAlt":null,"publishedAt":"2026-05-10T01:18:00.000+05:00","updatedAt":"2026-05-10T18:27:43.000+05:00","readingTime":36,"featured":true,"visibility":"public","primaryTag":{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},{"id":"69ff92a31ff8d400013e1c5f","slug":"podcast","name":"Podcast","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/podcast","postCount":null},{"id":"663ca5e730535e0001222218","slug":"ai","name":"AI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ai","postCount":null},{"id":"681c7797c264220001aeb2f4","slug":"agents","name":"Agents","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/agents","postCount":null},{"id":"663698e2b6900b00019b644b","slug":"artificial-intelligence","name":"Artificial Intelligence","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/artificial-intelligence","postCount":null},{"id":"663c760330535e00012221e0","slug":"infrastructure","name":"Infrastructure","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/infrastructure","postCount":null},{"id":"663ca5e730535e0001222216","slug":"llms","name":"LLMs","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/llms","postCount":null},{"id":"663ca79130535e0001222281","slug":"open-source","name":"Open Source","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source","postCount":null},{"id":"690c58fdb6730c0001920f9c","slug":"voice","name":"Voice","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/voice","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"68fba17451eb5b0001ed6887","uuid":"9c3b8c44-ddf3-4d40-9519-a84a3d233e1c","slug":"our-struggles-and-wins-with-rive-2025","title":"Our struggles (and minor wins) with Rive for character animation in 2025","excerpt":"Inspired by Duolingo, we also gave the beta Rive Editor a try to make our AI virtual friends in MindChat come alive. TLDR; It didn't go too well.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/our-struggles-and-wins-with-rive-2025","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/10/ChatGPT-Image-Oct-24--2025--09_33_38-PM.png","featureImageAlt":null,"publishedAt":"2025-11-06T14:00:03.000+05:00","updatedAt":"2025-11-19T23:03:41.000+05:00","readingTime":5,"featured":true,"visibility":"public","primaryTag":{"id":"68fe2fac51eb5b0001ed699f","slug":"animation","name":"Animation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/animation","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"68fe2fac51eb5b0001ed699f","slug":"animation","name":"Animation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/animation","postCount":null},{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},{"id":"663ca5e730535e0001222218","slug":"ai","name":"AI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ai","postCount":null},{"id":"663698e2b6900b00019b644b","slug":"artificial-intelligence","name":"Artificial Intelligence","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/artificial-intelligence","postCount":null},{"id":"663cad3730535e00012222d3","slug":"flutter","name":"Flutter","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/flutter","postCount":null},{"id":"66431c925fda9b0001212442","slug":"developer-tools","name":"Developer Tools","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/developer-tools","postCount":null},{"id":"68fe2fcd51eb5b0001ed69ac","slug":"design-tools","name":"Design Tools","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design-tools","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},{"id":"6821d78eaaad750001239f34","slug":"subhani","name":"Abdurrehman Subhani","bio":null,"profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/1656600317867.jpeg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/subhani","postCount":null},{"id":"663c6ea030535e00012221ac","slug":"aniqa-sadaf","name":"Aniqa Sadaf","bio":"Product Designer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/1706709044867.jpeg","coverImage":null,"website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/aniqa-sadaf","postCount":null},{"id":"663c9c4a30535e00012221ee","slug":"talal","name":"Talal Ahmed Khan","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/04/TalalAhmedKhan_FastIsb_Upwork.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/talal","postCount":null},{"id":"663caf9930535e0001222308","slug":"wasif","name":"Wasif Sadiq","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Screenshot-2025-05-12-at-15.11.54.png","coverImage":null,"website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/wasif","postCount":null},{"id":"66bf77558f24d00001360899","slug":"usama-rashid","name":"Muhammad Usama Rashid","bio":"Technical Project Manager with 4+ years in defense and tech sectors. Expert in Agile, SDLC, and stakeholder management. Award-winning communicator with a flair for creative problem-solving.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Potential-DP.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/usama-rashid","postCount":null}]},{"id":"68e7e88461c363000109562b","uuid":"48dfa3b3-2a5f-4347-a17f-909a489b0400","slug":"i-can-talk-to-machines","title":"\"I can talk to machines\"","excerpt":"Lessons from Saleem Koul’s journey through robotics, telecom, and engineering at scale.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/i-can-talk-to-machines","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/10/WhatsApp-Image-2025-10-09-at-17.49.48.jpeg","featureImageAlt":null,"publishedAt":"2025-10-09T22:09:12.000+05:00","updatedAt":"2025-11-04T23:26:44.000+05:00","readingTime":6,"featured":true,"visibility":"public","primaryTag":{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},{"id":"663cb50730535e00012224b0","slug":"software-engineering","name":"Software Engineering","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/software-engineering","postCount":null},{"id":"663cb3da30535e00012223e4","slug":"company-culture","name":"Company Culture","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/company-culture","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"6821c197c264220001aeb47e","uuid":"238edf0b-281c-4124-ae4f-a8b000246b8e","slug":"full-stack-deployment-setting-up-ci-cd-for-node-js-applications-on-aws-with-custom-domains","title":"Full Stack Deployment: Setting Up CI/CD for Node.js Applications on AWS with Custom Domains","excerpt":"This comprehensive guide will walk you through establishing a professional CI/CD pipeline for Node.js applications on AWS EC2, complete with custom domain configuration.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/full-stack-deployment-setting-up-ci-cd-for-node-js-applications-on-aws-with-custom-domains","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/1__79wSatPauJeuCdpEQ395g.webp","featureImageAlt":null,"publishedAt":"2025-05-13T15:00:41.000+05:00","updatedAt":"2025-05-13T15:00:41.000+05:00","readingTime":9,"featured":true,"visibility":"public","primaryTag":{"id":"663c760930535e00012221e5","slug":"devops","name":"DevOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/devops","postCount":null},"primaryAuthor":{"id":"663868d5316cc4000177290f","slug":"nasirabdullahsyed","name":"Syed Abdullah Nasir","bio":"Software Engineer 1 at Grayhat. Making cool shit since 2023. \n\nMedium blog: medium.com/@nasirabdullahsyed ","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/image.webp","coverImage":null,"website":"https://syedabdullahnasir.vercel.app","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/nasirabdullahsyed","postCount":null},"tags":[{"id":"663c760930535e00012221e5","slug":"devops","name":"DevOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/devops","postCount":null},{"id":"663c75f030535e00012221db","slug":"cloud","name":"Cloud","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/cloud","postCount":null},{"id":"663ca5e730535e0001222217","slug":"automation","name":"Automation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/automation","postCount":null},{"id":"6821c1f9c264220001aeb48f","slug":"deployment","name":"Deployment","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/deployment","postCount":null},{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},{"id":"663cb50730535e00012224b0","slug":"software-engineering","name":"Software Engineering","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/software-engineering","postCount":null},{"id":"6821c227c264220001aeb496","slug":"amazon-web-services-aws","name":"Amazon Web Services (AWS)","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/amazon-web-services-aws","postCount":null}],"authors":[{"id":"663868d5316cc4000177290f","slug":"nasirabdullahsyed","name":"Syed Abdullah Nasir","bio":"Software Engineer 1 at Grayhat. Making cool shit since 2023. \n\nMedium blog: medium.com/@nasirabdullahsyed ","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/image.webp","coverImage":null,"website":"https://syedabdullahnasir.vercel.app","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/nasirabdullahsyed","postCount":null}]},{"id":"6820dbdec264220001aeb394","uuid":"5c859510-cea2-49ae-934e-3de424f84bad","slug":"grayhat-summer-internship-2025","title":"Grayhat Summer Internship - 2025","excerpt":"Ready to build the future (and present) with us? The Grayhat Summer Internship 2025 is officially open! If you're a university student eager to learn, build, and solve real-world problems with a passionate team, this is your chance to jump in and grow.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/grayhat-summer-internship-2025","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/revolution.webp","featureImageAlt":null,"publishedAt":"2025-05-12T01:45:54.000+05:00","updatedAt":"2025-05-20T16:34:09.000+05:00","readingTime":11,"featured":true,"visibility":"public","primaryTag":{"id":"680f85e4c264220001aeb2a6","slug":"announcements","name":"Announcements","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/announcements","postCount":null},"primaryAuthor":{"id":"663c9c4a30535e00012221ee","slug":"talal","name":"Talal Ahmed Khan","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/04/TalalAhmedKhan_FastIsb_Upwork.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/talal","postCount":null},"tags":[{"id":"680f85e4c264220001aeb2a6","slug":"announcements","name":"Announcements","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/announcements","postCount":null},{"id":"68210d50c264220001aeb448","slug":"internship","name":"Internship","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/internship","postCount":null},{"id":"663cb3da30535e00012223e4","slug":"company-culture","name":"Company Culture","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/company-culture","postCount":null},{"id":"663cbad630535e00012225c9","slug":"upskill","name":"Upskill","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/upskill","postCount":null}],"authors":[{"id":"663c9c4a30535e00012221ee","slug":"talal","name":"Talal Ahmed Khan","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/04/TalalAhmedKhan_FastIsb_Upwork.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/talal","postCount":null}]},{"id":"6809f0836042f00001e72472","uuid":"17fd7264-96e0-4d3e-bf88-49a3cee96800","slug":"web-social-party-game-jam","title":"Wrap-up: Web Social Party Game Jam!","excerpt":"Grayhat's first national game jam was an absolute blast! Over 65 developers from 10 universities battled it out to create the best multiplayer card games using PlayroomKit—and the results were wild. Here's the full behind-the-scenes breakdown.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/web-social-party-game-jam","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/04/Cover.png","featureImageAlt":null,"publishedAt":"2025-04-28T18:41:28.000+05:00","updatedAt":"2025-04-29T01:03:14.000+05:00","readingTime":7,"featured":true,"visibility":"public","primaryTag":{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},"primaryAuthor":{"id":"663c9c4a30535e00012221ee","slug":"talal","name":"Talal Ahmed Khan","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/04/TalalAhmedKhan_FastIsb_Upwork.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/talal","postCount":null},"tags":[{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},{"id":"66bb5b377d904e0001e2c855","slug":"game-design","name":"Game Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/game-design","postCount":null},{"id":"663caec830535e00012222ec","slug":"gaming","name":"Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gaming","postCount":null},{"id":"6809f0cc6042f00001e7247e","slug":"unity","name":"Unity","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/unity","postCount":null},{"id":"663caec830535e00012222f2","slug":"playroom","name":"Playroom","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroom","postCount":null},{"id":"663caec830535e00012222f3","slug":"playroomkit","name":"PlayroomKit","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroomkit","postCount":null},{"id":"680f85e4c264220001aeb2a6","slug":"announcements","name":"Announcements","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/announcements","postCount":null},{"id":"663caec830535e00012222f0","slug":"multiplayer-gaming","name":"Multiplayer Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/multiplayer-gaming","postCount":null}],"authors":[{"id":"663c9c4a30535e00012221ee","slug":"talal","name":"Talal Ahmed Khan","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/04/TalalAhmedKhan_FastIsb_Upwork.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/talal","postCount":null}]},{"id":"66be0dea8f24d00001360828","uuid":"ce396da7-87cb-451c-bcd1-0b353b05aa36","slug":"creating-an-mvp-for-an-unofficial-v0-dev-vs-code-extension-clone","title":"Creating an MVP for an unofficial v0.dev VS Code Extension clone","excerpt":"The race to generate React UI code in VSCode ensues.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/creating-an-mvp-for-an-unofficial-v0-dev-vs-code-extension-clone","featureImage":"https://ghost.coldpeak.co/echo/content/images/2024/08/v0-ext-logo.png","featureImageAlt":null,"publishedAt":"2024-08-19T15:30:04.000+05:00","updatedAt":"2024-08-19T16:46:07.000+05:00","readingTime":5,"featured":true,"visibility":"public","primaryTag":{"id":"66431c925fda9b0001212442","slug":"developer-tools","name":"Developer Tools","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/developer-tools","postCount":null},"primaryAuthor":{"id":"66b8b8717d904e0001e2c835","slug":"asher","name":"Asher Siddique","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/asher","postCount":null},"tags":[{"id":"66431c925fda9b0001212442","slug":"developer-tools","name":"Developer Tools","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/developer-tools","postCount":null},{"id":"663698e2b6900b00019b644b","slug":"artificial-intelligence","name":"Artificial Intelligence","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/artificial-intelligence","postCount":null},{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},{"id":"66bf1bff8f24d00001360869","slug":"codegen","name":"Codegen","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/codegen","postCount":null},{"id":"66bf1bff8f24d0000136086a","slug":"copilot","name":"Copilot","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/copilot","postCount":null},{"id":"663cb50730535e00012224ae","slug":"gitops","name":"GitOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gitops","postCount":null},{"id":"663ca5e730535e0001222218","slug":"ai","name":"AI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ai","postCount":null},{"id":"663ca79130535e0001222281","slug":"open-source","name":"Open Source","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source","postCount":null}],"authors":[{"id":"66b8b8717d904e0001e2c835","slug":"asher","name":"Asher Siddique","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/asher","postCount":null},{"id":"66bf77558f24d00001360899","slug":"usama-rashid","name":"Muhammad Usama Rashid","bio":"Technical Project Manager with 4+ years in defense and tech sectors. Expert in Agile, SDLC, and stakeholder management. Award-winning communicator with a flair for creative problem-solving.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Potential-DP.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/usama-rashid","postCount":null}]},{"id":"66bcd19a7d904e0001e2c87f","uuid":"2a40dfcd-ff72-4a99-afb3-e6a0985bc789","slug":"pixels-to-players-how-good-game-designs-are-executed","title":"Pixels to Players: How Good Game Designs are Executed","excerpt":"Taking a game from an idea to reality is hard. How do you navigate through a sea of endless ideas and technologies, to deliver something... fun?","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/pixels-to-players-how-good-game-designs-are-executed","featureImage":"https://ghost.coldpeak.co/echo/content/images/2024/08/plant-.png","featureImageAlt":null,"publishedAt":"2024-08-14T23:04:07.000+05:00","updatedAt":"2024-08-15T11:11:02.000+05:00","readingTime":6,"featured":true,"visibility":"public","primaryTag":{"id":"66bb5b377d904e0001e2c855","slug":"game-design","name":"Game Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/game-design","postCount":null},"primaryAuthor":{"id":"66bb5cd17d904e0001e2c86f","slug":"maaz-tariq","name":"Maaz Tariq","bio":"Hi, I'm Maaz and I love making pictures out of squares","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/08/Headshot.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/08/Green-Minimalist-Watercolor-Background-Linkedin-Banner--1-.png","website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/maaz-tariq","postCount":null},"tags":[{"id":"66bb5b377d904e0001e2c855","slug":"game-design","name":"Game Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/game-design","postCount":null},{"id":"663cb5b530535e00012224ca","slug":"product-design","name":"Product Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/product-design","postCount":null},{"id":"663cb5b530535e00012224cb","slug":"system-design","name":"System Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/system-design","postCount":null},{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},{"id":"663caec830535e00012222ec","slug":"gaming","name":"Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gaming","postCount":null},{"id":"663caec830535e00012222f0","slug":"multiplayer-gaming","name":"Multiplayer Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/multiplayer-gaming","postCount":null},{"id":"663caec830535e00012222f2","slug":"playroom","name":"Playroom","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroom","postCount":null},{"id":"663caec830535e00012222f3","slug":"playroomkit","name":"PlayroomKit","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroomkit","postCount":null},{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},{"id":"663cb50730535e00012224b0","slug":"software-engineering","name":"Software Engineering","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/software-engineering","postCount":null}],"authors":[{"id":"66bb5cd17d904e0001e2c86f","slug":"maaz-tariq","name":"Maaz Tariq","bio":"Hi, I'm Maaz and I love making pictures out of squares","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/08/Headshot.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/08/Green-Minimalist-Watercolor-Background-Linkedin-Banner--1-.png","website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/maaz-tariq","postCount":null}]},{"id":"6634f88dd5128300018e7e96","uuid":"117bc5bc-c5a1-46ee-a8b1-dbf9a6d59f95","slug":"coming-soon","title":"This is ECHO.","excerpt":"Grayhat, world. World, Grayhat.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/coming-soon","featureImage":"https://images.unsplash.com/photo-1594922234647-4ade6282c369?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDE0fHxncmF5fGVufDB8fHx8MTcxNDg5MzkwNHww&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2024-05-05T12:00:00.000+05:00","updatedAt":"2025-05-19T02:58:56.000+05:00","readingTime":2,"featured":true,"visibility":"public","primaryTag":{"id":"663730f9057ddf00018e432f","slug":"notes","name":"Notes","description":"Some new announcement in Grayhat or ECHO, or a Founder's note.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/notes","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"663730f9057ddf00018e432f","slug":"notes","name":"Notes","description":"Some new announcement in Grayhat or ECHO, or a Founder's note.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/notes","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"6635fddb1e3c9f0001083625","uuid":"fb9c4497-a6a1-4da3-8db6-fbddc212e22b","slug":"building-a-unity-plugin-in-javascript","title":"Building a Unity Plugin in JavaScript","excerpt":"Make your JS Library compatible with Unity.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/building-a-unity-plugin-in-javascript","featureImage":"https://images.unsplash.com/photo-1617978441921-29f82b7aee2b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fHBvcnRhbHxlbnwwfHx8fDE3MTQ4MTQ0Mzl8MA&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2024-05-04T14:21:06.000+05:00","updatedAt":"2024-08-31T13:07:31.000+05:00","readingTime":6,"featured":true,"visibility":"members","primaryTag":{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},"primaryAuthor":{"id":"663cb56630535e00012224c5","slug":"mmntlh","name":"Talha Momin","bio":"Software Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/1666553753520.jpeg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/mmntlh","postCount":null},"tags":[{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},{"id":"663caec830535e00012222ec","slug":"gaming","name":"Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gaming","postCount":null},{"id":"663caec830535e00012222f0","slug":"multiplayer-gaming","name":"Multiplayer Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/multiplayer-gaming","postCount":null},{"id":"663cb50730535e00012224b0","slug":"software-engineering","name":"Software Engineering","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/software-engineering","postCount":null}],"authors":[{"id":"663cb56630535e00012224c5","slug":"mmntlh","name":"Talha Momin","bio":"Software Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/1666553753520.jpeg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/mmntlh","postCount":null}]},{"id":"663c751730535e00012221be","uuid":"8f1f1ddb-ceb8-44e7-ae9f-f623757d18d8","slug":"reject-cloud-return-to-onprem","title":"Reject Cloud, return to onprem","excerpt":"Make the Cloud Overlords tremble in fear with your half-baked SSH and Wake-on-LAN powered virtual machine emulator.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/reject-cloud-return-to-onprem","featureImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/rejectcloud.webp","featureImageAlt":null,"publishedAt":"2024-02-29T12:03:00.000+05:00","updatedAt":"2024-08-17T13:24:35.000+05:00","readingTime":6,"featured":true,"visibility":"public","primaryTag":{"id":"663cb50730535e00012224b0","slug":"software-engineering","name":"Software Engineering","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/software-engineering","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"663cb50730535e00012224b0","slug":"software-engineering","name":"Software Engineering","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/software-engineering","postCount":null},{"id":"663c75f030535e00012221db","slug":"cloud","name":"Cloud","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/cloud","postCount":null},{"id":"663c760330535e00012221e0","slug":"infrastructure","name":"Infrastructure","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/infrastructure","postCount":null},{"id":"663c760930535e00012221e5","slug":"devops","name":"DevOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/devops","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"68fe3be751eb5b0001ed69e1","uuid":"e59a0601-8173-4146-8b62-538d9690b55d","slug":"how-to-gsoc-lessons-from-my-open-source-journey","title":"How to GSoC: Lessons from my open source journey","excerpt":"From Google Summer of Code, to Grayhat.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/how-to-gsoc-lessons-from-my-open-source-journey","featureImage":"https://images.unsplash.com/photo-1633632799382-b8b3b141e632?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDEwfHxnb29nbGUlMjBzdW1tZXIlMjBvZiUyMGNvZGV8ZW58MHx8fHwxNzYxNDkzNzIzfDA&ixlib=rb-4.1.0&q=80&w=2000","featureImageAlt":null,"publishedAt":"2025-11-12T14:00:19.000+05:00","updatedAt":"2025-11-12T14:00:19.000+05:00","readingTime":5,"featured":false,"visibility":"public","primaryTag":{"id":"663ca79130535e0001222281","slug":"open-source","name":"Open Source","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source","postCount":null},"primaryAuthor":{"id":"68e9487861c36300010956bf","slug":"muhammad-haroon","name":"Muhammad Haroon","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/muhammad-haroon","postCount":null},"tags":[{"id":"663ca79130535e0001222281","slug":"open-source","name":"Open Source","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source","postCount":null},{"id":"663ca79130535e0001222282","slug":"open-source-community","name":"Open Source Community","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source-community","postCount":null},{"id":"68fe402351eb5b0001ed6a33","slug":"google","name":"Google","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/google","postCount":null},{"id":"68fe402351eb5b0001ed6a34","slug":"google-summer-of-code","name":"Google Summer of Code","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/google-summer-of-code","postCount":null}],"authors":[{"id":"68e9487861c36300010956bf","slug":"muhammad-haroon","name":"Muhammad Haroon","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/muhammad-haroon","postCount":null}]},{"id":"66fa8131b5a81300014a9a05","uuid":"f999b9ab-6564-40fb-aa77-5d6030256584","slug":"reflections-from-executing-a-design-sprint","title":"Reflections from executing a Design Sprint","excerpt":"How we (partially) applied the Google Design Sprint Kit in a project, and its reflections.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/reflections-from-executing-a-design-sprint","featureImage":"https://images.unsplash.com/photo-1727412800268-309a3c7343d7?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8YWxsfDEzfHx8fHx8fHwxNzI3NjkyMjk0fA&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2025-10-30T14:00:46.000+05:00","updatedAt":"2025-10-30T14:00:46.000+05:00","readingTime":5,"featured":false,"visibility":"public","primaryTag":{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},"primaryAuthor":{"id":"663c6ea030535e00012221ac","slug":"aniqa-sadaf","name":"Aniqa Sadaf","bio":"Product Designer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/1706709044867.jpeg","coverImage":null,"website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/aniqa-sadaf","postCount":null},"tags":[{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},{"id":"663cb5b530535e00012224ca","slug":"product-design","name":"Product Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/product-design","postCount":null},{"id":"663cad3730535e00012222d4","slug":"ui","name":"UI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ui","postCount":null},{"id":"663cad3730535e00012222d5","slug":"ux","name":"UX","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ux","postCount":null}],"authors":[{"id":"663c6ea030535e00012221ac","slug":"aniqa-sadaf","name":"Aniqa Sadaf","bio":"Product Designer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/1706709044867.jpeg","coverImage":null,"website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/aniqa-sadaf","postCount":null}]},{"id":"68f4d92051eb5b0001ed67ea","uuid":"91a49197-8cda-4db2-9b45-fd8e8da936f0","slug":"fixing-a-next-js-documentation-issue","title":"Fixing a Next.js Documentation Issue","excerpt":"How a small bug in the MSW example led me to contribute my first merged PR to Next.js, and what it taught me about open source.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/fixing-a-next-js-documentation-issue","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/10/generation-78d5d5f1-488f-49de-bafb-bbbcbdf4dd89.png","featureImageAlt":null,"publishedAt":"2025-10-24T18:22:25.000+05:00","updatedAt":"2025-10-24T18:31:40.000+05:00","readingTime":4,"featured":false,"visibility":"public","primaryTag":{"id":"663ca79130535e0001222281","slug":"open-source","name":"Open Source","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source","postCount":null},"primaryAuthor":{"id":"663f2fdd30535e00012227a6","slug":"hamadullah","name":"Hamad Ullah","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/rat1_0629_t600.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/hamadullah","postCount":null},"tags":[{"id":"663ca79130535e0001222281","slug":"open-source","name":"Open Source","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source","postCount":null},{"id":"663ca79130535e0001222284","slug":"vercel","name":"Vercel","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/vercel","postCount":null},{"id":"663cac9230535e00012222b8","slug":"next-js","name":"Next.js","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/next-js","postCount":null},{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},{"id":"663ca79130535e0001222282","slug":"open-source-community","name":"Open Source Community","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source-community","postCount":null}],"authors":[{"id":"663f2fdd30535e00012227a6","slug":"hamadullah","name":"Hamad Ullah","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/rat1_0629_t600.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/hamadullah","postCount":null}]},{"id":"680a1a4e6042f00001e72497","uuid":"dd5d8fae-fc40-4a67-a722-cb799b7c38cc","slug":"mastra-mcp-ai-hackathon-and-the-illegal-agents-pivot","title":"Mastra MCP AI Hackathon, and the Illegal Agents pivot","excerpt":"We kicked off April with the first-ever Mastra MCP Hackathon, focused on creating custom MCPs with Illegal Agents. This lead to Illegal Agents pivoting towards the metaverse.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/mastra-mcp-ai-hackathon-and-the-illegal-agents-pivot","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/banner-squarish.png","featureImageAlt":null,"publishedAt":"2025-05-10T10:49:00.000+05:00","updatedAt":"2025-05-19T02:02:01.000+05:00","readingTime":5,"featured":false,"visibility":"public","primaryTag":{"id":"663ca5e730535e0001222218","slug":"ai","name":"AI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ai","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"663ca5e730535e0001222218","slug":"ai","name":"AI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ai","postCount":null},{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},{"id":"681c7797c264220001aeb2f4","slug":"agents","name":"Agents","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/agents","postCount":null},{"id":"663ca5e730535e0001222216","slug":"llms","name":"LLMs","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/llms","postCount":null},{"id":"663ca79230535e0001222285","slug":"innovation","name":"Innovation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/innovation","postCount":null},{"id":"663698e2b6900b00019b644b","slug":"artificial-intelligence","name":"Artificial Intelligence","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/artificial-intelligence","postCount":null},{"id":"680f85e4c264220001aeb2a6","slug":"announcements","name":"Announcements","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/announcements","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},{"id":"663c9c4a30535e00012221ee","slug":"talal","name":"Talal Ahmed Khan","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/04/TalalAhmedKhan_FastIsb_Upwork.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/talal","postCount":null}]},{"id":"681c7a55c264220001aeb2fe","uuid":"e98c21ce-bff1-4f31-827c-e9a0bc923054","slug":"grayhat-at-comppec-2025","title":"Grayhat at COMPPEC 2025","excerpt":"We always love a place where nerds love to build - no extra fluff. Here's Usama Rashid's narrative on the events which unfolded.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/grayhat-at-comppec-2025","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/WhatsApp-Image-2025-05-09-at-11.42.16.jpeg","featureImageAlt":null,"publishedAt":"2025-05-09T11:56:38.000+05:00","updatedAt":"2025-05-09T11:56:38.000+05:00","readingTime":5,"featured":false,"visibility":"public","primaryTag":{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},"primaryAuthor":{"id":"66bf77558f24d00001360899","slug":"usama-rashid","name":"Muhammad Usama Rashid","bio":"Technical Project Manager with 4+ years in defense and tech sectors. Expert in Agile, SDLC, and stakeholder management. Award-winning communicator with a flair for creative problem-solving.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Potential-DP.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/usama-rashid","postCount":null},"tags":[{"id":"680f85e4c264220001aeb2a5","slug":"events","name":"Events","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/events","postCount":null},{"id":"663cb3da30535e00012223e2","slug":"recruitment","name":"Recruitment","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/recruitment","postCount":null},{"id":"663ca5e730535e0001222218","slug":"ai","name":"AI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ai","postCount":null}],"authors":[{"id":"66bf77558f24d00001360899","slug":"usama-rashid","name":"Muhammad Usama Rashid","bio":"Technical Project Manager with 4+ years in defense and tech sectors. Expert in Agile, SDLC, and stakeholder management. Award-winning communicator with a flair for creative problem-solving.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Potential-DP.jpg","coverImage":null,"website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/usama-rashid","postCount":null}]},{"id":"67a84822ddc5ba0001eb0a9f","uuid":"ef463a1f-71a5-4e34-b498-a38869464f3d","slug":"how-to-apply-to-grayhat-for-gsoc-2025","title":"How to apply to Grayhat for GSoC 2025","excerpt":"💡Note: We were not able to make the cut for the GSoC (Google Summer of Code) program this year. We will still, however, be conducting open-source projects for students internationally.\n\nApply to our internship program here: Grayhat Summer Internship - 2025","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/how-to-apply-to-grayhat-for-gsoc-2025","featureImage":null,"featureImageAlt":null,"publishedAt":"2025-02-09T11:16:34.000+05:00","updatedAt":"2025-05-12T01:53:16.000+05:00","readingTime":null,"featured":false,"visibility":"public","primaryTag":null,"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"6645138a5fda9b0001212461","uuid":"9e6fae4b-d903-4c73-8102-6add19d2e3d4","slug":"is-crypto-dead-an-analysis","title":"Is Crypto dead? (An analysis)","excerpt":"Took me quite some days to dive deep into the crypto world. Read more to find out.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/is-crypto-dead-an-analysis","featureImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/46b5019c-9737-415f-8e05-aed28bb8a87c.webp","featureImageAlt":null,"publishedAt":"2024-05-16T00:58:33.000+05:00","updatedAt":"2024-05-16T00:58:33.000+05:00","readingTime":null,"featured":false,"visibility":"public","primaryTag":{"id":"663ca79230535e0001222285","slug":"innovation","name":"Innovation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/innovation","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"663ca79230535e0001222285","slug":"innovation","name":"Innovation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/innovation","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"6637cbfb198011000156533c","uuid":"ca5690d9-4fa0-4df6-a4db-a28f0655a548","slug":"python-vs-mojo-are-we-there-yet","title":"Python vs Mojo: Are we there yet?","excerpt":"Hey there! I am new to both Python and Mojo languages. In this repository, I went on a mission to explore and compare these two languages from scratch, knowing only the basics of programming (I started off knowing only the basics of C++).\n\nAs I continue learning both languages, I'll be tracking my progress and updating the benchmarks in the following repository. Do give it a star ⭐️: https://github.com/grayhatdevelopers/mojo-vs-python-benchmarks/\n\n\nWhy did I do it?\n\nI've always wanted to explore","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/python-vs-mojo-are-we-there-yet","featureImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/pythonvmojo2.webp","featureImageAlt":null,"publishedAt":"2024-05-05T23:21:29.000+05:00","updatedAt":"2024-05-14T14:37:15.000+05:00","readingTime":11,"featured":false,"visibility":"public","primaryTag":null,"primaryAuthor":{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null},"tags":[],"authors":[{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null}]},{"id":"6635c81bf7bfd0000171c34f","uuid":"6df61bc3-dd09-4fa0-96bb-0d3e09d6abad","slug":"create-multiplayer-web-games-faster","title":"Create Multiplayer Web Games, Faster","excerpt":"We built a React/Vite-powered game engine, powered by Playroom.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/create-multiplayer-web-games-faster","featureImage":"https://images.unsplash.com/photo-1714652233130-5618e3384f3f?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8YWxsfDEwfHx8fHx8Mnx8MTcxNDgxMzQzMHw&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2024-05-04T10:31:32.000+05:00","updatedAt":"2024-08-31T13:41:49.000+05:00","readingTime":2,"featured":false,"visibility":"public","primaryTag":{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},"primaryAuthor":{"id":"663868d5316cc4000177290f","slug":"nasirabdullahsyed","name":"Syed Abdullah Nasir","bio":"Software Engineer 1 at Grayhat. Making cool shit since 2023. \n\nMedium blog: medium.com/@nasirabdullahsyed ","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/image.webp","coverImage":null,"website":"https://syedabdullahnasir.vercel.app","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/nasirabdullahsyed","postCount":null},"tags":[{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},{"id":"663caec830535e00012222f0","slug":"multiplayer-gaming","name":"Multiplayer Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/multiplayer-gaming","postCount":null},{"id":"663caec830535e00012222ec","slug":"gaming","name":"Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gaming","postCount":null},{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},{"id":"66431c925fda9b0001212442","slug":"developer-tools","name":"Developer Tools","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/developer-tools","postCount":null}],"authors":[{"id":"663868d5316cc4000177290f","slug":"nasirabdullahsyed","name":"Syed Abdullah Nasir","bio":"Software Engineer 1 at Grayhat. Making cool shit since 2023. \n\nMedium blog: medium.com/@nasirabdullahsyed ","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/image.webp","coverImage":null,"website":"https://syedabdullahnasir.vercel.app","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/nasirabdullahsyed","postCount":null}]},{"id":"6635fe241e3c9f000108362f","uuid":"ef183434-8d93-400e-8b73-66d79206b3e9","slug":"the-rise-of-the-full-stack-designer","title":"The rise of the Full Stack Designer","excerpt":"Design the future.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/the-rise-of-the-full-stack-designer","featureImage":"https://images.unsplash.com/photo-1649307008469-2cf0dfe23134?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDIxfHxjeWJvcmd8ZW58MHx8fHwxNzE0ODE0NTQxfDA&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2023-12-19T14:21:00.000+05:00","updatedAt":"2024-05-13T16:30:26.000+05:00","readingTime":5,"featured":false,"visibility":"public","primaryTag":{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},"primaryAuthor":{"id":"6641eb9230535e00012227aa","slug":"muhid","name":"Muhid Abid","bio":null,"profileImage":"https://www.gravatar.com/avatar/d6ed6533584ae3cf6b8ba3f96ebd89c9?s=250&r=x&d=mp","coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/muhid","postCount":null},"tags":[{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},{"id":"663698e2b6900b00019b644b","slug":"artificial-intelligence","name":"Artificial Intelligence","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/artificial-intelligence","postCount":null}],"authors":[{"id":"6641eb9230535e00012227aa","slug":"muhid","name":"Muhid Abid","bio":null,"profileImage":"https://www.gravatar.com/avatar/d6ed6533584ae3cf6b8ba3f96ebd89c9?s=250&r=x&d=mp","coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/muhid","postCount":null}]},{"id":"663ca2eb30535e00012221f5","uuid":"1ec1ad4f-903a-4fee-abc1-c828f7daa458","slug":"automatons-and-ai-for-javascript-junkies","title":"Automatons and AI for JavaScript Junkies","excerpt":"Automatons are the forerunners to AI, but don’t underestimate them. They’re cheap, fast, predictable, and do their job perfectly.\n\nWhat’s the difference? Both AI and Automatons branch out from the Theory of Automata, which is a foundational concept of computing. It sees the world as consequences and actions (in their terminology, “states” and “transitions”). Automatons start off very simple; they carry out tasks in a deterministic fashion. Consider it like a branch of finite possibilities, and a","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/automatons-and-ai-for-javascript-junkies","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-12-11T15:28:00.000+05:00","updatedAt":"2024-05-09T16:25:01.000+05:00","readingTime":4,"featured":false,"visibility":"public","primaryTag":{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},{"id":"663ca5e730535e0001222216","slug":"llms","name":"LLMs","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/llms","postCount":null},{"id":"663ca5e730535e0001222217","slug":"automation","name":"Automation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/automation","postCount":null},{"id":"663ca5e730535e0001222218","slug":"ai","name":"AI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ai","postCount":null},{"id":"663ca5e730535e0001222219","slug":"automata","name":"Automata","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/automata","postCount":null},{"id":"663ca5e730535e000122221a","slug":"automationsolutions","name":"Automationsolutions","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/automationsolutions","postCount":null},{"id":"663ca5e730535e000122221b","slug":"bots","name":"Bots","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/bots","postCount":null},{"id":"663ca5e730535e000122221c","slug":"meta","name":"Meta","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/meta","postCount":null},{"id":"663ca5e730535e000122221d","slug":"whatsapp","name":"WhatsApp","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/whatsapp","postCount":null},{"id":"663698e2b6900b00019b644b","slug":"artificial-intelligence","name":"Artificial Intelligence","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/artificial-intelligence","postCount":null},{"id":"663ca5e730535e000122221e","slug":"xstate","name":"xstate","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/xstate","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"663ca65a30535e0001222277","uuid":"8a2b078f-d37a-400f-90fe-dd1749b1217e","slug":"secure-your-ship","title":"Secure your ship","excerpt":"In the fast-paced world of modern web development, where tools like Vercel, Checkly, Mixpanel, and Hotjar have revolutionized workflows, it's easy to focus on the efficiency gains these platforms bring while inadvertently neglecting a critical aspect—security. As development teams expand and diversify their skill sets, the boundaries of projects expand exponentially. With more contributors, integrations, and code to manage, the attack surface grows significantly, amplifying the potential risks.\n","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/secure-your-ship","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-10-25T15:36:00.000+05:00","updatedAt":"2024-05-10T13:49:03.000+05:00","readingTime":3,"featured":false,"visibility":"public","primaryTag":{"id":"663ca79130535e000122227f","slug":"supply-chain-security","name":"Supply Chain Security","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/supply-chain-security","postCount":null},"primaryAuthor":{"id":"663cd94130535e00012226aa","slug":"asfand","name":"Asfand Yar","bio":"Software Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Screenshot-2025-05-12-at-15.08.56.png","coverImage":null,"website":null,"location":"Kotli, Azad Jammu and Kashmir","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/asfand","postCount":null},"tags":[{"id":"663ca79130535e000122227f","slug":"supply-chain-security","name":"Supply Chain Security","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/supply-chain-security","postCount":null},{"id":"663ca79130535e0001222280","slug":"npm","name":"NPM","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/npm","postCount":null},{"id":"663ca79130535e0001222281","slug":"open-source","name":"Open Source","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source","postCount":null},{"id":"663ca79130535e0001222282","slug":"open-source-community","name":"Open Source Community","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/open-source-community","postCount":null},{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},{"id":"663ca79130535e0001222283","slug":"typescript","name":"Typescript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/typescript","postCount":null},{"id":"663ca79130535e0001222284","slug":"vercel","name":"Vercel","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/vercel","postCount":null},{"id":"663ca79230535e0001222285","slug":"innovation","name":"Innovation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/innovation","postCount":null},{"id":"663ca79230535e0001222286","slug":"tech","name":"Tech","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/tech","postCount":null}],"authors":[{"id":"663cd94130535e00012226aa","slug":"asfand","name":"Asfand Yar","bio":"Software Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Screenshot-2025-05-12-at-15.08.56.png","coverImage":null,"website":null,"location":"Kotli, Azad Jammu and Kashmir","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/asfand","postCount":null}]},{"id":"66373ddc1980110001565279","uuid":"21c3d9c0-1112-4a86-8a89-9a195f096948","slug":"sign-in-with-adobe-in-a-next-js-app","title":"Sign in with Adobe in a Next.js App","excerpt":"Use the power of Adobe to authenticate your Next app.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/sign-in-with-adobe-in-a-next-js-app","featureImage":"https://images.unsplash.com/photo-1626785774625-ddcddc3445e9?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDR8fGFkb2JlfGVufDB8fHx8MTcxNDg5NjM5NXww&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2023-10-20T13:07:00.000+05:00","updatedAt":"2024-08-31T13:42:30.000+05:00","readingTime":3,"featured":false,"visibility":"members","primaryTag":{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},{"id":"663cac9230535e00012222b8","slug":"next-js","name":"Next.js","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/next-js","postCount":null},{"id":"663cac9230535e00012222b3","slug":"nextauth","name":"NextAuth","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/nextauth","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"663cacaa30535e00012222c8","uuid":"a960cddc-481f-4556-a2c9-7298ae251ae6","slug":"building-blazingly-fast-with-material-design","title":"Building Blazingly Fast with Material Design","excerpt":"In our fast-evolving world of web and mobile design, it's essential to stay in sync with cutting-edge design ideas. At the forefront of this design revolution lies Google's Material Design – a beautiful blend of precision, functionality, and visual charm. But what's the magic behind it for developers and designers? Beyond its eye-catching visuals, Material Design gives your projects wings, propelling them into captivating user experiences.\n\nI’ve been recently working on a project that, for some ","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/building-blazingly-fast-with-material-design","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-10-13T16:01:00.000+05:00","updatedAt":"2024-05-09T16:23:02.000+05:00","readingTime":5,"featured":false,"visibility":"public","primaryTag":{"id":"663cad3730535e00012222d2","slug":"material-ui","name":"Material UI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/material-ui","postCount":null},"primaryAuthor":{"id":"663caf9930535e0001222308","slug":"wasif","name":"Wasif Sadiq","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Screenshot-2025-05-12-at-15.11.54.png","coverImage":null,"website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/wasif","postCount":null},"tags":[{"id":"663cad3730535e00012222d2","slug":"material-ui","name":"Material UI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/material-ui","postCount":null},{"id":"663cad3730535e00012222d3","slug":"flutter","name":"Flutter","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/flutter","postCount":null},{"id":"663cad3730535e00012222d4","slug":"ui","name":"UI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ui","postCount":null},{"id":"663cad3730535e00012222d5","slug":"ux","name":"UX","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ux","postCount":null},{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null}],"authors":[{"id":"663caf9930535e0001222308","slug":"wasif","name":"Wasif Sadiq","bio":"Associate Software Engineer at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Screenshot-2025-05-12-at-15.11.54.png","coverImage":null,"website":null,"location":"Rawalpindi, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/wasif","postCount":null}]},{"id":"663cad5030535e00012222e1","uuid":"1717008b-1620-4f2c-8d0a-95ed9e305814","slug":"build-games-in-swift","title":"Build games in Swift","excerpt":"Going down the memory lane of child play, I think of the days when the world seemed so much bigger from a little boy’s eyes playing Temple Run on a borrowed iPhone - a work of enormous wonderment. Lost in the labyrinth of my favourite video game, I yearned to be part of its magical universe. A single thought endlessly echoed in my mind: \"How is this game created? I want to make games like this!\"\n\nAs the years passed and I grew, it was no surprise that I found myself on the path of a developer. W","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/build-games-in-swift","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-09-27T16:07:00.000+05:00","updatedAt":"2024-05-14T13:13:06.000+05:00","readingTime":4,"featured":false,"visibility":"public","primaryTag":{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},"primaryAuthor":{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null},"tags":[{"id":"663698e2b6900b00019b6449","slug":"development","name":"Development","description":"Coding, architectures, stacks and more. Build like a Grayhatter.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/development","postCount":null},{"id":"663caec830535e00012222ec","slug":"gaming","name":"Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gaming","postCount":null},{"id":"663caec830535e00012222ed","slug":"swift","name":"Swift","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/swift","postCount":null},{"id":"663caec830535e00012222ee","slug":"apple","name":"Apple","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/apple","postCount":null},{"id":"663caec830535e00012222ef","slug":"apple-developer","name":"Apple Developer","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/apple-developer","postCount":null},{"id":"663caec830535e00012222f0","slug":"multiplayer-gaming","name":"Multiplayer Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/multiplayer-gaming","postCount":null},{"id":"663caec830535e00012222f1","slug":"ios","name":"iOS","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ios","postCount":null},{"id":"663caec830535e00012222f2","slug":"playroom","name":"Playroom","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroom","postCount":null},{"id":"663caec830535e00012222f3","slug":"playroomkit","name":"PlayroomKit","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroomkit","postCount":null}],"authors":[{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null}]},{"id":"663cb35130535e00012223d6","uuid":"2ea7db4b-662c-41f3-8ed7-ace39a9010b8","slug":"i-feel-blue-unveiling-culture-fit-an-immortal-myth-of-recruitment","title":"I feel blue - Unveiling Culture Fit; An Immortal Myth of Recruitment","excerpt":"We often find ourselves widening the gyre of recruitment practices in pursuit of filling teams with the right fit – hitting all the right notes of skill set, personality, and value.\n\nThe quest to find the right fit to help us grow might as well get us on the path to make-believe land. Apologies for stumping on your bubble there, but as you run towards your familiar rock, you inadvertently overlook the diamond hidden in your path.\n\nCulturally-fit hiring strategies have set their roots deep in IT ","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/i-feel-blue-unveiling-culture-fit-an-immortal-myth-of-recruitment","featureImage":"https://images.unsplash.com/photo-1559727095-6fddea73d7ab?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fFBpY2Fzc298ZW58MHx8fHwxNzQ1ODY4MDczfDA&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2023-09-15T16:29:00.000+05:00","updatedAt":"2025-04-29T00:21:29.000+05:00","readingTime":3,"featured":false,"visibility":"public","primaryTag":{"id":"663cb3da30535e00012223e2","slug":"recruitment","name":"Recruitment","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/recruitment","postCount":null},"primaryAuthor":{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null},"tags":[{"id":"663cb3da30535e00012223e2","slug":"recruitment","name":"Recruitment","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/recruitment","postCount":null},{"id":"663cb3da30535e00012223e3","slug":"culture-add","name":"Culture Add","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/culture-add","postCount":null},{"id":"663cb3da30535e00012223e4","slug":"company-culture","name":"Company Culture","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/company-culture","postCount":null},{"id":"663cb3da30535e00012223e5","slug":"recruitment-strategies","name":"Recruitment Strategies","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/recruitment-strategies","postCount":null},{"id":"663cb3da30535e00012223e6","slug":"cultura","name":"Cultura","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/cultura","postCount":null}],"authors":[{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null}]},{"id":"663cb47a30535e0001222476","uuid":"78782192-13f1-40b4-befd-cbfc67ae9a5c","slug":"the-evolution-of-secops-devops-devsecops-gitops-and-developer-experience","title":"The Evolution of SecOps, DevOps, DevSecOps, GitOps, and Developer Experience","excerpt":"In the fast-paced world of software development, staying ahead of the curve is essential. As build times shorten, Sprint cycles shorten, and remote culture rises, the management of the Software Development Lifecycle is rapidly being transferred from the hands of managers into the hands of developers themselves.\n\nAuditing by a manager is no longer a one-time thing; metrics of software quality like security, performance, code quality, and testing have been delegated to the developers themselves. T","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/the-evolution-of-secops-devops-devsecops-gitops-and-developer-experience","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-09-06T16:34:00.000+05:00","updatedAt":"2024-05-09T16:35:52.000+05:00","readingTime":3,"featured":false,"visibility":"public","primaryTag":{"id":"663c760930535e00012221e5","slug":"devops","name":"DevOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/devops","postCount":null},"primaryAuthor":{"id":"663868d5316cc4000177290f","slug":"nasirabdullahsyed","name":"Syed Abdullah Nasir","bio":"Software Engineer 1 at Grayhat. Making cool shit since 2023. \n\nMedium blog: medium.com/@nasirabdullahsyed ","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/image.webp","coverImage":null,"website":"https://syedabdullahnasir.vercel.app","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/nasirabdullahsyed","postCount":null},"tags":[{"id":"663c760930535e00012221e5","slug":"devops","name":"DevOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/devops","postCount":null},{"id":"663cb50730535e00012224ae","slug":"gitops","name":"GitOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gitops","postCount":null},{"id":"663cb50730535e00012224af","slug":"secops","name":"SecOps","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/secops","postCount":null},{"id":"663cb50730535e00012224b0","slug":"software-engineering","name":"Software Engineering","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/software-engineering","postCount":null}],"authors":[{"id":"663868d5316cc4000177290f","slug":"nasirabdullahsyed","name":"Syed Abdullah Nasir","bio":"Software Engineer 1 at Grayhat. Making cool shit since 2023. \n\nMedium blog: medium.com/@nasirabdullahsyed ","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/image.webp","coverImage":null,"website":"https://syedabdullahnasir.vercel.app","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/nasirabdullahsyed","postCount":null}]},{"id":"663cb53c30535e00012224bd","uuid":"f65f2895-8b6c-458b-b34c-11ac9d714b37","slug":"design-to-scale","title":"Design to Scale","excerpt":"Look beyond tech, trends, and fancy buzzwords; look back to humans.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/design-to-scale","featureImage":"https://images.unsplash.com/photo-1679237686712-a71949f4b5b1?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI1fHxleWUlMjByYWluYm93fGVufDB8fHx8MTcyMzg4Mjg5N3ww&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2023-08-23T16:37:00.000+05:00","updatedAt":"2024-08-17T13:22:00.000+05:00","readingTime":3,"featured":false,"visibility":"public","primaryTag":{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},{"id":"663cad3730535e00012222d4","slug":"ui","name":"UI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ui","postCount":null},{"id":"663cad3730535e00012222d5","slug":"ux","name":"UX","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ux","postCount":null},{"id":"663cb5b530535e00012224ca","slug":"product-design","name":"Product Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/product-design","postCount":null},{"id":"663cb5b530535e00012224cb","slug":"system-design","name":"System Design","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/system-design","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null}]},{"id":"663cb60030535e00012224da","uuid":"fcb1f60b-b27b-456b-a47d-1d722ff26806","slug":"we-built-a-multiplayer-web-based-mario-like-game-with-playroomkit-in-7-days","title":"We built a multiplayer, web-based Mario-like game with PlayroomKit... in 7 days!","excerpt":"How we transformed an open-source single-player game to multiplayer.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/we-built-a-multiplayer-web-based-mario-like-game-with-playroomkit-in-7-days","featureImage":"https://ghost.coldpeak.co/echo/content/images/2025/10/cute-Kirby-leaving-the-club-at-night.webp","featureImageAlt":null,"publishedAt":"2023-08-09T16:51:00.000+05:00","updatedAt":"2025-10-12T20:37:37.000+05:00","readingTime":5,"featured":false,"visibility":"public","primaryTag":{"id":"663caec830535e00012222f0","slug":"multiplayer-gaming","name":"Multiplayer Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/multiplayer-gaming","postCount":null},"primaryAuthor":{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},"tags":[{"id":"663caec830535e00012222f0","slug":"multiplayer-gaming","name":"Multiplayer Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/multiplayer-gaming","postCount":null},{"id":"663caec830535e00012222f2","slug":"playroom","name":"Playroom","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroom","postCount":null},{"id":"663caec830535e00012222f3","slug":"playroomkit","name":"PlayroomKit","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/playroomkit","postCount":null},{"id":"663caec830535e00012222ec","slug":"gaming","name":"Gaming","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/gaming","postCount":null},{"id":"663ca79230535e0001222285","slug":"innovation","name":"Innovation","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/innovation","postCount":null}],"authors":[{"id":"663732ba057ddf00018e433e","slug":"bazaz","name":"Saad Bazaz","bio":"CEO, Co-Founder at Grayhat. I invent, to build a better world.","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/me-3.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Hat_only_cover.png","website":"https://github.com/SaadBazaz","location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/bazaz","postCount":null},{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null}]},{"id":"663cb90430535e0001222562","uuid":"5e2da1ca-f861-4e88-a45d-072590b6a1b4","slug":"will-google-material-withstand-xr","title":"Will Google Material withstand XR?","excerpt":"How to Material You.","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/will-google-material-withstand-xr","featureImage":"https://images.unsplash.com/photo-1642427749670-f20e2e76ed8c?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDd8fGdvb2dsZSUyMG1hdGVyaWFsfGVufDB8fHx8MTcxNTI2MTUzOHww&ixlib=rb-4.0.3&q=80&w=2000","featureImageAlt":null,"publishedAt":"2023-07-20T16:55:00.000+05:00","updatedAt":"2024-05-09T18:32:34.000+05:00","readingTime":4,"featured":false,"visibility":"public","primaryTag":{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},"primaryAuthor":{"id":"663ccf8f30535e000122269c","slug":"muhammad","name":"Muhammad Munaf Ul Hassan","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/muhammad","postCount":null},"tags":[{"id":"663698e2b6900b00019b644a","slug":"design","name":"Design","description":"Ideas, inspiration, guides and more - With ❤️ from Grayhat's Design team.","featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/design","postCount":null},{"id":"663cb9dc30535e0001222572","slug":"vr","name":"VR","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/vr","postCount":null},{"id":"663cb9dc30535e0001222573","slug":"ar","name":"AR","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ar","postCount":null},{"id":"663cad3730535e00012222d4","slug":"ui","name":"UI","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/ui","postCount":null},{"id":"663cad3730535e00012222d3","slug":"flutter","name":"Flutter","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/flutter","postCount":null}],"authors":[{"id":"663ccf8f30535e000122269c","slug":"muhammad","name":"Muhammad Munaf Ul Hassan","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/muhammad","postCount":null}]},{"id":"663cba2930535e00012225bc","uuid":"a5637a0a-1270-4280-82a5-9a75f3ff54bf","slug":"css-clamp-a-paradigm-shift-in-responsive-web-design","title":"CSS Clamp: A Paradigm Shift in Responsive Web Design","excerpt":"In the ever-evolving world of web development, it's crucial to stay ahead of the curve. As developers, we continuously seek efficient solutions that simplify our workflows and enable us to create exceptional user experiences. CSS, with its vast array of properties and functionalities, has always posed a challenge for newcomers and seasoned professionals alike. However, the introduction of CSS clamp has revolutionized the landscape of responsive design. In this article, we will explore the remark","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/css-clamp-a-paradigm-shift-in-responsive-web-design","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-06-28T16:59:00.000+05:00","updatedAt":"2024-05-10T13:48:22.000+05:00","readingTime":3,"featured":false,"visibility":"public","primaryTag":{"id":"663cbad630535e00012225c8","slug":"css-3","name":"CSS 3","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/css-3","postCount":null},"primaryAuthor":{"id":"663cd94130535e00012226aa","slug":"asfand","name":"Asfand Yar","bio":"Software Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Screenshot-2025-05-12-at-15.08.56.png","coverImage":null,"website":null,"location":"Kotli, Azad Jammu and Kashmir","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/asfand","postCount":null},"tags":[{"id":"663cbad630535e00012225c8","slug":"css-3","name":"CSS 3","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/css-3","postCount":null},{"id":"663cbad630535e00012225c9","slug":"upskill","name":"Upskill","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/upskill","postCount":null},{"id":"663cbad630535e00012225ca","slug":"w3c","name":"W3C","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/w3c","postCount":null},{"id":"663cbad630535e00012225cb","slug":"css","name":"CSS","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/css","postCount":null}],"authors":[{"id":"663cd94130535e00012226aa","slug":"asfand","name":"Asfand Yar","bio":"Software Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2025/05/Screenshot-2025-05-12-at-15.08.56.png","coverImage":null,"website":null,"location":"Kotli, Azad Jammu and Kashmir","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/asfand","postCount":null}]},{"id":"663cbae530535e00012225d6","uuid":"cc8c6a7e-7516-47fc-9678-84272132f2d7","slug":"urlsession-a-journey-to-advanced-request-control-configuration","title":"URLSession: A journey to Advanced Request Control & Configuration","excerpt":"In iOS development, URLSession provides powerful capabilities for configuring network requests and exercising fine-grained control over their behavior. Let's explore some key aspects of request configuration and how you can leverage them in your app.\n\nCache Policies:\n\nURLSession allows you to define cache policies for your requests. Cache policies determine whether a response should be cached, and if so, how it should be used. Some of the most used policies are:\n\n * `URLRequest.CachePolicy.usePr","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/urlsession-a-journey-to-advanced-request-control-configuration","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-06-21T17:03:00.000+05:00","updatedAt":"2024-05-09T17:04:49.000+05:00","readingTime":2,"featured":false,"visibility":"public","primaryTag":{"id":"663caec830535e00012222ed","slug":"swift","name":"Swift","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/swift","postCount":null},"primaryAuthor":{"id":"663790f419801100015652e2","slug":"zohair","name":"Syed Zohair Abbas Hadi","bio":"Ikigai @ https://grayhat.com.pk  A professional surprised man\n\nSoftware Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Pic.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Grayhat-With-hat-copy.png","website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/zohair","postCount":null},"tags":[{"id":"663caec830535e00012222ed","slug":"swift","name":"Swift","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/swift","postCount":null},{"id":"663caec830535e00012222ef","slug":"apple-developer","name":"Apple Developer","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/apple-developer","postCount":null},{"id":"663caec830535e00012222ee","slug":"apple","name":"Apple","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/apple","postCount":null},{"id":"663cbbd430535e00012225e5","slug":"swift-advanced-url-sessions","name":"Swift Advanced URL Sessions","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/swift-advanced-url-sessions","postCount":null},{"id":"663cbbd430535e00012225e6","slug":"url-sessions","name":"URL Sessions","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/url-sessions","postCount":null}],"authors":[{"id":"663790f419801100015652e2","slug":"zohair","name":"Syed Zohair Abbas Hadi","bio":"Ikigai @ https://grayhat.com.pk  A professional surprised man\n\nSoftware Engineer 1 at Grayhat","profileImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Pic.jpeg","coverImage":"https://ghost.coldpeak.co/echo/content/images/2024/05/Grayhat-With-hat-copy.png","website":null,"location":"Islamabad, Pakistan","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/zohair","postCount":null}]},{"id":"663cbc0c30535e000122261b","uuid":"57898832-aca8-4889-a628-af8314634890","slug":"medusa-js-for-entrepreneurs-part-2-features","title":"Medusa.js for Entrepreneurs, Part 2: Features","excerpt":"Cloning the frontend, backend, and admin panel repositories results in a readily available template e-commerce application with all the basic user flows, from adding a product to a basket to placing and tracking orders. Furthermore, the administration panel has every capability imaginable for a template application.\n\nBelow is a brief description of all the major features ready to use in the Medusa template app:\n\n\nUser Side (Frontend)\n\nBelow are some of the prominent features readily available fo","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/medusa-js-for-entrepreneurs-part-2-features","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-06-14T17:06:00.000+05:00","updatedAt":"2024-05-09T17:07:12.000+05:00","readingTime":3,"featured":false,"visibility":"public","primaryTag":{"id":"663cbc6230535e0001222624","slug":"e-commerce","name":"E-Commerce","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/e-commerce","postCount":null},"primaryAuthor":{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null},"tags":[{"id":"663cbc6230535e0001222624","slug":"e-commerce","name":"E-Commerce","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/e-commerce","postCount":null},{"id":"663cbc6230535e0001222625","slug":"medusa","name":"Medusa","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/medusa","postCount":null},{"id":"663cbc6230535e0001222626","slug":"medusa-js","name":"Medusa.js","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/medusa-js","postCount":null},{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null}],"authors":[{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null}]},{"id":"663cbc8e30535e000122265c","uuid":"b1ae3cad-ad64-4a12-9ffd-59f7958d64ef","slug":"medusa-js-for-entrepreneurs-part-1-intro","title":"Medusa.js for entrepreneurs, Part 1: Intro","excerpt":"The world of e-commerce is experiencing unprecedented growth, with more businesses moving online each day to meet the demands of digital consumers. As the industry continues to evolve, the need for efficient, user-friendly, and powerful tools for creating e-commerce web applications has become more critical than ever.\n\nEnter MedusaJS: a powerful, open-source e-commerce platform that simplifies the process of building and managing an online store. In this blog, we'll explore the power of MedusaJS","url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/medusa-js-for-entrepreneurs-part-1-intro","featureImage":null,"featureImageAlt":null,"publishedAt":"2023-06-06T17:08:00.000+05:00","updatedAt":"2024-05-09T17:09:02.000+05:00","readingTime":2,"featured":false,"visibility":"public","primaryTag":{"id":"663cbc6230535e0001222625","slug":"medusa","name":"Medusa","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/medusa","postCount":null},"primaryAuthor":{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null},"tags":[{"id":"663cbc6230535e0001222625","slug":"medusa","name":"Medusa","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/medusa","postCount":null},{"id":"663cbc6230535e0001222626","slug":"medusa-js","name":"Medusa.js","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/medusa-js","postCount":null},{"id":"6635c02fa274a5000107e39f","slug":"javascript","name":"JavaScript","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/javascript","postCount":null},{"id":"663cbc6230535e0001222624","slug":"e-commerce","name":"E-Commerce","description":null,"featureImage":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/tag/e-commerce","postCount":null}],"authors":[{"id":"663cb11b30535e000122230c","slug":"anonymous","name":"Anonymous","bio":null,"profileImage":null,"coverImage":null,"website":null,"location":null,"url":"https://grayhat-company-blog.grayhatstudio.workers.dev/blog/author/anonymous","postCount":null}]}],"meta":{"count":35}}