Skip to content

Commit

Permalink
Merge pull request #233 from opensourcepledge/vladh/create-blog
Browse files Browse the repository at this point in the history
Add blog
  • Loading branch information
chadwhitacre authored Nov 6, 2024
2 parents 76a3797 + e460fe9 commit 2b6306b
Show file tree
Hide file tree
Showing 21 changed files with 856 additions and 96 deletions.
Binary file added public/images/authors/chad.webp
Binary file not shown.
Binary file added public/images/authors/cramer.webp
Binary file not shown.
Binary file added public/images/authors/vlad.webp
Binary file not shown.
71 changes: 71 additions & 0 deletions src/components/ArticleList.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
---
// © 2024 Vlad-Stefan Harbuz <[email protected]>
// SPDX-License-Identifier: Apache-2.0
import { getCollection } from 'astro:content';
import dayjs from 'dayjs';
const articles = (await getCollection('articles'))
.sort((a, b) => +b.data.publishDate - +a.data.publishDate);
---

<div>
{articles.map((article) => <div class="article-listing">
<blockquote>
<a href=`/blog/${article.slug}`>
<h2>{article.data.title}</h2>
</a>
</blockquote>
<div class="meta">
{article.data.authorImageSrc &&
<img src={article.data.authorImageSrc}>
}
<div>
<em>{article.data.author}</em>
<time>{dayjs(article.data.publishDate).format('DD MMM YYYY')}</time>
</div>
</div>
<hr>
</div>)}
</div>

<style>
.article-listing {
position: relative;
margin: 0;
hr {
margin: 1.5rem auto;
max-width: 10rem;
border-color: var(--color-primary);
border-width: 1px;
}
&:last-child hr {
display: none;
}
h2 {
font-size: 1.2rem;
font-weight: normal;
font-family: Libre Franklin, sans-serif;
}
blockquote {
margin: 0;
}
.meta {
display: flex;
align-items: center;
img {
width: 2.5rem;
height: 2.5rem;
margin-right: 1rem;
border-radius: 100%;
}
em {
display: block;
}
time {
display: block;
font-size: 0.8rem;
}
}
}
</style>
22 changes: 0 additions & 22 deletions src/components/Button.astro
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,3 @@ const { href } = Astro.props;
<a class="button" href={href}>
<slot></slot>
</a>

