From 988b38c364caf87740bcbec922f7d0d22fdf548e Mon Sep 17 00:00:00 2001 From: Vlad-Stefan Harbuz Date: Tue, 28 Oct 2025 21:59:44 +0000 Subject: [PATCH 1/3] README: add credits --- README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/README.md b/README.md index e4b9f9bb..65ac72cf 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,25 @@ the code, developer time, and gifts-in-kind that many Pledge member companies al * **Just want to keep up to date?** Follow us on [Mastodon][mastodon] or [Bluesky][bsky]. * **Want to cite our work?** Click “cite this repository” in the top right. +--- + +Open Source Pledge is brought to you by [Sentry][sentry] and contributors. +The core team is: +[Vlad-Stefan Harbuz][vlad.website] (independent), +[Greg Kumparak][greg] (Sentry), +[Michael Selvidge][selviano] (Sentry), and +[Chad Whitacre][chad] (Sentry). +Design is by Sentry's in-house creative team, +[Studio 404][studio404]. + [bsky]: https://bsky.app/profile/opensourcepledge.com +[chad]: https://chadwhitacre.com/ [contributors]: https://github.com/opensourcepledge/opensourcepledge.com/graphs/contributors [cramer-author]: https://blog.sentry.io/authors/david-cramer/ [crisis]: https://openpath.quest/2024/the-open-source-sustainability-crisis/ [fosdem-talk]: https://www.youtube.com/watch?v=UarZwUjFJpI [fosdem]: https://fosdem.org/2025/ +[greg]: https://www.kumparak.com/ [issues]: https://github.com/opensourcepledge/opensourcepledge.com/issues [join]: https://opensourcepledge.com/join/ [launch-ticket]: https://github.com/opensourcepledge/opensourcepledge.com/issues/4 @@ -51,7 +64,9 @@ the code, developer time, and gifts-in-kind that many Pledge member companies al [openpath]: https://openpath.quest/ [osp]: https://opensourcepledge.com [pledgephil]: https://vlad.website/the-philosophy-of-the-open-source-pledge/ +[selviano]: https://github.com/selviano [sentry-blog-post]: https://blog.sentry.io/join-the-pledge/ [sentry]: https://sentry.io/welcome/ [slack]: https://join.slack.com/t/opensourcepledge/shared_invite/zt-33qxp7jsz-CJeYxDBnc2Y3FuZvGCHLMw +[studio404]: https://sentry.design/ [vlad.website]: https://vlad.website/ From 4dcf7d39d86ad72a99d7000f8d14b9c88fb33f72 Mon Sep 17 00:00:00 2001 From: Vlad-Stefan Harbuz Date: Tue, 28 Oct 2025 22:06:21 +0000 Subject: [PATCH 2/3] MiniLeaderboard: add border-radius to image --- src/components/MiniLeaderboard.astro | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/MiniLeaderboard.astro b/src/components/MiniLeaderboard.astro index 15cb9010..9c92c194 100644 --- a/src/components/MiniLeaderboard.astro +++ b/src/components/MiniLeaderboard.astro @@ -37,6 +37,7 @@ const members = sortMembersByDevs(await getMembers()); img { max-width: 3.5rem; margin-right: 1rem; + border-radius: 0.5rem; } a { display: flex; From 2405b29e6585e84d5492571676d3fda11097d46f Mon Sep 17 00:00:00 2001 From: Vlad-Stefan Harbuz Date: Tue, 28 Oct 2025 22:07:40 +0000 Subject: [PATCH 3/3] refactor member data storage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Refactor member data to use directly-read JSON files, instead of mediating reading through Astro collections. The usage of Astro collections was causing difficulties with non-Astro scripts, and making the code more complicated overall. * Remove `memberRoles.json` — member roles are now stored in a `role` field in each JSON file. * Rework the system for marking members as inactive by adding an `active` field to each JSON file. * Add `id` to member JSON files. * Mark Browserbase, Laravel and Pixee as inactive. * Add inactive members to the bottom of the Members page. --- CONTRIBUTING.md | 22 ++-- REUSE.toml | 5 +- bin/make-generated-resources | 2 +- contrib/ethicalads/makeAdData.ts | 19 +--- {src/content => data}/members/.gitkeep | 0 {src/content => data}/members/ag-grid.json | 3 + {src/content => data}/members/antithesis.json | 3 + {src/content => data}/members/astral.json | 3 + {src/content => data}/members/bolt.json | 3 + .../content => data}/members/browserbase.json | 3 + {src/content => data}/members/buttondown.json | 3 + {src/content => data}/members/chieftools.json | 3 + {src/content => data}/members/convex.json | 3 + .../members/foxley-talent.json | 3 + .../members/frontend-masters.json | 3 + {src/content => data}/members/gitbook.json | 3 + {src/content => data}/members/gitbutler.json | 3 + {src/content => data}/members/herodevs.json | 3 + .../content => data}/members/httptoolkit.json | 3 + {src/content => data}/members/keygen.json | 3 + {src/content => data}/members/laravel.json | 3 + {src/content => data}/members/pixee.json | 3 + .../members/platformatic.json | 3 + {src/content => data}/members/posit.json | 3 + {src/content => data}/members/prefect.json | 3 + .../members/private-packagist.json | 3 + {src/content => data}/members/pydantic.json | 3 + {src/content => data}/members/rector.json | 3 + .../members/saas-pegasus.json | 3 + {src/content => data}/members/sanity.json | 3 + {src/content => data}/members/scalar.json | 3 + {src/content => data}/members/sentry.json | 3 + {src/content => data}/members/speakeasy.json | 3 + {src/content => data}/members/tideways.json | 3 + {src/content => data}/members/val-town.json | 3 + {src/content => data}/members/vlt.json | 3 + {src/content => data}/members/voidzero.json | 3 + {src/content => data}/members/zerodha.json | 3 + public/generated/output/opengraph.png | Bin 0 -> 57400 bytes public/generated/templates/opengraph.svg | 2 +- src/cache/jobSet.json | 2 +- src/components/GridMemberList.astro | 32 +++--- src/components/MiniLeaderboard.astro | 9 +- src/components/MiniMemberList.astro | 87 +++++++++++++++ src/components/TabularMemberList.astro | 24 ++-- src/components/TotalTally.astro | 5 +- src/content/config.ts | 13 --- src/jobs/index.ts | 12 +- src/memberCollections.ts | 27 ----- src/memberData/bin/getGrandTotalRaised.ts | 37 ------ src/memberRoles.json | 34 ------ .../bin/archiveMembers.ts | 18 +-- .../bin/checkMembers.ts | 18 +-- src/members/bin/getGrandTotalRaised.ts | 14 +++ src/{memberData => members}/common.ts | 105 +++++++++++++----- src/pages/about.astro | 4 +- src/pages/jobs.astro | 6 +- src/pages/members/[id].astro | 16 +-- src/pages/members/index.astro | 15 ++- src/schemas/members.ts | 34 ------ 60 files changed, 368 insertions(+), 293 deletions(-) rename {src/content => data}/members/.gitkeep (100%) rename {src/content => data}/members/ag-grid.json (93%) rename {src/content => data}/members/antithesis.json (93%) rename {src/content => data}/members/astral.json (93%) rename {src/content => data}/members/bolt.json (95%) rename {src/content => data}/members/browserbase.json (92%) rename {src/content => data}/members/buttondown.json (89%) rename {src/content => data}/members/chieftools.json (92%) rename {src/content => data}/members/convex.json (93%) rename {src/content => data}/members/foxley-talent.json (94%) rename {src/content => data}/members/frontend-masters.json (90%) rename {src/content => data}/members/gitbook.json (94%) rename {src/content => data}/members/gitbutler.json (94%) rename {src/content => data}/members/herodevs.json (94%) rename {src/content => data}/members/httptoolkit.json (95%) rename {src/content => data}/members/keygen.json (95%) rename {src/content => data}/members/laravel.json (94%) rename {src/content => data}/members/pixee.json (93%) rename {src/content => data}/members/platformatic.json (94%) rename {src/content => data}/members/posit.json (95%) rename {src/content => data}/members/prefect.json (94%) rename {src/content => data}/members/private-packagist.json (93%) rename {src/content => data}/members/pydantic.json (96%) rename {src/content => data}/members/rector.json (94%) rename {src/content => data}/members/saas-pegasus.json (93%) rename {src/content => data}/members/sanity.json (95%) rename {src/content => data}/members/scalar.json (90%) rename {src/content => data}/members/sentry.json (96%) rename {src/content => data}/members/speakeasy.json (91%) rename {src/content => data}/members/tideways.json (93%) rename {src/content => data}/members/val-town.json (89%) rename {src/content => data}/members/vlt.json (90%) rename {src/content => data}/members/voidzero.json (92%) rename {src/content => data}/members/zerodha.json (95%) create mode 100644 public/generated/output/opengraph.png create mode 100644 src/components/MiniMemberList.astro delete mode 100644 src/content/config.ts delete mode 100644 src/memberCollections.ts delete mode 100755 src/memberData/bin/getGrandTotalRaised.ts delete mode 100644 src/memberRoles.json rename src/{memberData => members}/bin/archiveMembers.ts (82%) rename src/{memberData => members}/bin/checkMembers.ts (71%) create mode 100755 src/members/bin/getGrandTotalRaised.ts rename src/{memberData => members}/common.ts (73%) delete mode 100644 src/schemas/members.ts diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 74450112..1a48ffe9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,10 +45,10 @@ Here's what the workflow for a new member looks like: For a new member to join, they must create an issue asking to join and providing the information requested in our [Join][join] page. -### 2. Create `src/content/members/.json` +### 2. Create `data/members/.json` After verifying that the prospective member's submitted data is correct, create a JSON file in -`src/content/members/.json` with this data. The member slug should contain no spaces. +`data/members/.json` with all the member's information. ### 3. Add logo to `public/images/members` @@ -69,15 +69,7 @@ magick logo.jpg -resize '>800x' -quality 99 -define webp:lossless=false -define Remember that a corresponding `logo.webp.license` file must also be added. -### 4. Add role to `src/memberRoles.json` - -The step which actually causes a member to show up on the website is adding them to `src/memberRoles.json`. For an -entry's key, use the same member slug you used in the JSON filename. Members should have a “Member” role by default, -though members can also have custom roles. - -At this point, the member will show up on the website. - -### 5. (Technically Optional) Add logo to `src/assets/images/members` +### 4. (Technically Optional) Add logo to `src/assets/images/members` For a member's logo to show up on the homepage, it must be added to `src/assets/images/members//minimal.svg`. This should be a white- or greyscale-only version of the member's logo. If in doubt, check the other existing logos. Note @@ -89,13 +81,13 @@ For the logo to actually show up on the homepage, you also need to edit `MemberL appropriate place. Check if giving the `maxHeight` property a specific value will make the new logo fit in better from a visually proportional point of view. -### 6. Add member logo to Google Drive +### 5. Add member logo to Google Drive When onboarding members, we will receive logo files for those members. Make sure to contribute these logo files, and any modified logo files you create, back to our [“Member Logos”][member-logos] Google Drive folder. If you don't have access, contact @selviano. -### 7. Update member information in CRM +### 6. Update member information in CRM Make sure the new member company's information is up to date in our [CRM][crm]. This is important in order to make sure we don't use out of date data. If the company is not yet in the CRM, add it and apply the appropriate labels. If the @@ -111,7 +103,7 @@ plan to renew, or (2) their report due date, plus a grace period of a month, hav When removing a member, take the following steps: -* Remove the member from `src/memberRoles.json`, causing the member to no longer be displayed on the website +* Set `"active": false` in the member's JSON file, causing the member to no longer be displayed on the website * Remove the member's logo from wherever it may be featured on the website, such as `MemberLogoBoard.astro` Do not delete any of the member's files. The member's JSON file, as well as their logo assets, might be useful in the @@ -132,7 +124,7 @@ that we can compactly archive a report into a single file. To archive all reports, run this from the repository root: ``` -$ ./src/memberData/bin/archiveMembers.ts +$ ./src/members/bin/archiveMembers.ts ``` This will archive reports using the following directory structure: diff --git a/REUSE.toml b/REUSE.toml index 59d7d6cd..417e9599 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -11,16 +11,13 @@ path = [ "CNAME", "REUSE.toml", "astro.config.mjs", - "members.csv", + "data/members/*", "package-lock.json", "package.json", "public/.well-known/atproto-did", - "public/images/example-members/*", "public/robots.txt", "src/cache/jobSet.json", - "src/content/members/*", "src/env.d.ts", - "src/memberRoles.json", "tsconfig.json", ] SPDX-FileCopyrightText = "NONE" diff --git a/bin/make-generated-resources b/bin/make-generated-resources index 3783fd69..3a1b29c3 100755 --- a/bin/make-generated-resources +++ b/bin/make-generated-resources @@ -46,7 +46,7 @@ done echo 'Generating files' -grand_total=$(./src/memberData/bin/getGrandTotalRaised.ts) +grand_total=$(./src/members/bin/getGrandTotalRaised.ts) sed -i "s/\\\$[^<]\\+/${grand_total}/" public/generated/templates/opengraph.svg echo 'Generated SVG file' diff --git a/contrib/ethicalads/makeAdData.ts b/contrib/ethicalads/makeAdData.ts index 4e24c7e9..fbb54129 100755 --- a/contrib/ethicalads/makeAdData.ts +++ b/contrib/ethicalads/makeAdData.ts @@ -5,22 +5,11 @@ // Must be run in repository root. -import fs from 'fs'; -import memberRoles from '../../src/memberRoles.json'; -const memberIds = Object.keys(memberRoles); +import { getMembers } from '../../src/members/common.ts'; +const members = getMembers(); console.log('id,name,image,headline,text,cta'); -for (const id of memberIds) { - const localPath = `./src/content/members/${id}.json`; - - let member = undefined; - try { - member = JSON.parse(fs.readFileSync(localPath).toString()); - } catch (e) { - console.error(`ERROR: could not load member data at ${localPath}`, e); - process.exit(1); - } - - console.log(`${id},${member["name"]},ad-${id}.png,No burnout.,Fewer vulns. Pay maintainers like ${member["name"]} does!,Join the Open Source Pledge. 💃🏻 `); +for (const member of members) { + console.log(`${member.id},${member.name},ad-${member.id}.png,No burnout.,Fewer vulns. Pay maintainers like ${member.name} does!,Join the Open Source Pledge. 💃🏻 `); } diff --git a/src/content/members/.gitkeep b/data/members/.gitkeep similarity index 100% rename from src/content/members/.gitkeep rename to data/members/.gitkeep diff --git a/src/content/members/ag-grid.json b/data/members/ag-grid.json similarity index 93% rename from src/content/members/ag-grid.json rename to data/members/ag-grid.json index cf41d686..152eae6f 100644 --- a/src/content/members/ag-grid.json +++ b/data/members/ag-grid.json @@ -1,4 +1,7 @@ { + "id": "ag-grid", + "role": "Member", + "active": true, "name": "AG Grid", "description": "AG Grid is the best JavaScript Data Grid in the world, and now AG Charts is the best JavaScript Charting Library in the world, too. Since our foundation in 2016, we've always been strong supporters of the Open Source ecosystem, and we're proud to formalise this by joining the Open Source Pledge.", "shortDescription": "Since our foundation in 2016, we've always been strong supporters of the Open Source ecosystem.", diff --git a/src/content/members/antithesis.json b/data/members/antithesis.json similarity index 93% rename from src/content/members/antithesis.json rename to data/members/antithesis.json index 7fe52b7d..213d7edc 100644 --- a/src/content/members/antithesis.json +++ b/data/members/antithesis.json @@ -1,4 +1,7 @@ { + "id": "antithesis", + "role": "Innovator", + "active": true, "name": "Antithesis", "description": "We build an autonomous testing platform. We rely heavily on the countless hours of work contributed by OSS maintainers worldwide for everything from our internal Nix tooling to core components of our product like our deterministic hypervisor, a fork of FreeBSD.", "shortDescription": "We rely heavily on the countless hours of work contributed by OSS maintainers worldwide.", diff --git a/src/content/members/astral.json b/data/members/astral.json similarity index 93% rename from src/content/members/astral.json rename to data/members/astral.json index 463eadd1..87414f3d 100644 --- a/src/content/members/astral.json +++ b/data/members/astral.json @@ -1,4 +1,7 @@ { + "id": "astral", + "role": "Innovator", + "active": true, "name": "Astral", "description": "Open source software is at the heart of Astral. We're excited to establish a precedent for giving early and often. We hope to encourage, empower, and thank open source maintainers that inspire us.", "shortDescription": "We're excited to establish a precedent for giving early and often.", diff --git a/src/content/members/bolt.json b/data/members/bolt.json similarity index 95% rename from src/content/members/bolt.json rename to data/members/bolt.json index b12ce601..8f769aa4 100644 --- a/src/content/members/bolt.json +++ b/data/members/bolt.json @@ -1,4 +1,7 @@ { + "id": "bolt", + "role": "Innovator", + "active": true, "name": "Bolt", "description": "Bolt lets you prompt, run, edit, and deploy full-stack web and mobile apps. We depend on Open Source to build our products. We also have a close relationship with Open Source teams. They are avid users of our tools and help us improve them in a close feedback loop. We have been involved in key projects, hiring maintainers of infrastructure projects like Vite and Vitest and organizing ViteConf, a free online event for the Web community. We're happy to continue giving back to the Open Source community by joining the Open Source Pledge.", "shortDescription": "We're happy to continue giving back to the Open Source community by joining the Open Source Pledge.", diff --git a/src/content/members/browserbase.json b/data/members/browserbase.json similarity index 92% rename from src/content/members/browserbase.json rename to data/members/browserbase.json index eaaef741..ff59fc2d 100644 --- a/src/content/members/browserbase.json +++ b/data/members/browserbase.json @@ -1,4 +1,7 @@ { + "id": "browserbase", + "role": "Innovator", + "active": false, "name": "Browserbase", "description": "Headless browsers that work everywhere, every time. Control fleets of stealth browsers to build reliable browser automations. We believe in the power of open source software and its impact on the growth of the tech community.", "shortDescription": "We believe in the power of open source software and its impact on the growth of the tech community.", diff --git a/src/content/members/buttondown.json b/data/members/buttondown.json similarity index 89% rename from src/content/members/buttondown.json rename to data/members/buttondown.json index 28f6b650..f2672236 100644 --- a/src/content/members/buttondown.json +++ b/data/members/buttondown.json @@ -1,4 +1,7 @@ { + "id": "buttondown", + "role": "Innovator", + "active": true, "name": "Buttondown", "description": "Buttondown is the easiest way to send emails and grow your audience.", "shortDescription": "We — and you, even if you don't know it — would be nowhere without open source software.", diff --git a/src/content/members/chieftools.json b/data/members/chieftools.json similarity index 92% rename from src/content/members/chieftools.json rename to data/members/chieftools.json index bcd4cf6e..cf012943 100644 --- a/src/content/members/chieftools.json +++ b/data/members/chieftools.json @@ -1,4 +1,7 @@ { + "id": "chieftools", + "role": "Innovator", + "active": true, "name": "Chief Tools", "description": "Building, deploying and monitoring. Our tools supporting your applications.", "shortDescription": "We're joining the Open Source Pledge because our business is built on and with open-source software.", diff --git a/src/content/members/convex.json b/data/members/convex.json similarity index 93% rename from src/content/members/convex.json rename to data/members/convex.json index d34957bc..13c18676 100644 --- a/src/content/members/convex.json +++ b/data/members/convex.json @@ -1,4 +1,7 @@ { + "id": "convex", + "role": "Member", + "active": true, "name": "Convex", "description": "Like every software company, Convex is built extensively on open source software. The developers who maintain these open source projects pour incredible amounts of time, expertise, and care into their work–usually as a labor of love. It's time for beneficiary companies to do what they can to foster more sustainable stewardship of OSS projects.", "shortDescription": "It's time for beneficiary companies to do what they can to foster more sustainable stewardship of OSS projects.", diff --git a/src/content/members/foxley-talent.json b/data/members/foxley-talent.json similarity index 94% rename from src/content/members/foxley-talent.json rename to data/members/foxley-talent.json index 42edc5d8..f96d0465 100644 --- a/src/content/members/foxley-talent.json +++ b/data/members/foxley-talent.json @@ -1,4 +1,7 @@ { + "id": "foxley-talent", + "role": "Member", + "active": true, "name": "Foxley Talent", "description": "Foxley Talent is a specialist recruiter for the Python and Django ecosystem. We operate in the United States, Europe and in the UK. We have supported companies to hire Python and Django Developers since 2008 and can help your business to find your next great hire. We are regulars at DjangoCon in the United States and in Europe providing our clients with unique access to the people we meet during the conferences. Our mission is to become THE go-to recruiter for all Python and Django Developer hiring within the regions we support giving back to the community whenever we can along the way.", "shortDescription": "Our mission is to become THE go-to recruiter for all Python and Django Developer hiring within the regions we support giving back to the community whenever we can along the way.", diff --git a/src/content/members/frontend-masters.json b/data/members/frontend-masters.json similarity index 90% rename from src/content/members/frontend-masters.json rename to data/members/frontend-masters.json index 9f5b16fb..246fb2ec 100644 --- a/src/content/members/frontend-masters.json +++ b/data/members/frontend-masters.json @@ -1,4 +1,7 @@ { + "id": "frontend-masters", + "role": "Innovator", + "active": true, "name": "Frontend Masters", "description": "Your path to senior developer and beyond! 🚀 In-depth frontend & fullstack courses.", "shortDescription": "Many maintainers have considered quitting due to burnout. We want to shine a light on this threat to open source.", diff --git a/src/content/members/gitbook.json b/data/members/gitbook.json similarity index 94% rename from src/content/members/gitbook.json rename to data/members/gitbook.json index c9510713..87552001 100644 --- a/src/content/members/gitbook.json +++ b/data/members/gitbook.json @@ -1,4 +1,7 @@ { + "id": "gitbook", + "role": "Member", + "active": true, "name": "GitBook", "description": "GitBook is a modern documentation platform that empowers teams to create and publish API and product documentation—often the first touchpoint for users exploring a feature or product. Understanding that great documentation is as vital as the product itself, GitBook transforms static pages into dynamic, AI-powered knowledge experiences that evolve alongside your product. With an intuitive interface and seamless integrations, GitBook makes it easy to keep documentation fresh, relevant, and genuinely engaging.", "shortDescription": "GitBook is a modern documentation platform that empowers teams to create and publish API and product documentation.", diff --git a/src/content/members/gitbutler.json b/data/members/gitbutler.json similarity index 94% rename from src/content/members/gitbutler.json rename to data/members/gitbutler.json index fc39b37c..0ba26e23 100644 --- a/src/content/members/gitbutler.json +++ b/data/members/gitbutler.json @@ -1,4 +1,7 @@ { + "id": "gitbutler", + "role": "Innovator", + "active": true, "name": "GitButler", "description": "GitButler is built off a vast array of amazing open source projects, such as SvelteKit, Tauri, Rails and more. We believe that it's important to do what we can to support maintainers and help make the Open Source community sustainable.", "shortDescription": "We believe that it's important to do what we can to support maintainers and help make the Open Source community sustainable.", diff --git a/src/content/members/herodevs.json b/data/members/herodevs.json similarity index 94% rename from src/content/members/herodevs.json rename to data/members/herodevs.json index e3df468b..9f1851f1 100644 --- a/src/content/members/herodevs.json +++ b/data/members/herodevs.json @@ -1,4 +1,7 @@ { + "id": "herodevs", + "role": "Innovator", + "active": true, "name": "HeroDevs", "description": "Drop-in replacements for deprecated open source Software that keep you secure, compliant, and compatible.", "shortDescription": "We believe it's essential to give back to the community that powers so much of our work.", diff --git a/src/content/members/httptoolkit.json b/data/members/httptoolkit.json similarity index 95% rename from src/content/members/httptoolkit.json rename to data/members/httptoolkit.json index 20102352..aecbcbaf 100644 --- a/src/content/members/httptoolkit.json +++ b/data/members/httptoolkit.json @@ -1,4 +1,7 @@ { + "id": "httptoolkit", + "role": "Innovator", + "active": true, "name": "HTTP Toolkit", "description": "HTTP Toolkit is an open-source tool for debugging, testing & building with HTTP. Like all modern software projects, it stands on the shoulders of a huge variety of other open-source components. It aims to return a substantial portion of revenue back to these key dependencies, to fund maintainers, ensure each project's longevity, and help grow the open-source community.", "shortDescription": "Like all modern software projects, we stand on the shoulders of a huge variety of other open-source components.", diff --git a/src/content/members/keygen.json b/data/members/keygen.json similarity index 95% rename from src/content/members/keygen.json rename to data/members/keygen.json index ab2d3b5d..692694ba 100644 --- a/src/content/members/keygen.json +++ b/data/members/keygen.json @@ -1,4 +1,7 @@ { + "id": "keygen", + "role": "Innovator", + "active": true, "name": "Keygen", "description": "Keygen is a Fair Source software licensing and distribution API. Being built on top of Open Source, we strive to give back to the community whenever possible with our own Open Source projects as well as our funds.", "shortDescription": "Being built on top of Open Source, we strive to give back to the community whenever possible with our own Open Source projects as well as our funds.", diff --git a/src/content/members/laravel.json b/data/members/laravel.json similarity index 94% rename from src/content/members/laravel.json rename to data/members/laravel.json index 59d13b42..decaa8af 100644 --- a/src/content/members/laravel.json +++ b/data/members/laravel.json @@ -1,4 +1,7 @@ { + "id": "laravel", + "role": "Innovator", + "active": false, "name": "Laravel", "description": "Laravel is the PHP framework for web artisans. Participating in the Open Source Pledge is just one of the ways we continue to invest in the future of open source. By supporting these projects—both financially and through direct contributions—we hope to ensure that the tools developers rely on remain powerful, reliable, and innovative.", "shortDescription": "Participating in the Open Source Pledge is just one of the ways we continue to invest in the future of open source.", diff --git a/src/content/members/pixee.json b/data/members/pixee.json similarity index 93% rename from src/content/members/pixee.json rename to data/members/pixee.json index 84ceef41..68f1cf3f 100644 --- a/src/content/members/pixee.json +++ b/data/members/pixee.json @@ -1,4 +1,7 @@ { + "id": "pixee", + "role": "Innovator", + "active": false, "name": "Pixee", "description": "We build an automated product security engineer for security and development teams. We automatically fix vulnerabilities, triage code scan results, and harden code to give teams more time to focus on the work that matters. And we believe in Open Source! We leverage tools from the community and strive to give back when possible. Through donations and direct contributions to OSS projects and foundations. ", "shortDescription": "We believe in Open Source! We leverage tools from the community and strive to give back when possible.", diff --git a/src/content/members/platformatic.json b/data/members/platformatic.json similarity index 94% rename from src/content/members/platformatic.json rename to data/members/platformatic.json index e5364c54..0b26228b 100644 --- a/src/content/members/platformatic.json +++ b/data/members/platformatic.json @@ -1,4 +1,7 @@ { + "id": "platformatic", + "role": "Innovator", + "active": true, "name": "Platformatic", "description": "Platformatic is the application platform for building, managing, and scaling Node.js applications. Platformatic eliminates the need for manual scaling, reduces the risk of unpredictable downtimes, and provides detailed, real-time Node-specific insights, providing engineering teams with the visibility, control, and best-practices needed to operate effortlessly.", "shortDescription": "Contributing to open source projects fosters a strong, collaborative community, benefiting everyone involved.", diff --git a/src/content/members/posit.json b/data/members/posit.json similarity index 95% rename from src/content/members/posit.json rename to data/members/posit.json index 33f3f63b..3a7bba23 100644 --- a/src/content/members/posit.json +++ b/data/members/posit.json @@ -1,4 +1,7 @@ { + "id": "posit", + "role": "Member", + "active": true, "name": "Posit", "description": "Posit creates open-source software like RStudio, Shiny, and Quarto to advance data science, research, and technical communication. We're deeply committed to sustaining open-source ecosystems by supporting projects and organizations that drive innovation. Joining the Open Source Pledge reinforces our dedication to the community and our role as stewards of open-source development.", "shortDescription": "We're deeply committed to sustaining open-source ecosystems by supporting projects and organizations that drive innovation. Joining the Open Source Pledge reinforces our dedication to the community.", diff --git a/src/content/members/prefect.json b/data/members/prefect.json similarity index 94% rename from src/content/members/prefect.json rename to data/members/prefect.json index 6a17d2fa..4ed7c97d 100644 --- a/src/content/members/prefect.json +++ b/data/members/prefect.json @@ -1,4 +1,7 @@ { + "id": "prefect", + "role": "Innovator", + "active": true, "name": "Prefect", "description": "Prefect is an open source workflow orchestration framework, supporting a wide range of workflow architectures including batch, event-driven, fully dynamic, and hybrid architecture.", "shortDescription": "By supporting these projects, we're not just giving back—we're investing in the future of open source.", diff --git a/src/content/members/private-packagist.json b/data/members/private-packagist.json similarity index 93% rename from src/content/members/private-packagist.json rename to data/members/private-packagist.json index 20b24339..911a3f10 100644 --- a/src/content/members/private-packagist.json +++ b/data/members/private-packagist.json @@ -1,4 +1,7 @@ { + "id": "private-packagist", + "role": "Innovator", + "active": true, "name": "Private Packagist", "description": "Private Packagist is a PHP Composer package repository. It's built with the help of a large number of open-source software. As open-source maintainers ourselves we wish to do our part in helping the entire ecosystem of open-source software thrive.", "shortDescription": "As open-source maintainers ourselves we wish to do our part in helping the entire ecosystem of open-source software thrive.", diff --git a/src/content/members/pydantic.json b/data/members/pydantic.json similarity index 96% rename from src/content/members/pydantic.json rename to data/members/pydantic.json index 8dda031f..c9308277 100644 --- a/src/content/members/pydantic.json +++ b/data/members/pydantic.json @@ -1,4 +1,7 @@ { + "id": "pydantic", + "role": "Innovator", + "active": true, "name": "Pydantic Logfire", "description": "

