{"id":18469330,"url":"https://github.com/ekoindia/eko-website","last_synced_at":"2025-06-30T19:07:36.224Z","repository":{"id":37045944,"uuid":"296578103","full_name":"ekoindia/eko-website","owner":"ekoindia","description":"Eko's website and blog built with Jamstack","archived":false,"fork":false,"pushed_at":"2025-05-07T13:30:38.000Z","size":42217,"stargazers_count":4,"open_issues_count":0,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-07T14:41:01.356Z","etag":null,"topics":["eko-website","eleventy","jamstack"],"latest_commit_sha":null,"homepage":"https://eko.in","language":"Nunjucks","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ekoindia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2020-09-18T09:37:51.000Z","updated_at":"2025-05-05T09:18:49.000Z","dependencies_parsed_at":"2024-07-11T06:44:26.173Z","dependency_job_id":"2ff7c845-4b77-4c46-9afc-7ae97c18df87","html_url":"https://github.com/ekoindia/eko-website","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ekoindia/eko-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekoindia%2Feko-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekoindia%2Feko-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekoindia%2Feko-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekoindia%2Feko-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ekoindia","download_url":"https://codeload.github.com/ekoindia/eko-website/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ekoindia%2Feko-website/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262834797,"owners_count":23371851,"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":["eko-website","eleventy","jamstack"],"created_at":"2024-11-06T10:09:59.328Z","updated_at":"2025-06-30T19:07:36.215Z","avatar_url":"https://github.com/ekoindia.png","language":"Nunjucks","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Eko's Website \u0026 Blog on Jamstack\nThe Eko website \u0026 blog built with [Eleventy](https://www.11ty.dev). Uses reusable component and simple configurations to automate page creation.\n\n![Netlify Status](https://api.netlify.com/api/v1/badges/16835446-1532-4951-9268-a82abe342e6a/deploy-status)\n\u003ca href=\"https://github.com/ekoindia/eko-website/issues\"\u003e![GitHub issues](https://img.shields.io/github/issues/ekoindia/eko-website)\u003c/a\u003e\n\u003ca href=\"https://eko.in\" target=\"_blank\"\u003e![Develop With Eko.in](https://img.shields.io/badge/Develop%20with-Eko.in-brightgreen)\u003c/a\u003e\n\u003ca href=\"https://twitter.com/intent/tweet?text=Wow:\u0026url=https%3A%2F%2Fgithub.com%2Fekoindia%2Feko-website\" target=\"_blank\"\u003e\u003cimg alt=\"Twitter\" src=\"https://img.shields.io/twitter/url?style=social\u0026url=https%3A%2F%2Fgithub.com%2Fekoindia%2Feko-website\"\u003e\u003c/a\u003e\n\u003ca href=\"https://twitter.com/intent/follow?screen_name=ekospeaks\" target=\"_blank\"\u003e![Twitter Follow](https://img.shields.io/twitter/follow/ekospeaks?label=Follow\u0026style=social)\u003c/a\u003e\n\n---\n\n## 🌟 Features\n1. Built with [Eleventy](https://www.11ty.dev)!  [\u003csmall\u003e(docs)\u003c/small\u003e](https://www.11ty.dev/docs)\n1. [Netlify CMS](https://www.netlifycms.org): easy blog \u0026 website configuration management.\n1. Reusable components for faster development ([src/_includes](src/_includes)).\n1. Simple configuration files for creating retail/API product pages ([src/_data](src/_data)).\n1. Simple stack. Minification/bundling using internal 11ty plugins.\n\n## 🔗 Table Of Contents\n- [🌟 Features](#-features)\n- [🔗 Table Of Contents](#-table-of-contents)\n- [🏁 Getting Started (Development Setup)](#-getting-started-development-setup)\n- [🔁 Pull Request Guidelines (Making Changes)](#-pull-request-guidelines-making-changes)\n- [🗃 Project Structure](#-project-structure)\n- [❓ How to add a new blog post?](#-how-to-add-a-new-blog-post)\n- [❓ How to add or edit a Retail-product page?](#-how-to-add-or-edit-a-retail-product-page)\n- [❓ How to add or edit an API-product page?](#-how-to-add-or-edit-an-api-product-page)\n- [❓ How to add a custom page?](#-how-to-add-a-custom-page)\n- [❓ How to add redirections to support old links?](#-how-to-add-redirections-to-support-old-links)\n- [❓ How to add a new `env` variable?](#-how-to-add-a-new-env-variable)\n\n\n## 🏁 Getting Started (Development Setup)\n1. Install [node/npm](https://nodejs.org/en) \u0026 [git](https://git-scm.com)\n1. Clone this Repository:\n   `git clone https://github.com/ekoindia/eko-website`\n1. Navigate to the directory: `cd eko-website`\n1. Install dependencies: `npm install`\n1. Copy [`.env.example`](.env.example) to a new `.env` file and setup your own defaults\n1. Build and host locally for local development: `npm start`\n   Checkout in the browser: `localhost:8080`\n2. _How to open Admin panel locally to add blog-posts:_\n   1. Run the Admin local server: `npm run local-admin`\n   2. Open the Admin URL: `localhost:8080/admin`\n   3. Click on the login button.\n\n## 🔁 Pull Request Guidelines (Making Changes)\n1. Fork this repository\n2. Create a new branch: `git checkout -b my-new-feature`\n3. Make your changes\n4. Test your changes: `npm run build` and `npm start`\n5. Commit your changes: `git commit -am 'Add some feature'`\n6. Push to the branch: `git push origin my-new-feature`\n7. Submit a pull request in this repository\n\n## 🗃 Project Structure\n* 📄🔧 [**.eleventy.js**](.eleventy.js)  `All project technical configurations go here`\n* 📂 [**src/**](/src)  `Main source directory. Top-level/custom webpages are created right here`\n  * 📄 [**index.njk**](/src/index.njk)  `The home page`\n  * 📂✍ [**blog/**](/src/blog)  `Create blog posts here`\n    * 📄 [**index.njk**](/src/blog/index.njk)  `The blog listing page`\n\t* 📄 [**blog-tag-pages.njk**](/src/blog/blog-tags.njk)  `Page template to list posts for individual tags`\n  * 📂🔧 [**_data**](/src/_data)  `All the website configuration and data go here`\n    * 📄🔧 [**website.yaml**](/src/_data/website.yaml)  `Top configurations, like, domain, logo, title, SEO, etc`\n\t* 📑🔧 [**products.yaml**](/src/_data/products.yaml)  `The retail products listing. Pages automatically created and added to menu`\n\t* 📑🔧 [**developers.yaml**](/src/_data/developers.yaml)  `The API products listing. Pages automatically created and added to menu`\n\t* 📑🔧 [**ekoUniversity.yaml**](/src/_data/ekoUniversity.yaml)  `The video listing for the Eko University section`\n\t* 📄🔧 [**footer.yaml**](/src/_data/footer.yaml)  `Configure footer links`\n\t* 📄🔧 [**env.yaml**](/src/_data/env.yaml)  `Secret configurations as envoirnment variables`\n  * 📂👩‍💻 [**_layouts**](/src/_layouts)  `Reusable templates for various page types`\n    * 📄⭐ [**base.njk**](/src/_layouts/base.njk)  `Main template with outermost common code used by all pages`\n\t* 📄 [**product_page.njk**](/src/_layouts/product_page.njk)  `Template for retail product pages`\n\t* 📄 [**developer_page.njk**](/src/_layouts/developer_page.njk)  `Template for API product pages`\n\t* 📄 [**blog_post.njk**](/src/_layouts/blog_post.njk)  `Template for blog post pages ideally written in markdown`\n\t* 📄 [**page.njk**](/src/_layouts/page.njk)  `Template for normal pages ideally written in markdown`\n\t* 📄 [**ekoUniversity.njk**](/src/_layouts/ekoUniversity.njk)  `For the Eko University page`\n  * 📂🧩 [**_includes**](/src/_includes)  `All build-time reusable components go here`\n    * 📓 ***section_\\*.njk***  `Full width reusable UI components that compose the index \u0026 product pages`\n\t* 📄 [**navigation.njk**](/src/_includes/navigation.njk)  `Top navigation bar in every page`\n\t* 📄 [**footer.njk**](/src/_includes/footer.njk)  `Footer section at the bottom of every page`\n\t* 📄 [**blogslist.njk**](/src/_includes/blogslist.njk)  `List of all blog posts with pagination`\n\t* 📄 [**form.njk**](/src/_includes/form.njk)  `Visitor sign-up form`\n    * 📂🎨 [**css**](/src/_includes/css)  `CSS files - inlined into HTML during build`\n\t  * 📄 [**base.css**](/src/_includes/css/base.css)  `Common CSS rules used in every page`\n\t  * 📄 [**blog.css**](/src/_includes/css/blog.css)  `CSS rules for pages using the 'blog' or 'page' template`\n\t  * 📄 [**nav.css**](/src/_includes/css/nav.css)  `CSS rules for top navigation menu`\n\t  * 📄 [**footer.css**](/src/_includes/css/footer.css)  `CSS rules for footer section`\n\t  * 📄 [**flex.css**](/src/_includes/css/flex.css)  `Helper classes for CSS Flexbox`\n\t  * 📄 [**carousel.css**](/src/_includes/css/carousel.css)  `CSS rules for the carousel section`\n\t  * 📄 [**section_components.css**](/src/_includes/css/section_components.css)  `CSS rules for the section_*.njk reusable components`\n\t* 📁 [**js**](/src/_includes/js)  `Javascript files - inlined into HTML during build`\n  * 📁🖼 [**assets**](/src/assets)  `Static assets like images, icons, etc`\n* 📂 [**utils/**](/utils)  `11ty build-time custom utilities...`\n  * 📄 [**shortcodes.js**](/utils/shortcodes.js)  `Reusable short markup (HTML) snippets` [\u003csmall\u003e(docs)\u003c/small\u003e](https://www.11ty.dev/docs/shortcodes)\n  * 📄 [**filters.js**](/utils/filters.js)  `Custom filters for 11ty to be used in templates to manipulate data` [\u003csmall\u003e(docs)\u003c/small\u003e](https://www.11ty.dev/docs/filters)\n\n\n## ❓ How to add a new blog post?\n1. Add a new file in the [`src/blog/`](/src/blog) folder (or, copy an existing file).\n1. File name becomes the URL of the blog-post (without the extension).\n1. Easiest way to write the post is to use Markdown (.md). Any other file format can be used (eg: [Nunjucks](https://mozilla.github.io/nunjucks/templating.html), HTML, Liquid, Javascript).\n   1. Check [EXAMPLE-POST.md](/src/blog/EXAMPLE-POST.md) for an example page and a quick guide to markdown.\n1. Add other page info (like title, description, image, etc) in the top section of the page between the two '---' lines.\n   1. Make the first paragraph of the post an excerpt by add a `\u003c!-- excerpt --\u003e` comment after it. This will be shown as the post description.\n   1. Alternatively, add a `description` field in the top section of the page between the two '---' lines.\n   1. Check [EXAMPLE-POST.md](/src/blog/EXAMPLE-POST.md) for a quick example.\n1. To add a Youtube video in the blogpost, use the following syntax:\n   ```\n   {% youtube \"youtube-video-id\" %}\n   ```\n   1. Example: `{% youtube \"CM4ajkVe4to\" %}`\n\n\n## ❓ How to add or edit a Retail-product page?\n1. Retail product pages can by added without coding by just adding the product details to the [configuration file](/src/_data/products.yaml)!\n1. All configuration files reside in the [`src/_data/`](/src/_data) folder.\n1. Configuration files are simple text files written in [YAML format](https://learnxinyminutes.com/docs/yaml).\n   1. It is a simple format to understand and write manually.\n   1. Just ensure proper _indentation and spaces_!\n1. Open the [`src/_data/products.yaml`](/src/_data/products.yaml) file.\n1. Add a new product by copying configuration of an existing product and changing it's values!\n1. Any new product page is automatically added to the navigation menu!\n\n\n## ❓ How to add or edit an API-product page?\n1. API product pages can by added without coding by just adding the product details to the [configuration file](/src/_data/developers.yaml)!\n1. All configuration files reside in the [`src/_data/`](/src/_data) folder.\n1. Configuration files are simple text files written in [YAML format](https://learnxinyminutes.com/docs/yaml).\n   1. It is a simple format to understand and write manually.\n   2. Just ensure proper _indentation and spaces_!\n1. Open the [`src/_data/developers.yaml`](/src/_data/developers.yaml) file.\n1. Add a new product by copying configuration of an existing product and changing it's values!\n1. Any new product page is automatically added to the navigation menu!\n\n\n## ❓ How to add a custom page?\n1. Add a new file in the [`src/`](/src/) folder (or, copy an existing file).\n   1. File name becomes the URL of the blog-post (without the extension).\n   2. You can also create the file under a sub-directory, if required. The page URL will reflect the sub-directory in the path.\n1. Easiest way to write the post is to use Markdown (.md). Any other file format can be used (eg: Nunjucks, HTML, Liquid, Javascript).\n   1. Check [EXAMPLE-POST.md](/src/blog/EXAMPLE-POST.md) for an example page and a quick guide to markdown.\n1. For full customization, create a Nunjucks file (.njk) and write any custom HTML.\n1. Add other page info (like description, social image, etc) at the top of the page between the two '---' lines.\n1. Add to navigation menu in the [`src/_includes/navigation.njk`](/src/_includes/navigation.njk) file.\n\n## ❓ How to add redirections to support old links?\n1. Add an entry in the [`src/_redirects`](/src/_redirects) file.\n1. Example and documentation in the file.\n\n## ❓ How to add a new `env` variable?\n1. Checkout the file [src/_data/env.js](/src/_data/env.js)\n1. Add a new `env` variable name in this file\n1. Now this variable can be accessed anywhere using `env.\u003cVARIABLE_NAME\u003e`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekoindia%2Feko-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fekoindia%2Feko-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fekoindia%2Feko-website/lists"}