<style>
.button {
display: inline-block;
margin: 1rem 0;
padding: 0.8rem 2rem;
color: var(--color-bg);
background-color: var(--color-primary);
border-radius: 0.5rem;
text-align: center;
text-decoration: none;
text-transform: uppercase;
font-weight: bold;
font-size: 1.2em;
&:hover {
background: var(--color-secondary);
}
&:active {
background: var(--color-tertiary);
}
}
</style>
12 changes: 0 additions & 12 deletions src/components/Endorsement.astro
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,6 @@ const { name, title, handle, imageUrl, sourceUrl, hidden } = Astro.props;
.endorsement {
position: relative;
margin: 0;
padding-top: 1rem;
&:before {
content: '“';
position: absolute;
top: -0.5rem;
left: 0;
font-size: 5rem;
line-height: 1;
font-style: italic;
color: var(--color-primary);
pointer-events: none;
}
hr {
margin: 1.5rem auto;
max-width: 10rem;
Expand Down
2 changes: 1 addition & 1 deletion src/components/LeaderboardMember.astro
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ interface Props {
const { member } = Astro.props;
import { getDollarsPerDev, fmtCurrency } from '../memberFormatting.ts';
import type { MemberWithId } from "../content/config.ts";
import type { MemberWithId } from "../schemas/members.ts";
---

<tr>
Expand Down
18 changes: 3 additions & 15 deletions src/components/PressItem.astro
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ const { name, title, date, imageUrl, sourceUrl, hidden } = Astro.props;
---

<figure class="press-item" hidden={hidden}>
<a href={sourceUrl}>{title}</a>
<blockquote>
<a href={sourceUrl}>{title}</a>
</blockquote>
<figcaption>
<img src={imageUrl} alt=`An image for ${name}`>
<div>
Expand All @@ -30,18 +32,6 @@ const { name, title, date, imageUrl, sourceUrl, hidden } = Astro.props;
.press-item {
position: relative;
margin: 0;
padding-top: 1rem;
&:before {
content: '“';
position: absolute;
top: -0.5rem;
left: 0;
font-size: 5rem;
line-height: 1;
font-style: italic;
color: var(--color-primary);
pointer-events: none;
}
hr {
margin: 1.5rem auto;
max-width: 10rem;
Expand All @@ -54,13 +44,11 @@ const { name, title, date, imageUrl, sourceUrl, hidden } = Astro.props;
a {
display: block;
margin: 0;
margin-top: 1rem;
padding-bottom: 0.1rem; /* to counterbalance text-decoration */
font-size: 1.2rem;
}
blockquote {
margin: 0;
font-size: 1.2rem;
}
figcaption {
display: flex;
Expand Down
101 changes: 101 additions & 0 deletions src/content/articles/join-the-pledge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
---
title: 'Join the Pledge'
excerpt: "Today we officially launch the Open Source Pledge."
author: 'David Cramer'
authorImageSrc: '/images/authors/cramer.webp'
isDraft: false
publishDate: '2024-10-08'
---

<div class="highlight-box">
This post originally appeared
<a
href="https://blog.sentry.io/join-the-pledge/"
>on blog.sentry.io</a>.
</div>
Today we officially launch the Open Source Pledge.

The Pledge started as an idea some years back: what if we could give back to Open Source on behalf of every employee at
Sentry? We threw around a number of ideas on how we might do that, but none of them seemed like they’d achieve the level
of impact we wanted. We always had two core goals with it:

1. Pay maintainers, directly.
2. Do it sustainably, and scale it with our growth.

My earliest thought in this space centered around a form of donation matching. The hope was we could take something like
GitHub Sponsors and match employees' contributions to Open Source maintainers. That posed a number of challenges, but
the biggest risk was participation. Not everyone cares about Open Source (that’s fine!), so donation matching breaks
down with reduced participation. Instead, we decided to do direct funding, driven by a variety of inputs (our dependency
graph, projects people voted on, and guidance from engineering leadership).

That program is what you’ve [seen from us publicly][sentry-500], running it for three consecutive years. Each year we
increased the funding amount based on Sentry’s own financial growth. It became such a no-brainer within Sentry’s
leadership that we have aggressively increased the funding each year, even beyond our original targets. With the success
of that, we set off to take that program, codify it, and bring it to other companies to see if we could turn this into a
bigger thing.

## Lead by Example

As we started talking about this, thinking about how we might turn it into something bigger with more impact, I was
reminded of a number of scenarios that I had personally experienced when speaking with other founders. I regularly speak
at a variety of events, many where Open Source is a key part of the narrative. They’re generally filled with
venture-backed founders telling their story of why Open Source matters to their business, why they believe, and invest
in it. One thing that was commonly expressed by these folks was the sustainability challenges in the industry. “Great!”
I thought, “We have a solution!”

Not a single one of those founders did anything more than talk about the problem. Sure, maybe they throw a few bucks at
one of the big foundations, and they almost certainly fund investments into their own ecosystem (their commercial
interests). Unfortunately, they rarely do anything measurable that improves the thing they claim to care so deeply
about. Worse, some of these people (often from the largest tech companies), have a laundry list of excuses for why
giving money to people is hard.

So we decided to try and do something about it. That something is the Open Source Pledge. We don't think it’s the only
solution, nor do we think it’s the only way to give back, but we do believe giving cash money to maintainers is an
appropriate way to show your thanks, to recognize their hard work, the value they create for you. Maybe, just maybe,
we’ll do our small part in encouraging the maintainers to keep putting up with us in the enormous ecosystem we rely on.

## How to Pledge

If you’ve made it this far, there are probably two questions you have.

**First, what does it take to join the Pledge?** You commit (with receipts) to giving 2,000 USD to your dependencies,
per engineer you employ, every single year.

Sentry has ~135 engineers on staff, meaning our minimum commitment is $270,000 this year. Think about that in the
context that Sentry generates more than $100mm in recurring revenue. It’s a fraction of what we spend in any given
calendar month on digital advertising. It's a pretty modest amount in the grand scheme of things, but it's enough to
have genuine impact.

**Second, what’s the ROI your company gets from joining?** It’s marketing. It’s your brand. It's top-of-funnel. It’s
software security. It’s free software. It’s Open Source.

We see ROI in two major ways: brand marketing, and the supply chain. You may care about one more than the other, so
choose whichever helps you get over the finish line.

From the supply chain angle, you’re encouraging maintainers of the software you use to continue to provide support.
You’re telling them that you value their work, and the contribution is there to encourage them to keep contributing to
it. At the very least, you’re giving them a big thank you, setting the tone for future generations of maintainers.
You’re thanking them for free software. Both of those improve the efficiency of your R&D investments.

From the brand angle, it's what you make of it. If it's a space you care about, you are putting your money where your
mouth is, and your audience will recognize that. You buy products from brands that you connect with, and if your
customers care about Open Source, you’re giving them one more reason to care about you over your competition. You’re
also putting yourself out there, attracting new eyes to your brand that may not have heard about you before.

We don’t yet know if the Pledge will be successful, but I’m thrilled with the number of people who have decided to
support the program ([directly with funds][members], and [indirectly with broadcasting and recruiting][endorsements]). I
especially want to thank the people who have put in the hours to really get this off the ground: [Chad Whitacre][chad]
and [Michael Selvidge][michael] from Sentry, as well as [Vlad-Stefan Harbuz][vlad] and [Ethan Arrowood][ethan].

While Sentry is funding getting the program off the ground, we’re hoping it lasts well beyond us and turns into
something much more. The industry is in a rocky place these days, and a little bit of effort from the people who can
afford it can go a long way.

[chad]: https://x.com/chadwhitacre_
[endorsements]: https://opensourcepledge.com/endorsements/
[ethan]: https://github.com/Ethan-Arrowood
[members]: https://opensourcepledge.com/members/
[michael]: https://www.linkedin.com/in/michaelselvidge/
[sentry-500]: https://blog.sentry.io/we-just-gave-500-000-dollars-to-open-source-maintainers/
[vlad]: https://vlad.website
Loading

0 comments on commit 2b6306b

Please sign in to comment.