The Pydantic Stack gives developers visibility to stay in flow, from local to production, from AI to API.

Pydantic Validation is the most widely used data validation library for Python—downloaded millions of times daily by thousands of developers worldwide. It enforces type annotations, plays nicely with type checkers and IDEs, and is both fast and extensible.

Pydantic AI is a Python agent framework built to help you confidently ship production-grade applications with Generative AI. Type-safe, model-agnostic, and ready for real work.

Pydantic Logfire is an observability platform built on OpenTelemetry. With SDKs for Python, TypeScript, and Rust, Logfire provides comprehensive observability for any workload in any language—with first-class support for AI, from LLM API calls to agent frameworks.

", "shortDescription": "For too long the open source ecosystem has been taken for granted. We're proud to be part of the movement to change that.", diff --git a/src/content/members/rector.json b/data/members/rector.json similarity index 94% rename from src/content/members/rector.json rename to data/members/rector.json index f7a84490..366e0edd 100644 --- a/src/content/members/rector.json +++ b/data/members/rector.json @@ -1,4 +1,7 @@ { + "id": "rector", + "role": "Member", + "active": false, "name": "Rector", "description": "Rector is a PHP tool that you can run on any PHP project to get an instant upgrade or automated refactoring. It gives you safety and lightning speed, and helps you with PHP upgrades, framework upgrades, and improving your code quality. Rector is alive thanks to Open Source projects and the developers behind those projects.", "shortDescription": "Rector is alive thanks to Open Source projects and the developers behind those projects.", diff --git a/src/content/members/saas-pegasus.json b/data/members/saas-pegasus.json similarity index 93% rename from src/content/members/saas-pegasus.json rename to data/members/saas-pegasus.json index 716afb76..30ec139a 100644 --- a/src/content/members/saas-pegasus.json +++ b/data/members/saas-pegasus.json @@ -1,4 +1,7 @@ { + "id": "saas-pegasus", + "role": "Member", + "active": true, "name": "SaaS Pegasus", "description": "SaaS Pegasus is a starter project template that helps you create and deploy SaaS applications with Python and Django. While SaaS Pegasus is — at least for now — a closed-source, proprietary product, it is built on top of a vast Open Source ecosystem. Adopting the Open Source Pledge felt like a good way to give back to the developers whose work has made Pegasus possible.", "shortDescription": "SaaS Pegasus is built on top of a vast Open Source ecosystem. Adopting the Open Source Pledge felt like a good way to give back to the developers whose work has made Pegasus possible.", diff --git a/src/content/members/sanity.json b/data/members/sanity.json similarity index 95% rename from src/content/members/sanity.json rename to data/members/sanity.json index 265bd873..b477f3f3 100644 --- a/src/content/members/sanity.json +++ b/data/members/sanity.json @@ -1,4 +1,7 @@ { + "id": "sanity", + "role": "Member", + "active": true, "name": "Sanity", "description": "Sanity is the content operating system that lets teams structure content and deliver it through APIs to digital products. We're joining the Open Source Pledge because we believe in supporting the open source projects and maintainers that our platform is built on. As a company, we have the privilege of using and benefiting from many open source libraries, frameworks and tools. By committing to give back financially to the open source ecosystem, we hope to play a small part in making open source more sustainable.", "shortDescription": "We're joining the Open Source Pledge because we believe in supporting the open source projects and maintainers that our platform is built on.", diff --git a/src/content/members/scalar.json b/data/members/scalar.json similarity index 90% rename from src/content/members/scalar.json rename to data/members/scalar.json index 2f149980..a0a44acc 100644 --- a/src/content/members/scalar.json +++ b/data/members/scalar.json @@ -1,4 +1,7 @@ { + "id": "scalar", + "role": "Member", + "active": true, "name": "Scalar", "description": "Scalar builds open-source tools for APIs, with first class OpenAPI support.", "shortDescription": "Thanks to all the maintainers and contributors whose software we are privileged to use and build with.", diff --git a/src/content/members/sentry.json b/data/members/sentry.json similarity index 96% rename from src/content/members/sentry.json rename to data/members/sentry.json index 9ce92a28..f705136e 100644 --- a/src/content/members/sentry.json +++ b/data/members/sentry.json @@ -1,4 +1,7 @@ { + "id": "sentry", + "role": "Innovator", + "active": true, "name": "Sentry", "description": "Sentry started life as an Open Source side project in 2008. We grew that way for years before commercializing. We've always given back to the community and now we're happy to help other companies do the same through the Open Source Pledge.", "shortDescription": "We've always given back to the community and now we're happy to help other companies do the same through the Open Source Pledge.", diff --git a/src/content/members/speakeasy.json b/data/members/speakeasy.json similarity index 91% rename from src/content/members/speakeasy.json rename to data/members/speakeasy.json index 6b85c4ed..dd5b5a3b 100644 --- a/src/content/members/speakeasy.json +++ b/data/members/speakeasy.json @@ -1,4 +1,7 @@ { + "id": "speakeasy", + "role": "Innovator", + "active": true, "name": "Speakeasy", "description": "We build tools that help developers create great APIs. Since the first days of the company, we've always supported the OSS projects that are platform is built on.", "shortDescription": "We've always supported the OSS projects that our platform is built on.", diff --git a/src/content/members/tideways.json b/data/members/tideways.json similarity index 93% rename from src/content/members/tideways.json rename to data/members/tideways.json index 241eb9c4..2a586661 100644 --- a/src/content/members/tideways.json +++ b/data/members/tideways.json @@ -1,4 +1,7 @@ { + "id": "tideways", + "role": "Innovator", + "active": true, "name": "Tideways", "description": "Tideways is a PHP Profiling, Monitoring and Exception Tracking tool. It's built on top of several Open Source libraries and frameworks in multiple languages.", "shortDescription": "We want to make a public commitment on our various open source contributions.", diff --git a/src/content/members/val-town.json b/data/members/val-town.json similarity index 89% rename from src/content/members/val-town.json rename to data/members/val-town.json index 03d56d39..3d77da51 100644 --- a/src/content/members/val-town.json +++ b/data/members/val-town.json @@ -1,4 +1,7 @@ { + "id": "val-town", + "role": "Innovator", + "active": true, "name": "Val Town", "description": "Val Town is a website to build apps, APIs, and scheduled functions.", "shortDescription": "Thanks so much to all the maintainers we depend on! We are so grateful for your work.", diff --git a/src/content/members/vlt.json b/data/members/vlt.json similarity index 90% rename from src/content/members/vlt.json rename to data/members/vlt.json index 2535d097..790cf33b 100644 --- a/src/content/members/vlt.json +++ b/data/members/vlt.json @@ -1,4 +1,7 @@ { + "id": "vlt", + "role": "Innovator", + "active": true, "name": "vlt", "description": "We’re building the future of JavaScript packages", "shortDescription": "We believe open source software is at the heart of modern businesses success.", diff --git a/src/content/members/voidzero.json b/data/members/voidzero.json similarity index 92% rename from src/content/members/voidzero.json rename to data/members/voidzero.json index 3fba6000..a2614b5d 100644 --- a/src/content/members/voidzero.json +++ b/data/members/voidzero.json @@ -1,4 +1,7 @@ { + "id": "voidzero", + "role": "Member", + "active": true, "name": "VoidZero", "description": "We are an open-source first company and we maintain Vite, Vitest, Rolldown, and Oxc. We also rely on many important dependencies and we'd love to give back.", "shortDescription": "We rely on many important dependencies and we love to give back.", diff --git a/src/content/members/zerodha.json b/data/members/zerodha.json similarity index 95% rename from src/content/members/zerodha.json rename to data/members/zerodha.json index 57fb9b2d..cc975e36 100644 --- a/src/content/members/zerodha.json +++ b/data/members/zerodha.json @@ -1,4 +1,7 @@ { + "id": "zerodha", + "role": "Member", + "active": true, "name": "Zerodha", "description": "At Zerodha, we have always been passionate about contributing to a sustainable ecosystem for Free (libre) and Open Source Software (FOSS). As one of India's largest stock brokers, our journey has been deeply intertwined with FOSS, which has been instrumental in our growth. We've relied on FOSS technologies to build and scale our products, business, and services. By joining the Open Source Pledge and sharing our journey, we hope to inspire other companies to take similar steps. Supporting the open source projects we rely on is not just a responsibility; it's an opportunity to contribute to a sustainable and innovative future for the tech industry.", "shortDescription": "By joining the Open Source Pledge and sharing our journey, we hope to inspire other companies to take similar steps.", diff --git a/public/generated/output/opengraph.png b/public/generated/output/opengraph.png new file mode 100644 index 0000000000000000000000000000000000000000..dae2564657985ce30c7d24ff0a175964841bbd6f GIT binary patch literal 57400 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