{"id":13416336,"url":"https://github.com/bridgetownrb/bridgetown","last_synced_at":"2026-01-16T14:49:51.482Z","repository":{"id":37101979,"uuid":"253678724","full_name":"bridgetownrb/bridgetown","owner":"bridgetownrb","description":"A next-generation progressive site generator \u0026 fullstack framework, powered by Ruby","archived":false,"fork":false,"pushed_at":"2026-01-13T02:46:24.000Z","size":18134,"stargazers_count":1320,"open_issues_count":45,"forks_count":125,"subscribers_count":12,"default_branch":"main","last_synced_at":"2026-01-13T05:57:03.193Z","etag":null,"topics":["blog-engine","bridgetown","documentation-tool","esbuild","jamstack","ruby","static-site-generator"],"latest_commit_sha":null,"homepage":"https://www.bridgetownrb.com","language":"Ruby","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/bridgetownrb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":"GOVERNANCE.md","roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"jaredcwhite"}},"created_at":"2020-04-07T03:35:46.000Z","updated_at":"2026-01-13T02:46:26.000Z","dependencies_parsed_at":"2023-12-19T07:45:13.821Z","dependency_job_id":"b87f15a5-3775-4fb0-a4e6-71fceaf537b1","html_url":"https://github.com/bridgetownrb/bridgetown","commit_stats":{"total_commits":899,"total_committers":68,"mean_commits":"13.220588235294118","dds":"0.26028921023359286","last_synced_commit":"0561a3363b7752f9fa576452cce4e88b41e64a7d"},"previous_names":[],"tags_count":98,"template":false,"template_full_name":null,"purl":"pkg:github/bridgetownrb/bridgetown","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridgetownrb%2Fbridgetown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridgetownrb%2Fbridgetown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridgetownrb%2Fbridgetown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridgetownrb%2Fbridgetown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bridgetownrb","download_url":"https://codeload.github.com/bridgetownrb/bridgetown/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bridgetownrb%2Fbridgetown/sbom","scorecard":{"id":253639,"data":{"date":"2025-08-11","repo":{"name":"github.com/bridgetownrb/bridgetown","commit":"0413961619bd8be758d395bff1a996b01c963592"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.7,"checks":[{"name":"Maintained","score":10,"reason":"7 commit(s) and 6 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":3,"reason":"Found 10/29 approved changesets -- score normalized to 3","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":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","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":"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":"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":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/build.yml:1","Info: no jobLevel write permissions found"],"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":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"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":"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":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/build.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/bridgetownrb/bridgetown/build.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/build.yml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/bridgetownrb/bridgetown/build.yml/main?enable=pin","Warn: containerImage not pinned by hash: .devcontainer/Dockerfile:5","Warn: containerImage not pinned by hash: .gitpod.dockerfile:1: pin your Docker image by updating gitpod/workspace-full to gitpod/workspace-full@sha256:b1195dfae7ee9a12a89d195247c3e1357cc6a18360a41473dbec67525ef434e2","Info:   0 out of   1 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 third-party GitHubAction dependencies pinned","Info:   0 out of   2 containerImage dependencies pinned"],"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":"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":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'","Warn: branch protection not enabled for branch '1-3-stable'"],"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":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 19 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"16 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-353f-x4gh-cqq8","Warn: Project is vulnerable to: GHSA-5w6v-399v-w3cc","Warn: Project is vulnerable to: GHSA-mrxw-mxhj-p664","Warn: Project is vulnerable to: GHSA-vvfq-8hwr-qm4m","Warn: Project is vulnerable to: GHSA-47m2-26rw-j2jw","Warn: Project is vulnerable to: GHSA-7g2v-jj9q-g3rg","Warn: Project is vulnerable to: GHSA-7wqh-767x-r66v","Warn: Project is vulnerable to: GHSA-8cgq-6mh2-7j6v","Warn: Project is vulnerable to: GHSA-gjh7-p2fx-99vx","Warn: Project is vulnerable to: GHSA-mqcp-p2hv-vw6x","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6"],"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-17T09:04:27.270Z","repository_id":37101979,"created_at":"2025-08-17T09:04:27.270Z","updated_at":"2025-08-17T09:04:27.270Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: 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":["blog-engine","bridgetown","documentation-tool","esbuild","jamstack","ruby","static-site-generator"],"created_at":"2024-07-30T21:00:57.288Z","updated_at":"2026-01-16T14:49:51.459Z","avatar_url":"https://github.com/bridgetownrb.png","language":"Ruby","funding_links":["https://github.com/sponsors/jaredcwhite"],"categories":["Ruby","Official Resources","Static Site Generation","Basics"],"sub_categories":["Ruby basics"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.bridgetownrb.com\"\u003e\n    \u003cimg src=\"https://www.bridgetownrb.com/images/bridgetown-logo-twitter-card.jpg?v=1\" alt=\"Bridgetown\" width=\"750\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://www.bridgetownrb.com\"\u003eBridgetown\u003c/a\u003e\n\u003c/h1\u003e\n\nBridgetown is a next-generation, progressive site generator \u0026 fullstack framework, powered by Ruby. Bridgetown takes your local content and external data loaded from APIs; renders templates in Markdown, ERB, and many other formats; automatically compiles frontend assets via esbuild; and exports a complete website ready to be served by fast CDNs like Render or traditional web servers. Bridgetown also integrates closely with Roda for fullstack, dynamic web application functionality—but only when and where you need it.\n\n[![Build Status](https://github.com/bridgetownrb/bridgetown/workflows/build/badge.svg)](https://github.com/bridgetownrb/bridgetown/actions?query=workflow%3Abuild+branch%3Amain)\n[![Gem Version](https://img.shields.io/gem/v/bridgetown.svg)](https://rubygems.org/gems/bridgetown)\n[![Licensed MIT](https://img.shields.io/badge/license-MIT-yellowgreen.svg)](LICENSE)\n[![Join the Discord Chat](https://img.shields.io/discord/711236503493148733?color=forestgreen\u0026logo=discord)](https://discord.gg/4E6hktQGz4)\n[![PRs welcome!](https://img.shields.io/badge/PRs-welcome-blue.svg)](https://github.com/bridgetownrb/bridgetown/blob/main/CONTRIBUTING.md)\n\n----\n\n## Special Thanks to Our GitHub Sponsors! 🙏 🎉\n\nSay howdy 👋 to our blossoming list of current and past sponsors of Bridgetown on GitHub!\n[You too can join this list and sponsor open source \"alt\" Ruby development.](https://github.com/sponsors/jaredcwhite)\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/svoop?s=256\" alt=\"svoop\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/rahoulb?s=256\" alt=\"rahoulb\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/joshuap?s=256\" alt=\"joshuap\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/skvk?s=256\" alt=\"skvk\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/monfresh?s=256\" alt=\"monfresh\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/svoop\"\u003e@svoop\u003c/a\u003e|\u003ca href=\"https://github.com/rahoulb\"\u003e@rahoulb\u003c/a\u003e|\u003ca href=\"https://github.com/joshuap\"\u003e@joshuap\u003c/a\u003e|\u003ca href=\"https://github.com/skvk\"\u003e@skvk\u003c/a\u003e|\u003ca href=\"https://github.com/monfresh\"\u003e@monfresh\u003c/a\u003e|\n|\u003ca href=\"https://bitcetera.com/\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://theartandscienceofruby.com/\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://joshuawood.net/\"\u003eWebsite\u003c/a\u003e||\u003ca href=\"https://www.moncefbelyamani.com/\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/renuo?s=256\" alt=\"renuo\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/subsevenx?s=256\" alt=\"subsevenx\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/collindonnell?s=256\" alt=\"collindonnell\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/nbkkb7x?s=256\" alt=\"nbkkb7x\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/bpo?s=256\" alt=\"bpo\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/renuo\"\u003e@renuo\u003c/a\u003e|\u003ca href=\"https://github.com/subsevenx\"\u003e@subsevenx\u003c/a\u003e|\u003ca href=\"https://github.com/collindonnell\"\u003e@collindonnell\u003c/a\u003e|\u003ca href=\"https://github.com/nbkkb7x\"\u003e@nbkkb7x\u003c/a\u003e|\u003ca href=\"https://github.com/bpo\"\u003e@bpo\u003c/a\u003e|\n|\u003ca href=\"https://www.renuo.ch/\"\u003eWebsite\u003c/a\u003e||\u003ca href=\"http://collindonnell.com/\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://somethingkiller.com\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://brian.orourke.io\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/DRBragg?s=256\" alt=\"DRBragg\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/andrewmcodes?s=256\" alt=\"andrewmcodes\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/karloscarweber?s=256\" alt=\"karloscarweber\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/swilgosz?s=256\" alt=\"swilgosz\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/ttilberg?s=256\" alt=\"ttilberg\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/DRBragg\"\u003e@DRBragg\u003c/a\u003e|\u003ca href=\"https://github.com/andrewmcodes\"\u003e@andrewmcodes\u003c/a\u003e|\u003ca href=\"https://github.com/karloscarweber\"\u003e@karloscarweber\u003c/a\u003e|\u003ca href=\"https://github.com/swilgosz\"\u003e@swilgosz\u003c/a\u003e|\u003ca href=\"https://github.com/ttilberg\"\u003e@ttilberg\u003c/a\u003e|\n|\u003ca href=\"https://www.drbragg.dev\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://andrewm.codes\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://kow.fm/\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://hanamimastery.com/\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"http://www.timtilberg.com\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/Brem-LLC?s=256\" alt=\"Brem-LLC\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/posiczko?s=256\" alt=\"posiczko\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/fuzzygroup?s=256\" alt=\"fuzzygroup\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/maxveldink?s=256\" alt=\"maxveldink\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/oleingemann?s=256\" alt=\"oleingemann\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/Brem-LLC\"\u003e@Brem-LLC\u003c/a\u003e|\u003ca href=\"https://github.com/posiczko\"\u003e@posiczko\u003c/a\u003e|\u003ca href=\"https://github.com/fuzzygroup\"\u003e@fuzzygroup\u003c/a\u003e|\u003ca href=\"https://github.com/maxveldink\"\u003e@maxveldink\u003c/a\u003e|\u003ca href=\"https://github.com/oleingemann\"\u003e@oleingemann\u003c/a\u003e|\n|\u003ca href=\"https://brem.io\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://tetrapyloctomy.org\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://fuzzyblog.io/blog/\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://maxveld.ink\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://www.oleingemann.com\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/onurozer?s=256\" alt=\"onurozer\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/joelhawksley?s=256\" alt=\"joelhawksley\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/coreyaus?s=256\" alt=\"coreyaus\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/johlym?s=256\" alt=\"johlym\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/pascallaliberte?s=256\" alt=\"pascallaliberte\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/onurozer\"\u003e@onurozer\u003c/a\u003e|\u003ca href=\"https://github.com/joelhawksley\"\u003e@joelhawksley\u003c/a\u003e|\u003ca href=\"https://github.com/coreyaus\"\u003e@coreyaus\u003c/a\u003e|\u003ca href=\"https://github.com/johlym\"\u003e@johlym\u003c/a\u003e|\u003ca href=\"https://github.com/pascallaliberte\"\u003e@pascallaliberte\u003c/a\u003e|\n|\u003ca href=\"https://onurozer.me\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://hawksley.org\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://www.codenation.com\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://johnathan.org\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://pascal.works\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/luctus?s=256\" alt=\"luctus\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/AbuMareBear?s=256\" alt=\"AbuMareBear\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/rootnoob?s=256\" alt=\"rootnoob\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/matoni109?s=256\" alt=\"matoni109\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/jc00ke?s=256\" alt=\"jc00ke\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/luctus\"\u003e@luctus\u003c/a\u003e|\u003ca href=\"https://github.com/AbuMareBear\"\u003e@AbuMareBear\u003c/a\u003e|\u003ca href=\"https://github.com/rootnoob\"\u003e@rootnoob\u003c/a\u003e|\u003ca href=\"https://github.com/matoni109\"\u003e@matoni109\u003c/a\u003e|\u003ca href=\"https://github.com/jc00ke\"\u003e@jc00ke\u003c/a\u003e|\n|\u003ca href=\"https://dailytics.com\"\u003eWebsite\u003c/a\u003e||||\u003ca href=\"https://relativepath.io/\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/jespr?s=256\" alt=\"jespr\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/MikeRogers0?s=256\" alt=\"MikeRogers0\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/existentialmutt?s=256\" alt=\"existentialmutt\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/jr180180?s=256\" alt=\"jr180180\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/eclectic-coding?s=256\" alt=\"eclectic-coding\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/jespr\"\u003e@jespr\u003c/a\u003e|\u003ca href=\"https://github.com/MikeRogers0\"\u003e@MikeRogers0\u003c/a\u003e|\u003ca href=\"https://github.com/existentialmutt\"\u003e@existentialmutt\u003c/a\u003e|\u003ca href=\"https://github.com/jr180180\"\u003e@jr180180\u003c/a\u003e|\u003ca href=\"https://github.com/eclectic-coding\"\u003e@eclectic-coding\u003c/a\u003e|\n||||\u003ca href=\"http://johnsanchez.me/\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://www.eclecticcoding.com/\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/williamkennedy?s=256\" alt=\"williamkennedy\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/adrianvalenz?s=256\" alt=\"adrianvalenz\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/scoutapm-sponsorships?s=256\" alt=\"scoutapm-sponsorships\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/asaaki?s=256\" alt=\"asaaki\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/leastbad?s=256\" alt=\"leastbad\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/williamkennedy\"\u003e@williamkennedy\u003c/a\u003e|\u003ca href=\"https://github.com/adrianvalenz\"\u003e@adrianvalenz\u003c/a\u003e|\u003ca href=\"https://github.com/scoutapm-sponsorships\"\u003e@scoutapm-sponsorships\u003c/a\u003e|\u003ca href=\"https://github.com/asaaki\"\u003e@asaaki\u003c/a\u003e|\u003ca href=\"https://github.com/leastbad\"\u003e@leastbad\u003c/a\u003e|\n|\u003ca href=\"https://williamkennedy.ninja\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://adrianvalenz.com\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://scoutapm.com\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://markentier.tech/\"\u003eWebsite\u003c/a\u003e||\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/jasoncharnes?s=256\" alt=\"jasoncharnes\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/pascalwengerter?s=256\" alt=\"pascalwengerter\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/wout?s=256\" alt=\"wout\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/johnchambers?s=256\" alt=\"johnchambers\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/mtomov?s=256\" alt=\"mtomov\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/jasoncharnes\"\u003e@jasoncharnes\u003c/a\u003e|\u003ca href=\"https://github.com/pascalwengerter\"\u003e@pascalwengerter\u003c/a\u003e|\u003ca href=\"https://github.com/wout\"\u003e@wout\u003c/a\u003e|\u003ca href=\"https://github.com/johnchambers\"\u003e@johnchambers\u003c/a\u003e|\u003ca href=\"https://github.com/mtomov\"\u003e@mtomov\u003c/a\u003e|\n|\u003ca href=\"http://www.jasoncharnes.com\"\u003eWebsite\u003c/a\u003e|\u003ca href=\"https://pascal.rocks\"\u003eWebsite\u003c/a\u003e|||\u003ca href=\"https://www.howtoruby.com/\"\u003eWebsite\u003c/a\u003e|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/marcoroth?s=256\" alt=\"marcoroth\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/miatrinity?s=256\" alt=\"miatrinity\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/pilotcph?s=256\" alt=\"pilotcph\" width=\"128\" /\u003e|\u003cimg src=\"https://www.gravatar.com/avatar/00000000000000000000000000000000?d=identicon\u0026s=128\u0026\" alt=\"\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/marcoroth\"\u003e@marcoroth\u003c/a\u003e|\u003ca href=\"https://github.com/miatrinity\"\u003e@miatrinity\u003c/a\u003e|\u003ca href=\"https://github.com/pilotcph\"\u003e@pilotcph\u003c/a\u003e|\u003ca href=\"https://github.com/sponsors/jaredcwhite\"\u003eYou Next?\u003c/a\u003e|\n|\u003ca href=\"https://marcoroth.dev\"\u003eWebsite\u003c/a\u003e||\u003ca href=\"http://www.pilotcph.dk\"\u003eWebsite\u003c/a\u003e||\n\n## Commercial Support\n\nBridgetown development is spearheaded by Portland-based web studio [Whitefusion](https://www.whitefusion.studio). Contact us if you need commercial support for your Bridgetown content strategy, site design, or deployment. Also providing commercial support: [Radioactive Toy](https://radioactivetoy.tech) based in the UK.\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=bridgetownrb/bridgetown\u0026type=Date)](https://star-history.com/#bridgetownrb/bridgetown\u0026Date)\n\n----\n\n## Start Here\n\n* [Install](https://www.bridgetownrb.com/docs/) the Bridgetown gem\n* Familiarize yourself with the [Command Line Usage](https://www.bridgetownrb.com/docs/command-line-usage/) and [Site Configuration](https://bridgetownrb.com/docs/configuration/)\n* Explore the best options for [Deploying Your Site](https://www.bridgetownrb.com/docs/deployment) when it's ready to go live\n* Have questions? Check out our new [Community discussion site](https://community.bridgetown.pub) or [chat on Discord](https://discord.gg/4E6hktQGz4)\n* [Fork Bridgetown](https://github.com/bridgetownrb/bridgetown/fork) and contribute your own improvements!\n\n## Get Up to Speed\n\n* Explore the [Folder Structure](https://www.bridgetownrb.com/docs/structure) of a Bridgetown website\n* Start adding content to your site in the form of [Resources](https://www.bridgetownrb.com/docs/resources/)\n* Learn how [Front Matter](https://www.bridgetownrb.com/docs/front-matter/) works for adding metadata to resources\n* Add extra information to your site with [Data Files](https://www.bridgetownrb.com/docs/datafiles/)\n* Customize the [Permalinks](https://www.bridgetownrb.com/docs/content/permalinks/) your resources are generated with\n* Use [Template Engines](https://www.bridgetownrb.com/docs/template-engines) like Liquid, ERB, and Serbea to author sophisticated template designs\n* Extend with [Custom Plugins](https://www.bridgetownrb.com/docs/plugins/) to generate and manipulate content specific to your site\n* Discover how to add [Frontend Assets](https://www.bridgetownrb.com/docs/frontend-assets/) using esbuild for a modern Javascript \u0026 CSS build pipeline\n\n## Testing Locally\n\nIf you'd like to hack away on Bridgetown directly, you'll need to clone this repo and ensure the test suite passes. Note that this is a \"monorepo\", meaning that multiple Rubygem codebases are stored within a single repo.\n\n```shell\n$ git clone git@github.com:bridgetownrb/bridgetown.git\n$ cd bridgetown\n$ bundle # install development gems\n$ bundle exec rake # run the full test suite\n```\n\nAfter making changes in one of the gems, say `bridgetown-core`, if you want to run a single unit test, you can use the command:\n\n```shell\n$ script/test test/test_foo.rb\n```\n\nOr run `script/test` to run the full test suite. You can also run `script/cibuild` to include Rubocop linting, etc., and at the root level of the repo, run `bundle exec rake test_all` to test the entire monorepo.\n\nTo switch one of your own website repos to using the local gem, add the local gem path to\nthe site's Gemfile as follows:\n\n```ruby\ngem \"bridgetown-core\", path: \"/path/to/bridgetown/bridgetown-core\"\n# additional gems as needed\n```\n\n## Need help?\n\nIf you don't find the answer to your problem in our [docs](https://www.bridgetownrb.com/docs/), ask the [community](https://www.bridgetownrb.com/community) for help.\n\n## Code of Conduct\n\nIn order to have a more open and welcoming community, Bridgetown adheres to a\n[code of conduct](CODE_OF_CONDUCT.md) adapted from the Contributor Covenant.\n\nPlease adhere to this code of conduct in any interactions you have in the\nBridgetown community. It is strictly enforced on all official Bridgetown\nrepositories, websites, and resources. If you encounter someone violating\nthese terms, please let one of our [core team members](mailto:maintainers@bridgetownrb.com) know and we will address it as soon as possible.\n\n## Contributors\n\n\u003e [!NOTE]\n\u003e Interested in joining the Bridgetown Core Team? Send a DM to Jared in [Discord](https://discord.gg/4E6hktQGz4) and let's chat!\n\nBridgetown is built by:\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/jaredcwhite?s=256\" alt=\"jaredcwhite\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/jaredmoody?s=256\" alt=\"jaredmoody\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/andrewmcodes?s=256\" alt=\"andrewmcodes\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/ParamagicDev?s=256\" alt=\"ParamagicDev\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/MikeRogers0?s=256\" alt=\"MikeRogers0\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/jaredcwhite\"\u003e@jaredcwhite\u003c/a\u003e|\u003ca href=\"https://github.com/jaredmoody\"\u003e@jaredmoody\u003c/a\u003e|\u003ca href=\"https://github.com/andrewmcodes\"\u003e@andrewmcodes\u003c/a\u003e|\u003ca href=\"https://github.com/ParamagicDev\"\u003e@ParamagicDev\u003c/a\u003e|\u003ca href=\"https://github.com/MikeRogers0\"\u003e@MikeRogers0\u003c/a\u003e|\n|Portland, OR|Portland, OR|Wilmington, NC|Providence, RI|Ny-Ålesund, Svalbard|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/wout?s=256\" alt=\"wout\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/codemargaret?s=256\" alt=\"codemargaret\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/julianrubisch?s=256\" alt=\"julianrubisch\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/ianbayne?s=256\" alt=\"ianbayne\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/ayushn21?s=256\" alt=\"ayushn\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/wout\"\u003e@wout\u003c/a\u003e|\u003ca href=\"https://github.com/codemargaret\"\u003e@codemargaret\u003c/a\u003e|\u003ca href=\"https://github.com/julianrubisch\"\u003e@julianrubisch\u003c/a\u003e|\u003ca href=\"https://github.com/ianbayne\"\u003e@ianbayne\u003c/a\u003e|\u003ca href=\"https://github.com/ayushn21\"\u003e@ayushn21\u003c/a\u003e|\n|Brighton, UK|Portland, OR|Vienna, Austria|Tokyo, Japan|London, UK|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/bkmgit?s=256\" alt=\"\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/pascalwengerter?s=256\" alt=\"pascalwengerter\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/u/57881112?s=460\u0026u=51f2d296a79c3f045172c7b18a704c994e0eee08\u0026v=4\" alt=\"marketerly\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/juanvqz?s=256\" alt=\"juanvqz\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/katafrakt?s=256\" alt=\"katafrakt\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/bkmgit\"\u003e@bkmgit\u003c/a\u003e|\u003ca href=\"https://github.com/pascalwengerter\"\u003e@pascalwengerter\u003c/a\u003e|\u003ca href=\"https://github.com/marketerly\"\u003e@marketerly\u003c/a\u003e|\u003ca href=\"https://github.com/juanvqz\"\u003e@juanvqz\u003c/a\u003e|\u003ca href=\"https://github.com/katafrakt\"\u003e@katafrakt\u003c/a\u003e|\n||Lisbon, Portugal|Tripoli, Libya|Oaxaca, México|Wrocław, PL|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/erikyuzwa?s=256\" alt=\"erikyuzwa\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/eclectic-coding?s=256\" alt=\"eclectic-coding\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/collindonnell?s=256\" alt=\"collindonnell\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/juhat?s=256\" alt=\"juhat\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/debashis-biswal?s=256\" alt=\"\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/erikyuzwa\"\u003e@erikyuzwa\u003c/a\u003e|\u003ca href=\"https://github.com/eclectic-coding\"\u003e@eclectic-coding\u003c/a\u003e|\u003ca href=\"https://github.com/collindonnell\"\u003e@collindonnell\u003c/a\u003e|\u003ca href=\"https://github.com/juhat\"\u003e@juhat\u003c/a\u003e|\u003ca href=\"https://github.com/debashis-biswal\"\u003e@debashis-biswal\u003c/a\u003e|\n|Calgary, AB|North Carolina, US|Portland, OR|Budapest, Hungary||\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/nachoal?s=256\" alt=\"nachoal\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/deivid-rodriguez?s=256\" alt=\"deivid-rodriguez\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/Eric-Guo?s=256\" alt=\"Eric-Guo\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/jacobherrington?s=256\" alt=\"jacobherrington\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/fpsvogel?s=256\" alt=\"\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/nachoal\"\u003e@nachoal\u003c/a\u003e|\u003ca href=\"https://github.com/deivid-rodriguez\"\u003e@deivid-rodriguez\u003c/a\u003e|\u003ca href=\"https://github.com/Eric-Guo\"\u003e@Eric-Guo\u003c/a\u003e|\u003ca href=\"https://github.com/jacobherrington\"\u003e@jacobherrington\u003c/a\u003e|\u003ca href=\"https://github.com/fpsvogel\"\u003e@fpsvogel\u003c/a\u003e|\n|CDMX, México|Madrid, Spain|Shanghai, China|Fayetteville, AR|Lexington, KY|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/vvveebs?s=256\" alt=\"vvveebs\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/rickychilcott?s=256\" alt=\"rickychilcott\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/tommasongr?s=256\" alt=\"tommasongr\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/tombruijn?s=256\" alt=\"tombruijn\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/svoop?s=256\" alt=\"svoop\" width=\"128\" /\u003e|\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/vvveebs\"\u003e@vvveebs\u003c/a\u003e|\u003ca href=\"https://github.com/rickychilcott\"\u003e@rickychilcott\u003c/a\u003e|\u003ca href=\"https://github.com/tommasongr\"\u003e@tommasongr\u003c/a\u003e|\u003ca href=\"https://github.com/tombruijn\"\u003e@tombruijn\u003c/a\u003e|\u003ca href=\"https://github.com/svoop\"\u003e@svoop\u003c/a\u003e|\n|London, UK|Ohio, US|Amsterdam, The Netherlands|Milan, IT|Europe|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/michaelherold?s=256\" alt=\"michaelherold\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/joemasilotti?s=256\" alt=\"joemasilotti\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/ikass?s=256\" alt=\"ikass\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/jw81?s=256\" alt=\"jw81\" width=\"128\" /\u003e|\u003cimg src=\"https://avatars.githubusercontent.com/MSILycanthropy?s=256\" alt=\"jw81\" width=\"128\" /\u003e\n|:---:|:---:|:---:|:---:|:---:|\n|\u003ca href=\"https://github.com/michaelherold\"\u003e@michaelherold\u003c/a\u003e|\u003ca href=\"https://github.com/joemasilotti\"\u003e@joemasilotti\u003c/a\u003e|\u003ca href=\"https://github.com/Ikass\"\u003e@ikass\u003c/a\u003e|\u003ca href=\"https://github.com/jw81\"\u003e@jw81\u003c/a\u003e|\u003ca href=\"https://github.com/MSILycanthropy\"\u003e@MSILycanthropy\u003c/a\u003e|\n|Omaha, NE|Portland, OR|Latvia|Kansas City, MO|Kansas City, MO|\n\n|\u003cimg src=\"https://avatars.githubusercontent.com/jeremyevans?s=256\" alt=\"jeremyevans\" width=\"128\" /\u003e|\u003cimg src=\"https://www.gravatar.com/avatar/00000000000000000000000000000000?d=identicon\u0026s=128\u0026\" alt=\"\" width=\"128\" /\u003e|\n|:---:|:---:|\n|\u003ca href=\"https://github.com/jeremyevans\"\u003e@jeremyevans\u003c/a\u003e|You Next?|\n|Sacramento, CA|Anywhere|\n\n## License\n\nThe gem is available as open source under the terms of the [MIT LICENSE](./LICENSE) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbridgetownrb%2Fbridgetown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbridgetownrb%2Fbridgetown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbridgetownrb%2Fbridgetown/lists"}