{"id":18285492,"url":"https://github.com/bemit/create-amp-page","last_synced_at":"2026-03-06T00:31:10.483Z","repository":{"id":56824261,"uuid":"298637197","full_name":"bemit/create-amp-page","owner":"bemit","description":"Static site generator for AMP with Twig templates and a lot of config options.","archived":false,"fork":false,"pushed_at":"2022-06-14T12:19:56.000Z","size":1526,"stargazers_count":2,"open_issues_count":8,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-23T23:00:04.875Z","etag":null,"topics":["amp","frontmatter","gulp","html-renderer","sass","ssr","static-site","static-site-generator","template-engine","twig","twigjs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bemit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-25T17:23:38.000Z","updated_at":"2022-07-02T04:15:31.000Z","dependencies_parsed_at":"2022-09-01T09:20:24.811Z","dependency_job_id":null,"html_url":"https://github.com/bemit/create-amp-page","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/bemit/create-amp-page","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemit%2Fcreate-amp-page","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemit%2Fcreate-amp-page/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemit%2Fcreate-amp-page/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemit%2Fcreate-amp-page/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bemit","download_url":"https://codeload.github.com/bemit/create-amp-page/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bemit%2Fcreate-amp-page/sbom","scorecard":{"id":231062,"data":{"date":"2025-08-11","repo":{"name":"github.com/bemit/create-amp-page","commit":"ff345690e7680c1ee3e86ad4800865df47e70b7a"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.7,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE.md:0","Info: FSF or OSI recognized license: MIT License: LICENSE.md:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"54 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-wf5p-g6vw-rhxx","Warn: Project is vulnerable to: GHSA-jr5f-v2jv-69x6","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-257v-vj4p-3w2h","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-7gc6-qh9x-w6h8","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-w573-4hg7-7wgq","Warn: Project is vulnerable to: GHSA-r7jx-5m6m-cpg9","Warn: Project is vulnerable to: GHSA-r7qp-cfhv-p84w","Warn: Project is vulnerable to: GHSA-q9mw-68c2-j6m5","Warn: Project is vulnerable to: GHSA-4gmj-3p3h-gm8h","Warn: Project is vulnerable to: GHSA-x3cc-x39p-42qx","Warn: Project is vulnerable to: GHSA-mhxj-85r3-2x55","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-pfrx-2q88-qq97","Warn: Project is vulnerable to: GHSA-pfq8-rq6v-vf5m","Warn: Project is vulnerable to: GHSA-rc47-6667-2j5j","Warn: Project is vulnerable to: GHSA-7r28-3m3f-r2pr","Warn: Project is vulnerable to: GHSA-r8j5-h5cx-65gg","Warn: Project is vulnerable to: GHSA-2pr6-76vf-7546","Warn: Project is vulnerable to: GHSA-8j8c-7jfh-h6hx","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-r8f7-9pfq-mjmv","Warn: Project is vulnerable to: GHSA-6fx8-h7jm-663j","Warn: Project is vulnerable to: GHSA-566m-qj78-rww5","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-hrpp-h998-j3pp","Warn: Project is vulnerable to: GHSA-p8p7-x288-28g6","Warn: Project is vulnerable to: GHSA-7mwh-4pqv-wmr8","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-44c6-4v22-4mhx","Warn: Project is vulnerable to: GHSA-4x5v-gmq8-25ch","Warn: Project is vulnerable to: GHSA-m6fv-jmcg-4jfg","Warn: Project is vulnerable to: GHSA-cm22-4g7w-348p","Warn: Project is vulnerable to: GHSA-gp95-ppv5-3jc5","Warn: Project is vulnerable to: GHSA-54xq-cgqr-rpm3","Warn: Project is vulnerable to: GHSA-25hc-qcg6-38wj","Warn: Project is vulnerable to: GHSA-qm95-pgcg-qqfq","Warn: Project is vulnerable to: GHSA-cqmj-92xf-r6r9","Warn: Project is vulnerable to: GHSA-f5x3-32g6-xq36","Warn: Project is vulnerable to: GHSA-pq67-2wwv-3xjx","Warn: Project is vulnerable to: GHSA-8cj5-5rvv-wf4v","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-72xf-g2v4-qvf3","Warn: Project is vulnerable to: GHSA-fhg7-m89q-25r3","Warn: Project is vulnerable to: GHSA-3h5v-q93c-6h6q"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-17T04:53:13.359Z","repository_id":56824261,"created_at":"2025-08-17T04:53:13.359Z","updated_at":"2025-08-17T04:53:13.359Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30156285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T22:39:40.138Z","status":"ssl_error","status_checked_at":"2026-03-05T22:39:24.771Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["amp","frontmatter","gulp","html-renderer","sass","ssr","static-site","static-site-generator","template-engine","twig","twigjs"],"created_at":"2024-11-05T13:16:50.872Z","updated_at":"2026-03-06T00:31:10.465Z","avatar_url":"https://github.com/bemit.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Create AMP Page\n\nFast development of fast pages.\n\n[![npm (scoped)](https://img.shields.io/npm/v/create-amp-page?style=flat-square)](https://www.npmjs.com/package/create-amp-page)\n[![npm (scoped)](https://img.shields.io/npm/dm/create-amp-page.svg?style=flat-square)](https://npmcharts.com/compare/create-amp-page?interval=30)\n[![Travis (.com) master build](https://img.shields.io/travis/com/bemit/create-amp-page/master?style=flat-square)](https://travis-ci.com/github/bemit/create-amp-page)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)\n![Typed](https://flat.badgen.net/badge/icon/Typed?icon=typescript\u0026label\u0026labelColor=blue\u0026color=555555)\n\nStatic site generator built with gulp tasks, using Twig templates, optimized for building [AMP](https://amp.dev) pages - but not limited to AMP.\n\nSupport for Sass, CSS optimizing, CSS into head injection, media file compressing, automatic resizing of images by `srcset`, endless copy tasks, Twig global and optional per-page data with JSON and/or frontmatter, browsersync with custom static server middlewares, [AMP Optimizer](https://amp.dev/documentation/guides-and-tutorials/optimize-and-measure/amp-optimizer-guide/) or HTML Minifier (for non-AMP), remove unused CSS (currently only for inline CSS). Different ways to define pages, can be connected with e.g. netlify cms.\n\n🚀 Checkout the [starter template repositories!](#starter-templates)\n\n## Quick Start\n\n**1.** Create a project folder, init your project with `npm init`\n\n**2.** Create a `Gulpfile.js` and paste the following content in it. For all options and docs see the [AmpCreatorOptions typing](https://github.com/bemit/create-amp-page/blob/master/src/AmpCreatorOptions.d.ts).\n\n```js\nimport path from 'path'\nimport gulp from 'gulp'\nimport {ampCreator, getPageInfo} from 'create-amp-page'\n// since `1.0.0-beta.0` the amp-optimizer is a peer-dep (you need to install it additionally!)\n// makes only sense if you want AMP-valid HTML\nimport AmpOptimizer from '@ampproject/toolbox-optimizer'\n\nconst port = 4488\n\n/**\n * @type {PagesUrlsMap}\n */\nconst urls = {\n    example: {\n        local: {base: 'http://localhost:' + port + '/default/'},\n        prod: {base: 'https://example.org/'},\n    },\n}\n\nconst pages = {\n    example: {\n        paths: {\n            styles: 'src/styles',\n            stylesInject: 'main.css',\n            style: 'main.scss',\n            html: 'src/html',\n            dist: 'build',\n            distStyles: 'styles',\n        },\n    },\n}\nconst isDev = process.env.NODE_ENV === 'development'\n\nconst tasks = ampCreator({\n    port: port,\n    dist: 'build',\n    srcMedia: 'src/media',\n    distMedia: 'media',\n    pages: pages,\n    collections: [{\n        fm: (file) =\u003e 'src/data/' + path.basename(file).slice(0, '.twig'.length * -1) + '.md',\n        tpl: 'src/html/pages/*.twig',\n        base: '',\n        pageId: 'example',\n    }, {\n        fm: 'src/data/blog/*.md',\n        tpl: 'src/html/blog.twig',\n        base: 'blog',\n        pageId: 'example',\n    }],\n    // when `ampEnabled: true` use the `ampOptimizer` for HTML minification and more\n    ampOptimizer: !isDev ? AmpOptimizer.create({}) : undefined,\n    // when `ampEnabled: false` use `minifyHtml` for HTML minification and more\n    // minifyHtml: false,\n    cleanInlineCSS: !isDev,\n    cleanInlineCSSWhitelist: ['#anc-*'],\n    // for css injection of non-AMP pages:\n    // cssInjectTag: '\u003cstyle\u003e',\n    twig: {\n        data: {ampEnabled: true},\n        fmMap: (data, files) =\u003e {\n            const pageId = files.pageId\n            const {\n                pagePath, pageBase,\n            } = getPageInfo(files, urls, pageId, isDev ? 'local' : 'prod')\n            const pageData = pages[pageId]\n            return {\n                pageId: pageId,\n                styleSheets: [\n                    pageData.paths.stylesInject,\n                ],\n                head: {\n                    title: data.attributes.title,\n                    description: data.attributes.description,\n                    lang: data.attributes.lang,\n                },\n                links: {\n                    canonical: pageBase + pagePath,\n                    origin: pageBase,\n                    cdn: isDev ? 'http://localhost:' + port + '/' : pageBase,\n                },\n                content: data.body,\n            }\n        },\n        logicLoader: async () =\u003e {\n            return {}\n        },\n    },\n    prettyUrlExtensions: ['html'],\n})\n\nObject.keys(tasks).forEach(taskName =\u003e gulp.task(taskName, tasks[taskName]))\n```\n\n**3.** Add those scripts into `package.json`, the project must be `type=module`:\n\n```json\n{\n    \"type\": \"module\",\n    \"scripts\": {\n        \"tasks\": \"gulp --tasks\",\n        \"start\": \"cross-env NODE_ENV=development gulp watch\",\n        \"build\": \"cross-env NODE_ENV=production gulp build\",\n        \"clean\": \"gulp clean\"\n    }\n}\n```\n\n**4.** Create a `postcss.config.js` with:\n\n```js\nmodule.exports = {\n    plugins: [\n        require('cssnano')({\n            preset: ['default', {\n                discardComments: {\n                    removeAll: true,\n                },\n            }],\n        }),\n    ],\n}\n```\n\n**5.** Add your `src` folders \u0026 files, minimum for this config: `src/styles/main.scss`, `src/html/pages/index.twig`, `src/data/index.md` and `src/media/.gitkeep`\n\n**6.** Install this SSR: `npm i --save create-amp-page`\n\n**7.** Run `npm start` and happy coding!\n\n## Starter Templates\n\nCheckout the starter repos:\n\n- ⚡ [bemit/create-amp-page-starter](https://github.com/bemit/create-amp-page-starter)\n    - ready configured for static AMP valid pages\n    - includes a simple twig template\n- ⚛️ [bemit/create-page-starter](https://github.com/bemit/create-page-starter)\n    - ready configured for static pages, non-AMP pages\n    - with babel/webpack build process\n        - support for typescript/react configured\n    - service worker example integrated\n    - includes a simple twig template\n\n## Page generations\n\nTwo integrated ways of page generation:\n\n1. One page per template file\n2. One page per content file, for multiple content-files one template\n\nSince `1.0.0-alpha.8` both page generations are configured by `collections`:\n\n```js\nconst options = {\n    collections: [\n        {\n            // create one page per `twig` file, `fm` needs to return the relative path to the frontmatter file (or `undefined` fo no-fm`\n            fm: (file) =\u003e 'example/data/' + path.basename(file).slice(0, '.twig'.length * -1) + '.md',\n            tpl: 'example/html/pages/*.twig',\n            base: '',\n            pageId: 'example',\n        },\n        {\n            // create one page per `fm` file, one `tpl` is used for all pages\n            fm: 'example/data/blog/*.md',\n            tpl: 'example/html/blog.twig',\n            base: 'blog',\n            pageId: 'example',\n        }\n    ],\n}\n```\n\n## Twig Functions\n\n### getImage\n\nGet metadata and sizing for image, caches the read-result for each execution, purging cache on each watch trigger of html.\n\n- params:\n    - `src` is the relative path to media folder incl. media folder\n    - `srcset` is an array of objects, define in which image sizes the image should be resized\n        - `w` = width in pixels, internally it calculates the other value proportional\n- returns:\n    - `src` path to file\n    - `width` of file\n    - `height` of file\n    - `hash` sha1 hash of file content\n\n#### getImage Twig Example\n\nTemplate using `getImage(src, srcset)` to fetch metadata and resize images when needed:\n\n```twig\n{% set image = getImage(src, srcset) %}\n\u003camp-img\n    src=\"{{ image.src ~ '?key=' ~ (image.hash|slice(0,12)) }}\"\n    width=\"{{ image.width }}\"\n    height=\"{{ image.height }}\"\n    {# generate srcset with same syntax like `getImage` #}\n    srcset=\"{% for set in srcset %}{{ addImageSuffix(image.src, '_'~set.w~'w') ~ '?key=' ~ (image.hash|slice(0,12))~' '~set.w~'w' }}{% if loop.index \u003c (srcset|length) %}, {% endif %}{% endfor %}\"\n    sizes=\"{{ sizes }}\"\n    layout=\"responsive\"\n\u003e\u003c/amp-img\u003e\n```\n\nEmbed then in file, pixels at `srcset`:\n\n```twig\n{% embed 'image.twig' with {\n    src: '/media/img-01.png',\n    alt: 'A blog hero image',\n    classes: 'flex',\n    srcset: [\n        {w: '320'},\n        {w: '680'},\n        {w: '920'}\n    ],\n    sizes: '(max-width: 320px) 320px, (max-width: 600px) 680px',\n} %}\n{% endembed %}\n```\n\nGenerates HTML like:\n\n```html\n\n\u003camp-img\n        src=\"/media/img-01.png?key=2l8ybbe1tjSP\"\n        width=\"1280\" height=\"421\"\n        srcset=\"/media/img-01_320w.png?key=2l8ybbe1tjSP 320w, /media/img-01_680w.png?key=2l8ybbe1tjSP 680w, /media/img-01_920w.png?key=2l8ybbe1tjSP 920w\"\n        sizes=\"(max-width: 320px) 320px, (max-width: 600px) 680px\"\n        layout=\"responsive\"\n\u003e\u003c/amp-img\u003e\n```\n\n### addImageSuffix\n\nAdd an image suffix between name and extension:\n\n```twig\n{{ addImageSuffix(image.src, '_suffix') }}\n```\n\n### embedScript\n\nTo embed e.g. css or js files directly in build template, uses the `src` relative to configured `dist`:\n\n```twig\n{{ embedScript('js/main.js') }}\n```\n\n## License\n\nThis project is free software distributed under the **MIT License**.\n\nSee: [LICENSE](LICENSE).\n\n© 2022 [Michael Becker](https://i-am-digital.eu)\n\n### Versions\n\nSee [github release notes](https://github.com/ui-schema/ui-schema/releases) for updates, especially incompatibilities, for features check the current `AmpCreatorOptions` typing.\n\nThis project adheres to [semver](https://semver.org/).\n\n### Contributors\n\nBy committing your code/creating a pull request to this repository you agree to release the code under the MIT License attached to the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbemit%2Fcreate-amp-page","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbemit%2Fcreate-amp-page","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbemit%2Fcreate-amp-page/lists"}