\u003Cbr /> \u003Cimg width=\"502\" alt=\"Screen Shot 2022-03-25 at 2 57 18 PM\" src=\"https://user-images.githubusercontent.com/734428/160080618-1320d0f9-5674-4133-9a57-9fd7f6e77ce2.png\"> | **3m** \u003Cbr />\u003Cbr /> \u003Cimg width=\"498\" alt=\"Screen Shot 2022-03-25 at 2 54 50 PM\" src=\"https://user-images.githubusercontent.com/734428/160080718-4f3fad38-71e5-4793-a839-797a0f87b65e.png\">\r\nInstall Deps in Actions | [1m 25s](https://github.com/kodadot/nft-gallery/runs/5676422402?check_suite_focus=true#step:4:35) | [**28s**](https://github.com/kodadot/nft-gallery/runs/5687650302?check_suite_focus=true#step:6:467)\r\n\r\n\r\nimpressive time savings.\r\nCurious if you would be keen to write an article on how we've migrated from yarn to pnpm? \r\nSome people might find it interesting as we are still early! \r\nThis morning found friends deciding between npm and yarn 😅.\r\n\r\nWe are usually publishing at https://medium.com/kodadot :)\r\n\r\nIssue is reserved for @preschian \r\n\r\n_Originally posted by @yangwao in https://github.com/kodadot/nft-gallery/issues/2643#issuecomment-1078864547_\r\n\r\n### Ref \r\n- https://medium.com/pnpm/why-should-we-use-pnpm-75ca4bfe7d93#:~:text=pnpm%20is%20not%20only%20faster,them%20from%20the%20global%20store.\r\n- https://rushjs.io/pages/maintainer/package_managers/\r\n- https://blog.logrocket.com/javascript-package-managers-compared/\r\n- [What does make pnpm special?](https://twitter.com/moo9000/status/1507297097070043184)\r\n- PNPM is the only option that solves the [NPM doppelgangers](https://rushjs.io/pages/advanced/npm_doppelgangers/) problem. In a complex monorepo, doppelgangers sometimes cause a lot of trouble, so PNPM has an important advantage in this regard.\r\n- we can push KodaDot logo to https://pnpm.io/users",[1984,1987,1990],{"name":1985,"color":1986},"$$","0E8A16",{"name":1988,"color":1989},"p3","D4C5F9",{"name":1991,"color":1992},"A-writing-✍️","FBCA04",2671,"kodadot","nft-gallery","open","How we've migrated from yarn to pnpm","2023-05-18T11:23:54Z","https://github.com/kodadot/nft-gallery/issues/2671",0.7513768,{"description":2002,"labels":2003,"number":2009,"owner":1994,"repository":1995,"state":1996,"title":2010,"updated_at":2011,"url":2012,"score":2013},"### Is your feature request related to a problem?\n\nCurrently we see the all collections on Polkadot assethub in koda.art platform.\r\nThis is not nice because we would like to see only genart\n\n### Describe the solution you would like\n\nif you visit `(subdomain).koda.art` there should be a default filter applied for collection explore `{ kind_eq: genart }`\r\n\r\n```graphql\r\n{\r\n collectionEntities(where: { kind_eq: genart }) {\r\n id\r\n name\r\n kind\r\n meta {\r\n kind\r\n }\r\n }\r\n}\r\n```\n\n### Describe alternatives you have considered\n\nI have considered to add this also to NFTentities \r\nlmk @kodadot/internal-dev \r\n\r\nAlso this could be added as optional to existing queries so lmk if you need help with that\n\n### Screenshots\n\n\r\n\n\n### Are there opened related issues?\n\n- https://github.com/kodadot/ops-internal/issues/1912",[2004,2007],{"name":2005,"color":2006},"enhancement","a2eeef",{"name":2008,"color":1992},"A-explorer",10991,"Apply genart filter for Collections on koda.art","2024-10-05T15:29:02Z","https://github.com/kodadot/nft-gallery/issues/10991",0.77200645,{"description":2015,"labels":2016,"number":2026,"owner":1994,"repository":1995,"state":2027,"title":2028,"updated_at":2029,"url":2030,"score":2031},"We will be migrating pictures from Pinata for faster UX to Cloudflare Images/R2 or Netlify Large media\r\n\r\nIt's prior research how to do it best but I guess we already got written scrapper by @vikiival \r\n\r\nhttps://github.com/kodadot/nft-gallery/pull/1576#discussion_r774384969",[2017,2019,2021,2023],{"name":2018,"color":1992},"A-research",{"name":2020,"color":1989},"p2",{"name":2022,"color":1992},"A-nuxt",{"name":2024,"color":2025},"v2.2","6AC658",1594,"closed","Migrate pictures from Pinata to CDN","2022-02-02T11:06:52Z","https://github.com/kodadot/nft-gallery/issues/1594",0.703491,{"description":2033,"labels":2034,"number":2042,"owner":1994,"repository":1995,"state":2027,"title":2043,"updated_at":2044,"url":2045,"score":2046},"Hence there were unknown changes or at least on Basilisk we've noticed that after fresh minting things are not working. \r\nThus time to revisit the initial implementation of cf workers and how we have it in the current state.\r\n\r\nCurrently, the user pins stuff on Estuary, which we've found acting suboptimal as it's being stored on Filecoin (archive nodes(?) and retrieving through pinata gateway takes a long time (peering issues?). (Something has changed outside of our control, we are investigating, it till we are looking to mitigate it and make a more resilient and antifragile scenario) \r\n\r\n### Future proposed changes are \r\n- [x] #3358 temp hotfix\r\n- [ ] Pinning metadata on Pinata (as we are blazingly fast here for end-user experience) and rest pinning could be kept on Estuary -> We are pinning rn on NFT.storage and seems temporary hotfix is okay\r\n- [ ] At minting, we should push media to CF images (might not happen during BSX mints?)\r\n- [ ] At the new implementation, we would doesn't need durable objects at all and fetch images by IPFS hash from CF images to accelerate end-user experience while they browsing collections/explorer\r\n- [x] https://github.com/kodadot/nft-gallery/issues/3745\r\n- [x] https://github.com/kodadot/nft-gallery/issues/3296\r\n\r\n### Long-term goal\r\n\r\nCurrently, we are fairly doing close to 1TB on Pinata Gateway monthly as transfers for users and this would be an interesting way to offload as public goods for storage providers, like those around the Filecoin provider's circle\r\n\r\n### Suggested would be to recycle code from\r\n- https://github.com/kodadot/nft-gallery/blob/main/src-functions/pinJson.js \r\n- https://github.com/kodadot/workers/blob/master/pinning/src/lib.rs#L84\r\n\r\nTo make it work with Pinata directly from workers to pin JSON metadata there\r\n\r\nCheck the links below for more context \r\nLet's comment below if you want to thrill on this issue \r\n\r\n### Ref\r\n- https://github.com/kodadot/packages/issues/17\r\n- https://github.com/kodadot/workers/issues/7\r\n- https://github.com/kodadot/workers/issues/8\r\n- https://github.com/kodadot/nft-gallery/issues/3253\r\n- https://github.com/kodadot/bao/issues/10",[2035,2036,2037,2039],{"name":1985,"color":1986},{"name":2020,"color":1989},{"name":2038,"color":1992},"A-basilisk",{"name":2040,"color":2041},"chief","67EA1F",3334,"Rework current pinning & storage strategy","2023-02-08T11:21:12Z","https://github.com/kodadot/nft-gallery/issues/3334",0.7246414,{"description":2048,"labels":2049,"number":2050,"owner":1994,"repository":2051,"state":2027,"title":2052,"updated_at":2053,"url":2054,"score":2055},"Currently we are using Estuary.\r\nIt's good but we have to major issues:\r\n\r\n- [ ] data retrieval is slow\r\n- [ ] when estuary down we are basically fokked :)\r\n\r\n- kodadot/nft-gallery#3295\r\n\r\n",[],8,"workers","Implement pinata as the possible pinning service","2022-09-22T14:12:00Z","https://github.com/kodadot/workers/issues/8",0.73539,{"description":2057,"labels":2058,"number":2065,"owner":1994,"repository":1995,"state":2027,"title":2066,"updated_at":2067,"url":2068,"score":2069},"\r\n\r\n\r\nadded small text underneath the input, it should make more sense now and provide more information\r\n- when switched to USD as the input currency, this small text changes to DOT\r\n\r\n## Changes\r\n- balance context is now black instead of grey\r\n- added USD equivalent\r\n\r\n",[2059,2062,2063],{"name":2060,"color":2061},"UX first","7057ff",{"name":2020,"color":1989},{"name":2064,"color":1992},"A-offer",10998,"Visible second currency in the offer creation modal","2024-09-19T09:35:17Z","https://github.com/kodadot/nft-gallery/issues/10998",0.752704,{"description":2071,"labels":2072,"number":2077,"owner":1994,"repository":1995,"state":2027,"title":2078,"updated_at":2079,"url":2080,"score":2069},"### Context\r\n\r\nYou are able to create an offer for any item in the collection.\r\n\r\n",[2073,2076],{"name":2074,"color":2075},"design-request","9259A3",{"name":2064,"color":1992},11116,"Collection offer","2025-03-04T15:46:51Z","https://github.com/kodadot/nft-gallery/issues/11116",{"description":2082,"labels":2083,"number":2087,"owner":1994,"repository":1995,"state":2027,"title":2088,"updated_at":2089,"url":2090,"score":2091},"### What happened?\n\nLooks like estuary is timing out a connection to the gateway.\r\nIt would be nice to use pinata as a backup :))\n\n### Please reproduce in steps\n\nGo to ... Click on .... See error\n\n### Expected Behavior\n\nI've expected ...\n\n### What browsers are you seeing the problem on?\n\nChrome\n\n### Are you logged in?\n\nYes\n\n### At which address did you encounter bug?\n\nnft.kodadot.xyz / kodadot.xyz\n\n### Screenshots\n\n\u003Cimg width=\"811\" alt=\"Screenshot 2022-02-09 at 13 36 06\" src=\"https://user-images.githubusercontent.com/22471030/153202428-10c0afe3-9792-4dcf-b65f-ea2a88ec49f1.png\">\r\n\n\n### Relevant log output\n\n```shell\nPOST https://shuttle-4.estuary.tech/content/add net::ERR_TIMED_OUT\n```\n\n\n### Code of Conduct\n\n- [X] I agree to follow this project's Code of Conduct",[2084],{"name":2085,"color":2086},"bug","d73a4a",2305,"Use Pinata as backup pinning ","2022-07-18T12:26:34Z","https://github.com/kodadot/nft-gallery/issues/2305",0.7584908,{"description":2093,"labels":2094,"number":2098,"owner":1994,"repository":1995,"state":2027,"title":2099,"updated_at":2100,"url":2101,"score":2102},"We've got invited in Lisbon to use Estuary https://estuary.tech/\r\n\r\nBigger files and more reliable storage with more gateways than Pinata, we've bet it should be cheaper.",[2095,2096,2097],{"name":2020,"color":1989},{"name":2022,"color":1992},{"name":2024,"color":2025},963,"Integrate Estuary and use it instead Pinata","2022-01-19T10:50:41Z","https://github.com/kodadot/nft-gallery/issues/963",0.75851965,{"description":2104,"labels":2105,"number":2114,"owner":1994,"repository":1995,"state":2027,"title":2115,"updated_at":2116,"url":2117,"score":2118},"I would like to restrict image worker to have sort of host origin allowed only from \r\n- netlify previews\r\n- beta.kodadot.xyz\r\n- kodadot.xyz\r\n- dev environment / localhost\r\n\r\n\r\nSeems someone is running our fork for example under different domain:)\r\n\r\n_Originally posted by @yangwao in https://github.com/kodadot/nft-gallery/issues/4677#issuecomment-1380588875_\r\n ",[2106,2108,2109,2111],{"name":2107,"color":1986},"$",{"name":2020,"color":1989},{"name":2110,"color":1992},"A-worker",{"name":2112,"color":2113},"cloudflare","f6821e",4678,"Restrict host origin for Image Workers","2023-01-13T14:51:06Z","https://github.com/kodadot/nft-gallery/issues/4678",0.75881195,["Reactive",2120],{},["Set"],["ShallowReactive",2123],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"DUpfzE0t6Xb03eUq7i-zGlDybUHjIwdW_D_Kr3VCZSw":-1},"/kodadot/nft-gallery/1889"]