{"id":24337858,"url":"https://github.com/jsilva-pt/jamstack-nuxt","last_synced_at":"2026-04-17T10:03:38.284Z","repository":{"id":114828795,"uuid":"256237383","full_name":"jsilva-pt/jamstack-nuxt","owner":"jsilva-pt","description":"Experimenting Nuxt JAMstack","archived":false,"fork":false,"pushed_at":"2020-04-17T15:22:55.000Z","size":181,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T19:46:19.047Z","etag":null,"topics":["jamstack","netlify","nuxt","nuxt-i18n","nuxtjs","vuejs"],"latest_commit_sha":null,"homepage":"https://jam-stack-nuxt.netlify.app/","language":"Vue","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/jsilva-pt.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2020-04-16T14:23:26.000Z","updated_at":"2023-05-12T16:58:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"1a7f8661-580e-4eae-961a-cd6e849ac322","html_url":"https://github.com/jsilva-pt/jamstack-nuxt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jsilva-pt/jamstack-nuxt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilva-pt%2Fjamstack-nuxt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilva-pt%2Fjamstack-nuxt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilva-pt%2Fjamstack-nuxt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilva-pt%2Fjamstack-nuxt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsilva-pt","download_url":"https://codeload.github.com/jsilva-pt/jamstack-nuxt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsilva-pt%2Fjamstack-nuxt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278296082,"owners_count":25963432,"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","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["jamstack","netlify","nuxt","nuxt-i18n","nuxtjs","vuejs"],"created_at":"2025-01-18T06:52:21.676Z","updated_at":"2025-10-04T09:58:30.885Z","avatar_url":"https://github.com/jsilva-pt.png","language":"Vue","readme":"# jamstack-nuxt\n   \n\u003e My [Jamstack](https://jamstack.org/) experiment with [Nuxt.js](https://nuxtjs.org).\n\n## Requirements\n- [X] Generate a website to be deployed in several domains (e.g. `com.ng, com.gh, com.eg, com.tn, ke, ci, ma`)\n- [X] Each domain can have different languages available [nuxt-i18n](https://github.com/nuxt-community/nuxt-i18n)\n- [X] Support RTL\n- [X] Possibility to define the default language for each domain\n- [X] Possibility to use markdown files as cms blocks [@nuxtjs/markdownit](https://github.com/nuxt-community/modules/tree/master/packages/markdownit)\n- [X] All domains have the same pages however CMS blocks can be customized by country and language\n- [x] Generate the sitemap.xml [@nuxtjs/sitemap](https://github.com/nuxt-community/sitemap-module)\n- [x] Generate the robots.txt [@nuxtjs/robots](https://github.com/nuxt-community/robots-module)\n\n## Configurations\n```bash\n# Create a .env file with the following content\nBASE_URL=http://localhost:3000\nNUXT_ENV_COUNTRY=eg # can be ng, ke, gh, eg, ci, ma, tn\n```\n\n## Build Setup\n\n```bash\n# install dependencies\n$ yarn install\n\n# serve with hot reload at localhost:3000\n$ yarn dev\n\n# generate static project\n$ yarn generate\n```\n\n## Add a new language :speech_balloon: (e.g. Portuguese)\n#### 1. Inside the file `data/languages.json` add a new object with the following structure:\n\n```js\n{\n    \"code\": \"pt\", // language code\n    \"name\": \"Português\", // language display name\n    \"iso\": \"pt-PT\", // language ISO code\n    \"file\": \"pt.js\", // filename where the translations will be present\n    \"rtl\": false // Right-to-left enabled or disabled\n}\n```\n\n#### 2. Create the translations file `lang/pt.js`\n  \n#### 3. Create the global CMS blocks to the Portuguese language\n  \n- Create the folder `data/cms-blocks/pt` (the language code for Portugal).\n\n```bash\n.\n└─ data\n   └─ cms-blocks\n      ├─ ar\n      ├─ en\n      ├─ fr\n      └─ pt # new language being added\n```\n\n- Create every CMS block existent to the other languages\n\n```bash\ncms-blocks\n└─ pt\n    ├─ block1.md\n    ├─ block2.md\n    └─ terms-and-conditions.md\n```\n\n:tada: Congratulation, we are ready to associate the Portuguese language to the desired countries.\n\n## Add a new country :earth_africa: (e.g. Portugal)\nAdd the following structure to the `data/countries.json` file:\n\n```js\n{\n    // other languages are nested here\n    \"pt\": {\n        \"languages\": [ \"pt\", \"en\" ], // available languages for Portugal\n        \"default\": \"pt\" // default language\n    }\n}\n```\n\n## Override a markdown file for a specific country (eg. Brasil) in the Portuguese language\n\n#### 1. Create the directory `data/cms-blocks/pt/br` (the country code for Brasil)\n#### 2. Create the markdown(s) file(s) to override\n\n```bash\ncms-blocks\n└─ pt # Portuguese language code\n    ├─ br # Portugal country code\n    |  └─ terms-and-conditions.md # CMS block being overrided\n    ├─ block1.md\n    ├─ block2.md\n    └─ terms-and-conditions.md\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsilva-pt%2Fjamstack-nuxt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsilva-pt%2Fjamstack-nuxt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsilva-pt%2Fjamstack-nuxt/lists"}