{"id":39467315,"url":"https://github.com/3mdeb/3mdeb-website","last_synced_at":"2026-01-18T04:51:18.358Z","repository":{"id":65354854,"uuid":"586923833","full_name":"3mdeb/3mdeb-website","owner":"3mdeb","description":"3mdeb.com website source code driven by Hugo","archived":false,"fork":false,"pushed_at":"2026-01-05T14:29:58.000Z","size":38264,"stargazers_count":2,"open_issues_count":9,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-01-08T12:56:17.148Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3mdeb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-09T14:53:04.000Z","updated_at":"2026-01-05T14:30:03.000Z","dependencies_parsed_at":"2024-04-08T19:28:22.390Z","dependency_job_id":"8d32b5e0-7bcc-4d77-acfb-367796db3238","html_url":"https://github.com/3mdeb/3mdeb-website","commit_stats":{"total_commits":123,"total_committers":9,"mean_commits":"13.666666666666666","dds":0.7073170731707317,"last_synced_commit":"ed8658071ff82d72faa2d3f80685643660d1e1c6"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/3mdeb/3mdeb-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2F3mdeb-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2F3mdeb-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2F3mdeb-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2F3mdeb-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3mdeb","download_url":"https://codeload.github.com/3mdeb/3mdeb-website/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3mdeb%2F3mdeb-website/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28530347,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"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":[],"created_at":"2026-01-18T04:51:17.740Z","updated_at":"2026-01-18T04:51:18.349Z","avatar_url":"https://github.com/3mdeb.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 3mdeb-website\n\n## Deployment status\n\nProduction deploy status:\n\n[![Build status](https://github.com/3mdeb/3mdeb-website/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/3mdeb/3mdeb-website/actions/workflows/deploy.yml)\n\nBeta deploy status:\n\n[![Build status](https://github.com/3mdeb/3mdeb-website/actions/workflows/deploy.yml/badge.svg?branch=develop)](https://github.com/3mdeb/3mdeb-website/actions/workflows/deploy.yml)\n\n## Local preview\n\n1. Run local server: `./scripts/local-preview.sh http://{IP-ADDRESS}`\n1. Go to [http://{IP-ADDRESS}:1313/](http://localhost:1313/) to view the changes.\n\n\u003e _NOTE_: Using `localhost` could end in partial resource import, therefore try\nto use the local IP address of the host machine. Feel free to replace\n`http://localhost:1313` with desired address IP and port.\n\u003e _NOTE-2_: If you are having problems with docker (above script), use locally\n\u003e installed hugo:\n\u003e\n\u003e 1. Install hugo: `sudo snap install hugo`\n\u003e 2. Start local server: `hugo server`\n\u003e 3. Open locally deployed website on `localhost:1313`\n\n## Good practices\n\n### Development workflow\n\nThis repository uses `develop` -\u003e `main` merge requirements. This provides\nadditional layer of control and verification in the beta/prod environment.\n\n1. Whenever creating new branch for your changes, first, remember to checkout to\n   up to date `develop` branch.\n2. After pushing changes to your branch, set a Pull Request to `develop` branch,\n   instead of `main`. Reporter will verify patch and publish beta env.\n   * beta website: \u003chttps://beta.3mdeb.com/\u003e\n3. After successful deployment on the beta environment, if a whole set of\n   patches is merged in the `develop` branch, open a new PR to `main`. The\n   reporter will verify changes and publish prod env.\n   * prod website: \u003chttps://3mdeb.com/\u003e\n\n\u003e **NOTE**: If you forgot about rule Ad. 1, you can change the source branch\n\u003e by rebasing you branch: `git rebase --onto \u003cnew-parent\u003e \u003cold-parent\u003e`. For\n\u003e example: `git rebase --onto develop main`.\n\n### Broken links checker\n\nCurrently we are using [lychee](https://github.com/lycheeverse/lychee) a fast,\nasync, stream-based link checker written in Rust. The automatic check is\ntriggered on each push to the master pull request.\n\nYou can also run it locally using a docker image:\n\n```bash\n$ docker run --init -it --rm -w $(pwd) -v $(pwd):$(pwd) lycheeverse/lychee\n    --max-redirects 10 -a 403,429,500,502,503,999 .\n```\n\nWe also use the Lychee Log Parser, which evaluates whether the problems detected\nby lychee are actual problems with the site or server. Whenever you add\nchanges, it is your responsibility to fix all problems (even if the erroneous\nlinks are in a part of the code that you have not changed). In this way,\ntogether we will maintain the quality of the links and fix the errors that\noccur.\n\nTo fix an error, open the job that crashed. In the log you will find\ninformation about which file the error is in and which link is affected:\n\n```bash\n2024-02-07 02:08:54 - ERROR - Broken links found!\n2024-02-07 02:08:54 - ERROR - ---\n2024-02-07 02:08:54 - ERROR - Broken links in \"BROKEN.md\":\n2024-02-07 02:08:54 - ERROR - ---\n2024-02-07 02:08:54 - ERROR - Broken link: https://use.fontawesome.com/\n2024-02-07 02:08:54 - ERROR - Failed: Network error: 404\n2024-02-07 02:08:54 - ERROR - ---\n```\n\nIn this case, the file is `\"BROKEN.md\"` and the invalid link is\n`https://use.fontawesome.com/`. Check whether the path has changed or the\npage has expired. If the page has expired, use \u003chttps://web.archive.org/\u003e to\nrestore the older version. Lychee automatically suggests url fix for the broken\nlinks:\n\n```shell\n 2024-02-09 13:02:52 - ERROR - ---\n2024-02-09 13:02:52 - INFO - Check if broken URL server is expired. If it's no longer available, you can fix broken links using the suggestions below:\n2024-02-09 13:02:52 - INFO - ---\n2024-02-09 13:02:52 - INFO - Suggestions for the \"BROKEN.md\"\n2024-02-09 13:02:52 - INFO - ---\n2024-02-09 13:02:52 - INFO - https://use.fontawesome.com/ - http://web.archive.org/web/20211220191310/https://use.fontawesome.com/\n2024-02-09 13:02:52 - INFO - ---\n```\n\nIf the page does not have a saved version in the archive, remove the link and\nadd an annotation.\n\nIf you think that the error that appeared is not an error of the site but\nof the server you are connecting to, please open an issue and we will help\nyou solve the problem.\n\n### Relative links\n\nPlease avoid using relative like:\n\n```md\n[contact](../../contact/)\n```\n\nInstead, use absolute links:\n\n```md\n[contact](https://3mdeb.com/contact/)\n```\n\n### pre-commit hooks\n\n* [Install pre-commit](https://pre-commit.com/index.html#install), if you\n  followed [local build](#local-preview) procedure `pre-commit` should be\n  installed\n\n* [Install go](https://go.dev/doc/install)\n\n* Install hooks into repo:\n\n```shell\npre-commit install --hook-type commit-msg\n```\n\n* Enjoy automatic checks on each `git commit` action!\n\n* (Optional) Run hooks on all files (for example, when adding new hooks or\n  configuring existing ones):\n\n```shell\npre-commit run --all-files\n```\n\n#### To skip verification\n\nIn some cases, it may be needed to skip `pre-commit` tests. To do that, please\nuse:\n\n```shell\ngit commit --no-verify\n```\n\n### Grammarly - a must have for content verification\n\nGrammarly is a great, free tool for all bloggers and anyone who needs to write\ndocumentation in English.\nIt will let you know if you skipped a coma or made a typo, as well, as it will\ncheck advanced grammar mistakes, too. Bear in mind, that the free version has\nits limits, so you need to keep an eye on it at all times and still, you are\nthe one who distinguishes when to use a/an or the, as it only suggests changes.\n\nTwo versions of Grammarly are available: a plugin for Chrome/Chromium or online\napplication. You need to create an account (it's for free) to be able to use\nGrammarly.\n\nVisit the website [Grammarly](https://app.grammarly.com/) and create an account.\n\n\u003eIt is a MUST-HAVE application for anyone who writes posts or documentation, so\nfeel obliged to use it.\n\n### Creating titles - Emotional Marketing Value Headline Analyzer\n\n\u003chttps://www.aminstitute.com/headline/\u003e\n\nThe free tool, which analyze headline to determine the Emotional Marketing Value\n(EMV) score. Headline is analyzed and scored based on the total number\nof EMV words it has in relation to the total number of words it contains. This\nwill determine the EMV score of headline. Most professional copywriters'\nheadlines will have 30%-40% EMV Words in their headlines, while the most gifted\ncopywriters will have 50%-75% EMV words in headlines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3mdeb%2F3mdeb-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3mdeb%2F3mdeb-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3mdeb%2F3mdeb-website/lists"}