[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"creator:01M6D8BPME3YRMPW470YRKKTE3":3,"creator-list:01M6D8BPME3YRMPW470YRKKTE3:stars:1:":22},{"accountNo":4,"login":5,"displayName":6,"avatarUrl":7,"accountType":8,"accountTypeDesc":9,"profileDescription":10,"skillCount":11,"repoCount":12,"professionCount":13,"scenarioCount":14,"totalStars":13,"updatedAt":15,"htmlUrl":16,"blogUrl":17,"company":18,"location":19,"followersCount":20,"publicReposCount":21},"01M6D8BPME3YRMPW470YRKKTE3","shrinathsnayak","Shrinath Nayak","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19502016?v=4","USER","个人作者","Software Engineer",30,1,3,2,"2026-10-06 02:14:43","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak","https:\u002F\u002Fsnayak.dev",null,"Bengaluru, India",42,55,{"records":23,"total":11,"current":12,"size":238},[24,39,51,63,84,93,104,114,125,138,147,156,168,182,192,204,214,227],{"skillNo":25,"name":26,"nameZh":18,"description":27,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":31,"categories":32,"keywords":33,"publishedAt":38},"01M6D8DZ6P79XCXA5B9Z2EYB2W","whereami","Use when editing whereami. GET \u002Fwhereami returns request.cf (country, city, colo, etc.); no bindings.","shrinathsnayak\u002Fcloudflare-experiments","01M6D8BPSAKJ26YQJD7CA0YHNP","MIT","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwhereami\u002FSKILL.md",[],[26,34,35,36,37],"returns","editing","use","get","2026-11-10 10:12:30",{"skillNo":40,"name":41,"nameZh":18,"description":42,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":43,"categories":44,"keywords":45,"publishedAt":38},"01M6D8DWX5XRCTA5MJBXMQQ8VC","websocket-echo","Use when editing websocket-echo. GET \u002Fecho WebSocket upgrade; echoes messages.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwebsocket-echo\u002FSKILL.md",[],[46,47,48,49,35,36,50,37],"websocket","Echo","websocket echo","messages","upgrade",{"skillNo":52,"name":53,"nameZh":18,"description":54,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":38},"01M6D8DTBG6DGC7F5C8ZH0KJF6","website-to-llms-txt","Use when editing website-to-llms-txt. GET \u002Fllms.txt?url=; returns plain-text llms.txt format (title, description, links, contact); no bindings.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwebsite-to-llms-txt\u002FSKILL.md",[],[58,59,60,61,62,34,35,36,37],"llms","website","website to llms txt","format","text",{"skillNo":64,"name":65,"nameZh":18,"description":66,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":67,"categories":68,"keywords":79,"publishedAt":38},"01M6D8DR35Q6ZAGM1G7T1S6K3S","website-to-api","Use when editing website-to-api. GET \u002Fapi?url=; returns structured title, headings, links, images.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwebsite-to-api\u002FSKILL.md",[69,74],{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[59,80,81,34,35,36,82,83,37],"api","website to api","images","structured",{"skillNo":85,"name":86,"nameZh":18,"description":87,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":38},"01M6D8DNPGAYTPY4M6N6E381JF","website-metadata-extractor","Use when editing website-metadata-extractor. GET \u002Fmetadata?url=; extracts title, description, canonical, og tags.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwebsite-metadata-extractor\u002FSKILL.md",[],[91,59,92,35,36,37],"metadata","website metadata extractor",{"skillNo":94,"name":95,"nameZh":18,"description":96,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":38},"01M6D8DK34AE3W30DSXHZ5Q95T","website-devtools-inspector","Use when editing website-devtools-inspector. GET \u002Fdevtools?url=; headers, cookies, scripts, assets, metadata.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwebsite-devtools-inspector\u002FSKILL.md",[],[100,59,101,91,102,103,35,36,37],"devtools","website devtools inspector","cookies","assets",{"skillNo":105,"name":106,"nameZh":18,"description":107,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":38},"01M6D8DH2FSK7836BQC3T2MW6S","url-dns-lookup","Use when editing url-dns-lookup. GET \u002Fdns?url=; returns hostname and DNS records via DoH; no bindings.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Furl-dns-lookup\u002FSKILL.md",[],[111,112,113,34,35,36,37],"dns","lookup","url dns lookup",{"skillNo":115,"name":116,"nameZh":18,"description":117,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":38},"01M6D8DF1Y923BN3A9WMDBC3JF","task-queue","Use when editing task-queue. POST \u002Fenqueue, GET \u002Fstats; Queues producer\u002Fconsumer; KV stats.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Ftask-queue\u002FSKILL.md",[],[121,122,123,124,35,36,37],"queue","task","task queue","stats",{"skillNo":126,"name":127,"nameZh":18,"description":128,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":129,"categories":130,"keywords":133,"publishedAt":38},"01M6D8DCDW3B2VF12GWMYF5MEE","screenshot-api","Use when editing screenshot-api. GET \u002Fscreenshot?url=; Browser Rendering binding; returns PNG.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fscreenshot-api\u002FSKILL.md",[131,132],{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[134,80,135,136,137,34,35,36,37],"screenshot","screenshot api","browser","png",{"skillNo":139,"name":140,"nameZh":18,"description":141,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":38},"01M6D8DA3QDRKNZG5YFN1XXBW5","response-headers","Use when editing response-headers. GET \u002Fheaders?url=; inspect HTTP response headers.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fresponse-headers\u002FSKILL.md",[],[145,146,35,36,37],"response headers","http",{"skillNo":148,"name":149,"nameZh":18,"description":150,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":38},"01M6D8D7JNBQZJCNVG5VY2N31D","rendered-text","Use when editing rendered-text. GET \u002Ftext?url=; Browser Rendering DOM text extraction.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Frendered-text\u002FSKILL.md",[],[62,154,136,155,35,36,37],"rendered text","extraction",{"skillNo":157,"name":158,"nameZh":18,"description":159,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":38},"01M6D8D51SANXRA16W5SYCE0AN","r2-storage","Use when editing r2-storage. GET \u002Flist, GET\u002FPUT\u002FDELETE \u002Fobject; private and public R2 buckets; PUBLIC_BUCKET_URL for public URLs.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fr2-storage\u002FSKILL.md",[],[163,164,165,35,166,167,36,37],"storage","r2 storage","delete","public","list",{"skillNo":169,"name":170,"nameZh":18,"description":171,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":172,"categories":173,"keywords":179,"publishedAt":38},"01M6D8D28XQABENV4MWETW8S0E","pdf-api","Use when editing pdf-api. GET \u002Fpdf?url=; Browser Rendering; returns PDF.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fpdf-api\u002FSKILL.md",[174,177,178],{"categoryNo":175,"categoryName":176,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[180,80,181,136,34,35,36,37],"PDF","pdf api",{"skillNo":183,"name":184,"nameZh":18,"description":185,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":186,"categories":187,"keywords":188,"publishedAt":38},"01M6D8D0AVYWXRV32FTZSMMVY5","page-metrics","Use when editing page-metrics. GET \u002Fmetrics?url=; Browser Rendering page.metrics().","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fpage-metrics\u002FSKILL.md",[],[189,190,191,136,35,36,37],"metrics","page","page metrics",{"skillNo":193,"name":194,"nameZh":18,"description":195,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":38},"01M6D8CXWQ4JGQ78KG6DVRY4XE","link-shortener","Use when editing link-shortener. POST \u002Fshorten with { url }; GET \u002F:code redirects; D1 primary, KV read cache.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Flink-shortener\u002FSKILL.md",[],[199,200,201,35,202,36,203,37],"link shortener","code","cache","read","shorten",{"skillNo":205,"name":206,"nameZh":18,"description":207,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":208,"categories":209,"keywords":210,"publishedAt":38},"01M6D8CVFZCMDV901KB2A0YTXZ","kv-notes","Use when editing kv-notes. POST\u002FGET\u002FDELETE \u002Fnotes; Workers KV NOTES binding.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fkv-notes\u002FSKILL.md",[],[211,212,165,35,36,213,37],"notes","kv notes","workers",{"skillNo":215,"name":216,"nameZh":18,"description":217,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":218,"categories":219,"keywords":220,"publishedAt":38},"01M6D8CS488EABXW1T3B8S0PSS","is-it-down","Use when editing or extending the is-it-down experiment. Route GET \u002Fcheck?url=; returns reachability and response time; no bindings; stateless fetch.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fis-it-down\u002FSKILL.md",[],[221,34,35,222,223,36,224,225,226,37],"is it down","check","fetch","experiment","route","time",{"skillNo":228,"name":229,"nameZh":18,"description":230,"descriptionZh":18,"repositoryFullName":28,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":29,"starsCount":13,"licenseSpdxId":30,"licenseFileUrl":18,"sourceHtmlUrl":231,"categories":232,"keywords":233,"publishedAt":38},"01M6D8CPB3QT6ZM178QC1G46XA","github-repo-explainer","Use when editing github-repo-explainer. GET \u002Frepo?url=; GitHub API + Workers AI; binding AI.","https:\u002F\u002Fgithub.com\u002Fshrinathsnayak\u002Fcloudflare-experiments\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fgithub-repo-explainer\u002FSKILL.md",[],[234,235,236,237,80,35,36,213,37],"github","explainer","repo","github repo explainer",18]