{"id":20924439,"url":"https://github.com/techmely/head","last_synced_at":"2026-01-05T01:16:54.736Z","repository":{"id":248097868,"uuid":"827354333","full_name":"techmely/head","owner":"techmely","description":"Simple solution's head manager built for performance and delightful DX","archived":false,"fork":false,"pushed_at":"2024-07-29T14:42:14.000Z","size":228,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-20T06:16:18.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/techmely.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-11T13:43:50.000Z","updated_at":"2024-07-29T14:38:16.000Z","dependencies_parsed_at":"2024-07-23T11:06:26.721Z","dependency_job_id":null,"html_url":"https://github.com/techmely/head","commit_stats":null,"previous_names":["techmely/head"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmely%2Fhead","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmely%2Fhead/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmely%2Fhead/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/techmely%2Fhead/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/techmely","download_url":"https://codeload.github.com/techmely/head/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244844531,"owners_count":20519790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T20:22:10.072Z","updated_at":"2026-01-05T01:16:54.703Z","avatar_url":"https://github.com/techmely.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Head Manager in SSR\n\nAn easy peasy lemon squeezy solution for management head in your server side.\n\n- Small bundle size\n- Super easy in DX, write head like you write object JS\n- Support auto sort head with logic of CapoJs to improve the website performance\n\n## How to use\n\n```bun\nbun install @techmely/head\n```\n\n```ts\nconst heads: Head[] = []\nconst headHtml = composeHeads(heads)\n```\n\n### Example\n\n```ts\nconst colorSchemeHeads = genColorSchemeHeads({\n  supportedColorSchemes: \"dark light\",\n  colorScheme: \"dark\",\n  themeColor: \"#00000\",\n});\nconst commonHeads = genCommonHeads({\n  viewport:\n    \"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\",\n  acceptCh: \"Accept, DPR, Viewport-Width, ECT, Width, Save-Data\",\n});\nconst faviconHeas = genFaviconHeads({\n  appleTouchIcon: \"/favicons/apple-touch-icon.png\",\n  icon: \"/favicons/favicon.ico\",\n  icon16: \"/favicons/favicon-16x16.png\",\n  icon32: \"/favicons/favicon-32x32.png\",\n  manifest: \"/favicons/site.webmanifest\",\n  maskIcon: \"/favicons/favicon-32x32.svg\",\n  msapplicationConfig: \"/favicons/browserconfig.xml\",\n});\nconst ogHeads = genOgHeads({\n  title: \"Title\",\n  description: \"Description\",\n  canonical: \"https://techmely.com\",\n  siteName: \"Techmely\",\n  thumbnail: \"https://techmely.com/thumbnail.webp\",\n});\n\nconst twitterHeads = genTwitterHeads({\n  title: \"Title\",\n  description: \"Description\",\n  siteContent: \"@techmely\",\n  thumbnail: \"https://techmely.com/thumbnail.webp\",\n});\n\nconst heads = Array.prototype.concat(\n  colorSchemeHeads,\n  commonHeads,\n  faviconHeas,\n  ogHeads,\n  twitterHeads,\n);\n\nconst headHtml = composeHead(heads);\nexpect(headHtml).toStrictEqual([\n  '\u003cmeta name=\"supported-color-schemes\" content=\"dark light\" /\u003e',\n  '\u003cmeta name=\"color-scheme\" content=\"dark\" /\u003e',\n  '\u003cmeta name=\"theme-color\" content=\"#00000\" /\u003e',\n  '\u003cmeta name=\"google\" content=\"notranslate\" /\u003e',\n  '\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" /\u003e',\n  '\u003cmeta charset=\"UTF-8\" /\u003e',\n  '\u003cmeta httpEquiv=\"Accept-CH\" content=\"Accept, DPR, Viewport-Width, ECT, Width, Save-Data\" /\u003e',\n  '\u003clink id=\"favicon\" rel=\"shortcut icon\" href=\"/favicons/favicon.ico\" /\u003e',\n  '\u003clink rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/favicons/apple-touch-icon.png\" /\u003e',\n  '\u003clink rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicons/favicon-32x32.png\" /\u003e',\n  '\u003clink rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicons/favicon-16x16.png\" /\u003e',\n  '\u003clink rel=\"mask-icon\" color=\"#21C3A9\" href=\"/favicons/favicon-32x32.svg\" /\u003e',\n  '\u003clink id=\"manifest\" rel=\"manifest\" href=\"/favicons/site.webmanifest\" /\u003e',\n  '\u003cmeta name=\"msapplication-config\" content=\"/favicons/browserconfig.xml\" /\u003e',\n  '\u003cmeta property=\"og:type\" content=\"website\" /\u003e',\n  '\u003cmeta property=\"og:url\" content=\"https://techmely.com\" /\u003e',\n  '\u003cmeta property=\"og:site_name\" content=\"Techmely\" /\u003e',\n  '\u003cmeta property=\"og:title\" content=\"Title\" /\u003e',\n  '\u003cmeta property=\"og:description\" content=\"Description\" /\u003e',\n  '\u003cmeta property=\"og:image\" content=\"https://techmely.com/thumbnail.webp\" /\u003e',\n  '\u003cmeta name=\"twitter:card\" content=\"summary_large_image\" /\u003e',\n  '\u003cmeta property=\"twitter:site\" content=\"@techmely\" /\u003e',\n  '\u003cmeta name=\"twitter:title\" content=\"Title\" /\u003e',\n  '\u003cmeta name=\"twitter:description\" content=\"Description\" /\u003e',\n  '\u003cmeta name=\"twitter:image\" content=\"https://techmely.com/thumbnail.webp\" /\u003e',\n]);\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechmely%2Fhead","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftechmely%2Fhead","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftechmely%2Fhead/lists"}