{"id":24307071,"url":"https://github.com/fulldecent/phor.net","last_synced_at":"2026-04-08T19:31:50.460Z","repository":{"id":147413964,"uuid":"249241171","full_name":"fulldecent/phor.net","owner":"fulldecent","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-08T12:33:19.000Z","size":68739,"stargazers_count":2,"open_issues_count":5,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-08T14:30:17.585Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://phor.net","language":"HTML","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/fulldecent.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-22T17:56:50.000Z","updated_at":"2026-04-08T12:33:24.000Z","dependencies_parsed_at":"2025-08-18T05:35:09.430Z","dependency_job_id":null,"html_url":"https://github.com/fulldecent/phor.net","commit_stats":{"total_commits":337,"total_committers":1,"mean_commits":337.0,"dds":0.0,"last_synced_commit":"57b9a2a836c912d0cd14a02cf5361a5aca33bbb8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fulldecent/phor.net","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fphor.net","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fphor.net/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fphor.net/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fphor.net/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fulldecent","download_url":"https://codeload.github.com/fulldecent/phor.net/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fulldecent%2Fphor.net/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31571600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2025-01-17T03:54:22.731Z","updated_at":"2026-04-08T19:31:50.452Z","avatar_url":"https://github.com/fulldecent.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# phor.net website\n\n##   Updating content\n\n1. All text shall be in sentence case. Capital letters are used only for proper nouns and the first word of a sentence.\n1. Do not use Oxford commas.\n1. All images must use SVG or WebP lossy format. Maximum size 800px wide side or 1200px for full width images. Compress like `cwebp -q 80 -m 6 -mt -v -resize 800 0 -o output.webp input.png`. For zero-to-one product images, use `magick in.png -resize 400x400 -quality 80 out.webp`.\n1. All video must be WebM, use like `ffmpeg -i input.mov -vf scale=640:-2 -c:v libvpx -q:v 10 output.webm`.\n\n## How to build this website locally\n\n### Setup local environment\n\n_In production (GitHub Actions), environment is setup by workflows in [.github/workflows/](.github/workflows/)._\n\nUse VS Code and the [Dev Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers), install a Docker host (on Mac, use [OrbStack](https://orbstack.dev/)) then run VS Code command \"Reopen in Container\".\n\nOr if you do not want VS Code or the Docker setup, install your environment manually:\n\n1. Install Ruby (use version in [build-test-deploy.yml](https://github.com/fulldecent/github-pages-template/blob/main/.github/workflows/build-test-deploy.yml) in \"Setup Ruby\", (try [rbenv](https://github.com/rbenv/rbenv))\n\n2. Install Jekyll:\n\n   ```sh\n   gem update --system\n   gem install bundler\n   bundle install\n   ```\n\n3. Install Node \u0026 yarn, use version in build-test-deploy.yml in \"Setup Node.js\", (try nvm):\n\n   ```sh\n   nvm install # uses our .nvmrc\n   nvm use # uses our .nvmrc\n   yarn install\n   ```\n\n### Build the site\n\nBuild the HTML website.\n\n```sh\nyarn build\n```\n\nAccess your site at \u003chttp://127.0.0.1:4000\u003e (or see other \"server address\" in console output).\n\n### Serve/run the site\n\n```sh\nbundle exec jekyll serve --livereload\n```\n\n### Linting\n\nPerform code linting (this does not require building the site):\n\n```sh\nyarn lint\n```\n\nAnd automatically fix with:\n\n```sh\nyarn format-all\n```\n\n### Testing\n\nPerform website testing (you must have already [built the site](#build-the-site))\n\n:warning: `yarn build` produces different files than `bundle exec jekyll serve`. And the test suite may have false positives if you test the `serve` output.\n\n```sh\nyarn test\n```\n\nThis tests structured data (JSON+LD), hyperlinks and other best practices on each page. This done using [HTML-validate](https://html-validate.org/) and [Nice Checkers](https://github.com/fulldecent/html-validate-nice-checkers).\n\n## Notes for VS Code\n\nOpen this folder in VS Code, allow the \"Reopen in Container\" and install recommended extensions.\n\nThis will give you formatting, linting, and other tools to help you develop.\n\n## Maintenance: updating dependencies\n\nDo this every month or so and please send a PR here if you see updates available:\n\n```sh\nyarn set version latest \u0026\u0026 yarn # Send PR\nyarn upgrade-interactive # Send PR\n```\n\nAlso you can run this to update your environment to match the GitHub Pages (no PR, this is in .gitignore):\n\n```sh\nbundle update --conservative # \"--consersative\" ignores updates that GitHub Pages is not using\n```\n\n## References\n\n1. This website is built based on [best practices documented in github-pages-template](https://github.com/fulldecent/github-pages-template).\n2. Setting up Docker\n   1. We would prefer an open-source-licensed Docker implementation that runs at native speed on Mac, Linux and Windows. For Mac, you may prefer to [install Colima](https://github.com/abiosoft/colima?tab=readme-ov-file#installation) which is open source but about 5x slower than the OrbStack recommended above.\n3. We use the github-pages gem instead of Jekyll because GitHub Pages [uses those specific versions](https://pages.github.com/versions/) instead of what is in your Gemfile.lock. This is also why we add Gemfile.lock to .gitignore.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulldecent%2Fphor.net","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffulldecent%2Fphor.net","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffulldecent%2Fphor.net/lists"}