diff --git a/blog/2023/2023-04-17-writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success.md b/blog/2023/2023-04-17-writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success.md index 1ac1a248..388ca2e6 100644 --- a/blog/2023/2023-04-17-writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success.md +++ b/blog/2023/2023-04-17-writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success.md @@ -7,32 +7,36 @@ description: "If you're new to contributing to open-source projects, submitting image: https://media.dev.to/cdn-cgi/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4xtz1foaoswl7f55hzgk.png --- -I don’t remember writing my first Pull Request (PR), and to be honest, I actually looked to see if I could find it for this post, but I know that I was really nervous because I wasn’t sure if I was doing it “right.” I think I actually spent more time worrying about it than I did actually writing the thing. The good news is that there isn’t really a right way to write a PR, but there are some best practices that can guide your writing and help the maintainer to be able to understand the changes. +I don’t remember writing my first Pull Request (PR), and to be honest, I actually looked to see if I could find it for this post, but I know that I was really nervous because I wasn’t sure if I was doing it “right.” I think I actually spent more time worrying about it than I did actually writing the thing. The good news is that there isn’t really a right way to write a PR, but there are some best practices that can guide your writing and help the maintainer to be able to understand the changes. ## Review the Contribution Guidelines + Maintainers want to help you write your PR; that’s why they often outline contributing directions in their repositories. ![Jerry McGuire “Help me, help you gif”](https://media.giphy.com/media/uRb2p09vY8lEs/giphy.gif) -This file—often called CONTRIBUTING.md—gives guidelines for submitting your PR, including information like whether or not you need to write tests, the communication process, coding style, and how to submit your pull request. Check out [OpenSauced’s Contributing Guide](https://opensauced.pizza/docs/contributing/introduction-to-contributing/), as an example. +This file—often called CONTRIBUTING.md—gives guidelines for submitting your PR, including information like whether or not you need to write tests, the communication process, coding style, and how to submit your pull request. Check out [OpenSauced’s Contributing Guide](https://opensauced.pizza/docs/contributing/introduction-to-contributing/), as an example. ## Tips for Your First PR + Although every repository may have unique guidelines, there are general guidelines for all PRs. Here are some tips to keep in mind: ### Create a Clear Title -The title should give an indication of the issue, the changes made, and the type of PR–is this a bug fix, content or documentation change, new feature, or something else? + +The title should give an indication of the issue, the changes made, and the type of PR–is this a bug fix, content or documentation change, new feature, or something else? ![OpenSauced title examples](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yv10emgx8a7grxyovbew.png) OpenSauced’s CONTRIBUTING guidelines for titles - ### Give a Detailed Description -PRs often include a summary of the changes, as well as any relevant context or background information that might be helpful in understanding the proposed changes. + +PRs often include a summary of the changes, as well as any relevant context or background information that might be helpful in understanding the proposed changes. ### Provide context -A well-written description will help the maintainer understand the purpose of the PR, the changes you’ve made, and why the changes were made. Here are some of the reasons the description is key to the success of the PR: + +A well-written description will help the maintainer understand the purpose of the PR, the changes you’ve made, and why the changes were made. Here are some of the reasons the description is key to the success of the PR: 1. Facilitates collaboration. More details allow team members to share their feedback, identify potential issues, and ask questions. With open and transparent communication, a sense of community and trust among team members develops, leading to better collaboration. @@ -43,13 +47,16 @@ A well-written description will help the maintainer understand the purpose of th ![OpenSauced's Examples for communication style](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sc4v1pihnggpq0asu671.png) OpenSauced’s [CONTRIBUTING guidelines for communication style](https://opensauced.pizza/docs/contributing/introduction-to-contributing/) -### Link the issue -If the PR is related to an issue, you can link that issue and automatically close the issue when the PR is merged. One way to do this is to use this syntax: `closes #issue-number` for example, `closes #11`. +### Link the issue + +If the PR is related to an issue, you can link that issue and automatically close the issue when the PR is merged. One way to do this is to use this syntax: `closes #issue-number` for example, `closes #11`. + +### Acknowledge Requirements -### Acknowledge Requirements If there are requirements for new code to be merged in, like writing tests or documentation, you should also include that information in the PR. Other steps might include running current tests before submitting, agreeing to the Code of Conduct, and checking to make sure there’s not an open issue or another PR addressing the same problem you’ve fixed. -### Add a Gif! +### Add a Gif + If you want to know why, check out my last post, [How to Create a Good Pull Request Template (and Why You Should Add Gifs)](https://dev.to/opensauced/how-to-create-a-good-pull-request-template-and-why-you-should-add-gifs-4i0l) ## Bonus Level: Power Up Your PRs with AI @@ -57,9 +64,9 @@ If you want to know why, check out my last post, [How to Create a Good Pull Requ If you want to take your PRs to the next level, sign up for [GitHub’s Copilot for Pull Requests](https://githubnext.com/projects/copilot-for-pull-requests) waitlist! Copilot for PRs can give a summary of the changes, a detailed list with code references, or even create a poem 🤯 ## Community Shoutout -For a great example from one of our community members, @nickytonline, check out [this PR](https://insights.opensauced.pizza/feed/99). + +For a great example from one of our community members, @nickytonline, check out [this PR](https://insights.opensauced.pizza/feed/99). ![gif of Nick Taylor’s PR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i19g7u3uwqzjf3exvbal.gif) If you’re looking for an open source project to submit your first PR to, find a project that’s well documented, aligns with your interests and skills, and is accepting PRs from new contributors. Check out [OpenSauced’s Hot Repositories](https://hot.opensauced.pizza/) or [Insights](https://insights.opensauced.pizza) to find popular repositories and explore based on your favorite topics. And if you want to see your PR mentioned by OpenSauced, be sure to add it to your [highlights](https://insights.opensauced.pizza/feed)! - diff --git a/blog/2023/2023-04-20-how-vercel-is-using-github-discussions-to-build-a-strong-nextjs-community.md b/blog/2023/2023-04-20-how-vercel-is-using-github-discussions-to-build-a-strong-nextjs-community.md index a823ad14..f3117c2b 100644 --- a/blog/2023/2023-04-20-how-vercel-is-using-github-discussions-to-build-a-strong-nextjs-community.md +++ b/blog/2023/2023-04-20-how-vercel-is-using-github-discussions-to-build-a-strong-nextjs-community.md @@ -11,23 +11,26 @@ Communication is key to maintaining a healthy open source project. It’s even m ## What is Next.js? +> > Next.js is a flexible React framework that gives you building blocks to create fast web applications. Vercel, the company behind Next.js, provides a platform for deploying and hosting Next.js applications, as well as a range of other tools and services for building and scaling web applications. ## How does Next.js use their discussions? + At first glance, the list of discussion features for Next.js looks pretty ordinary, well except maybe the squirrel with the hat as the icon for the Show and Tell section. Next.js takes it a step further and leverages GitHub discussions to provide its community with a space for participation and interaction. The project prioritizes community building by pinning important discussions at the top of the page: Companies/Sites using Next.js, Who’s hiring (April 2023), Who wants to be hired (April 2023). ### Companies/Sites using Next.js + This discussion lists companies that are using Next.js, allows folks to respond to the post with their site that’s built with Next.js, and also links to their [showcase](https://nextjs.org/showcase) as well. So if you have a Next.js site, and you’re not already showing it off, add it to [this discussion](https://github.com/vercel/next.js/discussions/10640)! -### Who’s hiring +### Who’s hiring + This monthly post provides a space for companies to advertise job openings for individuals with Next.js experience, and for job seekers to find opportunities. I checked out their posts all the way back to November 2021, and loved seeing how many included this line: “At least one company has hired someone as a result of it!” [https://twitter.com/nutlope/status/1610667757565083648?s=20](https://twitter.com/nutlope/status/1610667757565083648?s=20) - -### Who wants to be hired +### Who wants to be hired This pinned post is for job seekers with Next.js experience to showcase their skills and experience. Companies looking to hire can browse the post for potential candidates. This gives a nice glimpse into the Next.js community and provides support for job seekers and does my favorite thing: offers to send swag to anyone who was hired through the post. @@ -35,5 +38,4 @@ This pinned post is for job seekers with Next.js experience to showcase their sk It’s great to see Next.js building a strong and supportive community through discussions. If you’re a Next.js developer looking for work and you have contributions you’d like to highlight, you can add them to your [OpenSauced highlights](https://insights.opensauced.pizza/feed) and link them to your post. - header image created using [midjourney](https://www.midjourney.com/app/jobs/53c570b9-3cc2-48c5-9fe0-8d855cfbeb34/). diff --git a/blog/2023/2023-04-24-managing-community-health-files-and-templates-with-a-github-repository.md b/blog/2023/2023-04-24-managing-community-health-files-and-templates-with-a-github-repository.md index df556d27..7f97d10e 100644 --- a/blog/2023/2023-04-24-managing-community-health-files-and-templates-with-a-github-repository.md +++ b/blog/2023/2023-04-24-managing-community-health-files-and-templates-with-a-github-repository.md @@ -11,12 +11,12 @@ I collect open source projects like some people collect discord servers. To be a ## What is a `.github` Repo? -A `.github` repository is a special type of repository in GitHub that allows maintainers to store community health files and templates for their projects. -> Community Health files promote the well-being of the community and focus on communication, documentation, supporting members through a code of conduct, and community recognition. +A `.github` repository is a special type of repository in GitHub that allows maintainers to store community health files and templates for their projects. -The `.github` repository–found at `https://github.com//.github`- can house the community health files for your organization as the default files. According to [GitHub](https://github.blog/changelog/2019-02-21-organization-wide-community-health-files/), “While the file itself won’t appear in the file browser or Git history for each repository, it will be surfaced throughout developers’ workflows, such as when opening a new issue or when viewing the Community Profile, just as if it were committed to the repository directly.” +> Community Health files promote the well-being of the community and focus on communication, documentation, supporting members through a code of conduct, and community recognition. +The `.github` repository–found at `https://github.com//.github`- can house the community health files for your organization as the default files. According to [GitHub](https://github.blog/changelog/2019-02-21-organization-wide-community-health-files/), “While the file itself won’t appear in the file browser or Git history for each repository, it will be surfaced throughout developers’ workflows, such as when opening a new issue or when viewing the Community Profile, just as if it were committed to the repository directly.” ![Screenshot of the open-sauced/.github repo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i41566ytubxwkz60kjh7.png) @@ -34,4 +34,4 @@ Once you have added your PR template, click the "Commit new file" button to save When creating a PR template, keep in mind that the template is easy to read and understand. Remember, the template is supposed to make things easier for you and the contributors. What information do you need to be able to review the PR more efficiently? What information can guide a new contributor through writing a PR for the first time? -Finally, the beauty of using one template for all your repositories is that if you decide to update it, you only need to do that in one location. As your project evolves and new requirements emerge, you may find that the template needs to be revised or you might feedback from contributors and other maintainers, and make changes as needed to ensure that the PR template remains effective and useful. If you're interested in more content on PRs, check out [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9) and [How to Create a Good Pull Request Template (and Why You Should Add Gifs)](https://dev.to/opensauced/how-to-create-a-good-pull-request-template-and-why-you-should-add-gifs-4i0l). \ No newline at end of file +Finally, the beauty of using one template for all your repositories is that if you decide to update it, you only need to do that in one location. As your project evolves and new requirements emerge, you may find that the template needs to be revised or you might feedback from contributors and other maintainers, and make changes as needed to ensure that the PR template remains effective and useful. If you're interested in more content on PRs, check out [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9) and [How to Create a Good Pull Request Template (and Why You Should Add Gifs)](https://dev.to/opensauced/how-to-create-a-good-pull-request-template-and-why-you-should-add-gifs-4i0l). diff --git a/blog/2023/2023-04-26-what-is-bluesky-social-network-and-why-are-developers-excited-about-it.md b/blog/2023/2023-04-26-what-is-bluesky-social-network-and-why-are-developers-excited-about-it.md index 5a364d88..1096fe99 100644 --- a/blog/2023/2023-04-26-what-is-bluesky-social-network-and-why-are-developers-excited-about-it.md +++ b/blog/2023/2023-04-26-what-is-bluesky-social-network-and-why-are-developers-excited-about-it.md @@ -6,11 +6,12 @@ slug: what-is-bluesky-social-network-and-why-are-developers-excited-about-it description: "It seems like my Twitter feed is all about folks joining or asking about invites to Bluesky. Here's what I learned about it." --- -It seems like my Twitter feed is all about folks joining or asking about invites to [Bluesky](https://blueskyweb.xyz/). I was lucky enough to get an invite this week to be able to check it out, and the user experience is a lot like Twitter, but what’s going on behind the scenes is really interesting. +It seems like my Twitter feed is all about folks joining or asking about invites to [Bluesky](https://blueskyweb.xyz/). I was lucky enough to get an invite this week to be able to check it out, and the user experience is a lot like Twitter, but what’s going on behind the scenes is really interesting. ## What is Bluesky Social Network + Bluesky Social is a decentralized social media platform with a mission to create an open social media ecosystem where developers can build and innovate, and users have more control over which services they use. Unlike Twitter, Bluesky isn't committed to any stack in its entirety and sees use cases for blockchains, but it's not a blockchain. > “The biggest and long term goal is to build a durable and open protocol for public conversation. That it not be owned by any one organization but contributed by as many as possible. And that it is born and evolved on the internet with the same principles.” - Jack Dorsey @@ -24,18 +25,20 @@ Here’s another way to think about what AT Protocol means: Let's say you live i However, with the AT Protocol, you could transfer the $100 directly from your bank account to your friend's bank account, without needing to go through an intermediary. ## Benefits of Bluesky -There’s a lot of buzz around some of the differences between Twitter and Bluesky. There are several benefits of using Bluesky over traditional social media platforms: + +There’s a lot of buzz around some of the differences between Twitter and Bluesky. There are several benefits of using Bluesky over traditional social media platforms: + - *User control and privacy*: With a decentralized architecture, users have more control over their own data and can choose to interact with others without relying on a single centralized platform. This approach may also offer better user privacy since user data is distributed across multiple servers and not owned or managed by a single company. - *Innovation and competition*: By creating an open standard for social media, developers have more opportunities to build new apps and services that can interoperate with existing ones. This could encourage innovation and competition in the social media space, leading to better products and services for users. - *Reduced risk of censorship*: A decentralized architecture could potentially reduce the risk of censorship since there is no single entity or central point of control. If one server or node is taken down or censored, users can still connect with each other through other servers or nodes. - ## What are Devs Building? + There’s already a variety of open source projects being built for Bluesky, including bots, tools, and applications. Here are a few examples: -- RSS feeds. If you’re not on Bluesky yet, but you know the handle of someone who is and you want to know what they’re talking about, there’s a way to do that. Or if you’re on Bluesky and you want to share your content outside of the platform, you can share your content through an RSS reader. You can check out [Bluestream](https://github.com/kawarimidoll/bluestream), a TypeScript + Deno project live [here](https://bluestream.deno.dev/). +- RSS feeds. If you’re not on Bluesky yet, but you know the handle of someone who is and you want to know what they’re talking about, there’s a way to do that. Or if you’re on Bluesky and you want to share your content outside of the platform, you can share your content through an RSS reader. You can check out [Bluestream](https://github.com/kawarimidoll/bluestream), a TypeScript + Deno project live [here](https://bluestream.deno.dev/). - Liked Posts: Want to see what others like? You can find that all in one place thanks to [Bluesky Liked Posts](https://github.com/handlerug/bluesky-liked-posts), a TypeScript project that allows you to add a username to an input, which then displays all the liked posts in a feed. You can see it in action [here](https://handlerug.github.io/bluesky-liked-posts/). @@ -43,14 +46,11 @@ There’s already a variety of open source projects being built for Bluesky, inc - Polling: Sometimes it’s nice to be able to poll your followers. [Poll.blue](https://poll.blue/) provides that feature and prevents duplicate votes by allowing one vote per IP address. Check out this [TypeScript + Deno project](https://github.com/epistemichorse/poll.blue). - ![Screenshot of my poll](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ylbrcdir97k9prq8coof.png) - - Chrome Extension: Want to post to Bluesky without leaving your browser tab? There’s a chrome extension for that! [OmniATP](https://chrome.google.com/webstore/detail/omniatp/ngfefjjphfmafhmhbpjccedmkbbcmngf) makes it a quicker experience and ensures that you don’t get sucked into the timeline of all your favorite followers. And since it’s an open source project, you can check out [the repo](https://github.com/yshrsmz/omniatp) and contribute to this Vue + TypeScript project. -- And just to spread some positivity to the timeline, there’s the [Hugfairy](https://bsky-hugfairy.vercel.app/) bot that will send hugs to anyone on the platform. - +- And just to spread some positivity to the timeline, there’s the [Hugfairy](https://bsky-hugfairy.vercel.app/) bot that will send hugs to anyone on the platform. ![Hugfairy image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asok1sxtd0kpccqa5lfa.png) -If you’re interested in contributing directly to Bluesky, check out their [atproto repo](https://github.com/bluesky-social/atproto). If you want to get started with the Bluesky api, check out [Alice’s starter kit](https://github.com/aliceisjustplaying/atproto-starter-kit/tree/2d499880d3db508627aea089697e436063b58e55) template. And if you’re building with it, submitting PRs, or writing code, amplify your code by [highlighting it on OpenSauced](https://insights.opensauced.pizza/feed) so others can see it! What would you like to see next from Bluesky? Let us know in the comments below, and maybe you’ll see it on our highlights soon. \ No newline at end of file +If you’re interested in contributing directly to Bluesky, check out their [atproto repo](https://github.com/bluesky-social/atproto). If you want to get started with the Bluesky api, check out [Alice’s starter kit](https://github.com/aliceisjustplaying/atproto-starter-kit/tree/2d499880d3db508627aea089697e436063b58e55) template. And if you’re building with it, submitting PRs, or writing code, amplify your code by [highlighting it on OpenSauced](https://insights.opensauced.pizza/feed) so others can see it! What would you like to see next from Bluesky? Let us know in the comments below, and maybe you’ll see it on our highlights soon. diff --git a/blog/2023/2023-05-01-beyond-content-creation-how-open-source-contributions-can-help-you-get-noticed.md b/blog/2023/2023-05-01-beyond-content-creation-how-open-source-contributions-can-help-you-get-noticed.md index fa3a4f59..4f0d86eb 100644 --- a/blog/2023/2023-05-01-beyond-content-creation-how-open-source-contributions-can-help-you-get-noticed.md +++ b/blog/2023/2023-05-01-beyond-content-creation-how-open-source-contributions-can-help-you-get-noticed.md @@ -11,43 +11,44 @@ I know, I know. It’s kind of ironic to create content about not needing to cre ## How to Get Noticed -What if instead of spending hours a week creating content, you spent that time working on contributing to open source? It doesn't have to be an issue that majorly impacts a code base. Start where you’re comfortable; get an understanding of open source, working with other teams, communicating, looking at larger code bases, and understanding how code works. + +What if instead of spending hours a week creating content, you spent that time working on contributing to open source? It doesn't have to be an issue that majorly impacts a code base. Start where you’re comfortable; get an understanding of open source, working with other teams, communicating, looking at larger code bases, and understanding how code works. ### Benefits of Contributing to Open Source -- Visibility. At the very least, you're going to be noticed by the people who are on that team and you’ll be building in public. There will be a public record of how you communicate with others, approach the issue, and of how you contributed. -- Mentorship. During that process, you might find that you’re able to receive mentorship from the maintainers as you work through the issue. There are also many communities out there that provide support for new contributors. -- Experience. You’ll grow as you work through the issue, likely receive feedback that you’ll need to implement before your PR is merged in, and you’ll demonstrate your ability to communicate with a team. -People will remember the way you communicate your code and how you communicate with the team. In some instances, these interactions have led to people being shortlisted as potential hires or even being invited to interview. +- Visibility. At the very least, you're going to be noticed by the people who are on that team and you’ll be building in public. There will be a public record of how you communicate with others, approach the issue, and of how you contributed. +- Mentorship. During that process, you might find that you’re able to receive mentorship from the maintainers as you work through the issue. There are also many communities out there that provide support for new contributors. +- Experience. You’ll grow as you work through the issue, likely receive feedback that you’ll need to implement before your PR is merged in, and you’ll demonstrate your ability to communicate with a team. + +People will remember the way you communicate your code and how you communicate with the team. In some instances, these interactions have led to people being shortlisted as potential hires or even being invited to interview. I once worked with a woman who told me that she really wanted to work for a particular company that had a really rigorous interview process that she knew she couldn’t pass. Instead, she put her time into making contributions to their codebase, betting that if she could prove herself that they’d let her bypass the interview process. That bet paid off. And she's not the only one it's paid off for. ![Tweet from @Dayhaysoos: My last job and current reached out to me because of my open source work 🫡 ](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ac94kk13g82ruxz94bqp.png) ## Build a Strong Resume + According to Indeed.com, hiring managers look at resumes for 6-7 seconds on average. How does your resume compare to other candidates who have pursued similar learning experiences? Do you all have the same bootcamp projects? Have you all listed the same classes? Something that you can include on your resume that no one else can is your open source experience. -People often ask, “How do I get experience as a software engineer if no one will hire me?” That’s a valid and frustrating question. Open source contributions are one way to get experience. I recently talked to a hiring manager who said, because of the competition for early career roles, the best way to get a job is to become a mid-level developer. There are projects out there that will challenge you to learn and grow as part of the process. It _is_ doable to hit that next career level through contributing. +People often ask, “How do I get experience as a software engineer if no one will hire me?” That’s a valid and frustrating question. Open source contributions are one way to get experience. I recently talked to a hiring manager who said, because of the competition for early career roles, the best way to get a job is to become a mid-level developer. There are projects out there that will challenge you to learn and grow as part of the process. It _is_ doable to hit that next career level through contributing. ![Tweet from @patak_dev: 👋 @stackblitz hired me because of my OS contributions to Vite, to ensure I could continue to help maintain the project long term](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cgo7h994nfdiekljvf8f.png) ## Build Your Network -There are more developers who are off social media than are on social media for tech. So if you’re following Tech Twitter, for example, you’re only seeing a small percentage of those people working in tech. By participating in open source, you’ll find a broader community of people in the industry who you can learn from, participate with, and ultimately grow with. It doesn’t have to start with a PR, either. You can answer questions in the discussion, open an issue, or direct people to resources in the community Discord/Slack/forum. + +There are more developers who are off social media than are on social media for tech. So if you’re following Tech Twitter, for example, you’re only seeing a small percentage of those people working in tech. By participating in open source, you’ll find a broader community of people in the industry who you can learn from, participate with, and ultimately grow with. It doesn’t have to start with a PR, either. You can answer questions in the discussion, open an issue, or direct people to resources in the community Discord/Slack/forum. ![Tweet from @sandra_rodgers_: I made an open source contribution a few years ago to a little vue package; the owner worked for a startup. He had his CTO reach out to me through linked in. I interviewed and they wanted to hire me but I decided to stay where I was. Great experience though!](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/26t3ze2cwy30ykr6kvh3.png) In the global market for tech talent, open source provides credibility and an opportunity to showcase real-world work that you’ve done. Now here’s a little choose-your-own adventure to close out this post. If you want to… -- **learn about how to find a good first issue**, I recommend you read [Brian Douglas’](https://dev.to/bdougieyo) [Good First Issues Don’t Exist](https://opensauced.pizza/blog/good-first-issues-dont-exist). -- **find a project that’s looking for contributors**, check out our Friday posts, Who's looking for open source contributors? [Week 38](https://dev.to/opensauced/whos-looking-for-open-source-contributors-week-38-16e9) and [Week 39](https://dev.to/opensauced/whos-looking-for-open-source-contributors-week-39-41jf). -- **talk more about open source**, we’ve got our [Weekly Chat on Discord](https://discord.com/events/714698561081704529/1101536137765474374) on Tuesdays at 12p EDT, and our open mic [Twitter Space](https://twitter.com/i/spaces/1OdJrzpRenpJX?s=20) on May 3, 11am EDT—as well as every Wednesday for the next four weeks. + +- **learn about how to find a good first issue**, I recommend you read [Brian Douglas’](https://dev.to/bdougieyo) [Good First Issues Don’t Exist](https://opensauced.pizza/blog/good-first-issues-dont-exist). +- **find a project that’s looking for contributors**, check out our Friday posts, Who's looking for open source contributors? [Week 38](https://dev.to/opensauced/whos-looking-for-open-source-contributors-week-38-16e9) and [Week 39](https://dev.to/opensauced/whos-looking-for-open-source-contributors-week-39-41jf). +- **talk more about open source**, we’ve got our [Weekly Chat on Discord](https://discord.com/events/714698561081704529/1101536137765474374) on Tuesdays at 12p EDT, and our open mic [Twitter Space](https://twitter.com/i/spaces/1OdJrzpRenpJX?s=20) on May 3, 11am EDT—as well as every Wednesday for the next four weeks. - **show off the open source contributions you’ve already made**, add them to our [highlight feed](https://insights.opensauced.pizza/feed), and maybe they’ll even be featured in our next newsletter. Shoutout to [doaortu](https://insights.opensauced.pizza/user/doaortu/highlights) for [their contribution to the GitHub CLI](https://insights.opensauced.pizza/feed/108)! ![Screenshot of OpenSauced Highlight with description for the contribution](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywsqo8a6n9b8l2hjadnj.png) - - - - diff --git a/blog/2023/2023-05-01-the-power-of-pair-programming-benefits-types-and-tips.md b/blog/2023/2023-05-01-the-power-of-pair-programming-benefits-types-and-tips.md index 937433bc..3baff007 100644 --- a/blog/2023/2023-05-01-the-power-of-pair-programming-benefits-types-and-tips.md +++ b/blog/2023/2023-05-01-the-power-of-pair-programming-benefits-types-and-tips.md @@ -13,19 +13,22 @@ Before you start, we recommend you take a look at [Martin Fowler’s article On ## What is Pair Programming? + Pair programming is a technique used in software development where two or more programmers work together on the same task. The two programmers switch between two roles: the driver, who is actively writing the code, and the navigator, who is observing the driver's work and providing guidance, feedback, and ideas. The value of pair programming comes from continuously communicating with each other, discussing the code being written, suggesting improvements, and debugging any issues together. Increased code quality, reduced errors, improved collaboration and communication, and enhanced learning opportunities are some of the benefits of pairing up. -### Types of Pair Programming +### Types of Pair Programming + There’s more than one way to pair program, so if you’ve tried one way and didn’t find it helpful, there are other approaches you can take, including: - Driver-Navigator Pair Programming: The most common type of pair programming, where one person (the driver) writes the code while the other person (the navigator) reviews the code and provides feedback. -- Ping-Pong Pair Programming: In this type of pair programming, one person writes a test case and the other person writes the code to pass the test. The partners then swap roles and repeat the exercise. +- Ping-Pong Pair Programming: In this type of pair programming, one person writes a test case and the other person writes the code to pass the test. The partners then swap roles and repeat the exercise. - Mob programming: a collaborative pairing approach where a group of developers work together on a single task. In mob programming, one person usually acts as the driver, writing the code, while the rest of the group act as navigators, providing feedback, suggesting improvements, and discussing ideas. The group continuously collaborates, switching roles frequently and communicating throughout the process. (At Virtual Coffee, we might call this co-working room pairing 😉) - Chaos programming: Everyone works on a codebase at the same time, using tools like VSCode Live. Not ideal for most work environments, this can be the quickest way to produce code under a time constraint like a hackathon. ## Ways to get started + If you want to pair, but you're not sure what to pair on, here are some ideas to get you started: - **A project that you need some help on.** By pairing with someone else, you can share ideas, troubleshoot issues, and gain a fresh perspective. @@ -33,14 +36,17 @@ If you want to pair, but you're not sure what to pair on, here are some ideas to - **A LeetCode problem.** LeetCode is a platform that offers coding challenges to improve your algorithmic problem-solving skills. Pairing on a LeetCode problem is a fun and challenging way to improve your coding skills and work with someone else. ## Pair Programming Resources + ### Live Coding Tools + - [Duckly](https://duckly.com/) - [Tuple](https://tuple.app/) - [VSCode liveshare](https://code.visualstudio.com/blogs/2017/11/15/live-share) - Zoom Screen sharing ### Live Collaboration/Whiteboarding Tools -- [Excalidraw](https://excalidraw.com/) + +- [Excalidraw](https://excalidraw.com/) - [Miro](https://miro.com/) Pair programming is an effective way to improve code quality, foster collaboration, and promote continuous learning. By challenging ourselves to improve our pairing skills this month, we can grow as developers and improve our coding skills. If you'd like to recommend a resource for pair programming, you can add them to [this discussion](https://github.com/Virtual-Coffee/virtualcoffee.io/discussions/516). If you’d like to participate along with us, let us know in the comments below and we’ll tag you in our check-ins! diff --git a/blog/2023/2023-05-03-how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions.md b/blog/2023/2023-05-03-how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions.md index aefd5a17..2ad86c30 100644 --- a/blog/2023/2023-05-03-how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions.md +++ b/blog/2023/2023-05-03-how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions.md @@ -6,16 +6,17 @@ slug: how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with- description: "One of the first pieces of advice I got before graduating from bootcamp was to get involved in open source. This is how to do it without knowing how to code." --- -One of the first pieces of advice I got before graduating from bootcamp was to get involved in open source. I browsed around GitHub. I looked at issues. I peeked into code bases. I was overwhelmed. I didn’t quite feel like I had the capabilities to jump in and start working on an issue. Skill-wise, could I? Maybe, depending on the repository. Confidence-wise? No way. I was a career-changer with ten years of expertise in English and zero years of expertise in coding. But, if someone would have told me that I could start where I was most comfortable, without writing code, I think I could have eased my way into the open source waters sooner. Open source projects don’t always require code contributions; in fact, non-code contributions can be as valuable as code contributions. +One of the first pieces of advice I got before graduating from bootcamp was to get involved in open source. I browsed around GitHub. I looked at issues. I peeked into code bases. I was overwhelmed. I didn’t quite feel like I had the capabilities to jump in and start working on an issue. Skill-wise, could I? Maybe, depending on the repository. Confidence-wise? No way. I was a career-changer with ten years of expertise in English and zero years of expertise in coding. But, if someone would have told me that I could start where I was most comfortable, without writing code, I think I could have eased my way into the open source waters sooner. Open source projects don’t always require code contributions; in fact, non-code contributions can be as valuable as code contributions. ## Non-Code Contributions to Open Source ### Documentation -Good documentation helps users understand how to use the software, troubleshoot issues, and contribute to the project. Contributing to documentation is a great way to get involved in open source without needing to know how to code. Sometimes documentation needs to be updated. Other times directions need to be clarified–if you’re struggling to understand something as part of the documentation process, chances are that someone else is too. Sometimes it needs to be written. +Good documentation helps users understand how to use the software, troubleshoot issues, and contribute to the project. Contributing to documentation is a great way to get involved in open source without needing to know how to code. Sometimes documentation needs to be updated. Other times directions need to be clarified–if you’re struggling to understand something as part of the documentation process, chances are that someone else is too. Sometimes it needs to be written. #### Project Highlight: [The Odin Project](https://insights.opensauced.pizza/hot/dashboard/filter/TheOdinProject/theodinproject) + The Odin Project is a free, open-source curriculum for learning web development. It’s designed to be self-directed and project-based, and covers a wide range of topics, including HTML, CSS, JavaScript, and Ruby on Rails. One way to contribute to The Odin Project is by helping to improve their documentation. You can contribute to [their curriculum repository](https://github.com/TheOdinProject/curriculum) by suggesting improvements, reporting errors, or adding new documentation. They also have a great [Contributing Guide](https://github.com/TheOdinProject/theodinproject/blob/main/CONTRIBUTING.md) to help onboard new contributors. @@ -25,6 +26,7 @@ One way to contribute to The Odin Project is by helping to improve their documen User experience (UX) design is another valuable non-code contribution. UX designers can help OSS projects improve their user interfaces, making them more intuitive, accessible, and user-friendly. This could involve reviewing the project's design and identifying any accessibility issues, such as color contrast or font size, and suggesting improvements. You could also help create accessible design elements, like icons or buttons for the project. #### Project Highlight: [WordPress](https://insights.opensauced.pizza/hot/repositories/filter/WordPress/WordPress) + WordPress is an open source content management system and has a dedicated team of UX designers who work on improving the user experience of the platform. They advertise their vision for getting designers involved in their all-volunteer team and highlight ways to do that on their [Make WordPress Design page](https://make.wordpress.org/design/). They also have a [Make WordPress Accessible page](https://make.wordpress.org/accessibility/) that outlines how volunteers can get involved to improve accessibility. @@ -33,19 +35,24 @@ They also have a [Make WordPress Accessible page](https://make.wordpress.org/acc Because so much of the code we write is for a global user base, many repositories actively seek translations to reach a broader audience and provide a better experience for non-native speakers. -#### Project Highlight: OpenStreetMap +#### Project Highlight: OpenStreetMap + OpenStreetMap is a collaborative project that aims to create a free and editable map of the world. It’s built by a community of mappers who contribute and maintain data about roads, buildings, landmarks, and other points of interest around the world. Within their documentation on how to contribute, they include a section on [Translate!](https://github.com/openstreetmap/iD/blob/develop/CONTRIBUTING.md#translating) to provide access to more users and provide directions on the translation contributing process. ### Content + Supporting open source projects is more than code and documentation. There are users who need supported and developers who need to learn more. There’s always a way to create a safer and more stable space for the community. You can do this by sharing projects you enjoy using, writing blog posts that include their product, speaking about their product at meetups and conferences, and providing feedback to the maintainers. #### Project Highlight: [Appwrite](https://insights.opensauced.pizza/hot/dashboard/filter/appwrite/appwrite) + Appwrite is a backend platform for developing Web, Mobile, and Flutter applications. Their CONTRIBUTING.md file highlights all of the different [non-code ways that contributors can help to support their project](https://github.com/appwrite/appwrite/blob/master/CONTRIBUTING.md#other-ways-to-help). ### Community -A strong and welcoming community often leads to a healthy open source project. Community can be one of the most time-consuming parts of maintaining a project. Questions need answered, examples need to be created, clarifying information, and creating clear paths of communication are all important to supporting a community. Often open source projects rely on volunteers to ensure the community is supported and thriving. -#### Project Spotlight: [Directus](https://insights.opensauced.pizza/hot/dashboard/filter/directus/directus) -Directus is a real-time API and App dashboard for managing SQL database content. Within their contributing doc, Directus shares that one way to contribute is by [Helping Others](https://github.com/directus/directus/blob/main/contributing.md#helping-others). +A strong and welcoming community often leads to a healthy open source project. Community can be one of the most time-consuming parts of maintaining a project. Questions need answered, examples need to be created, clarifying information, and creating clear paths of communication are all important to supporting a community. Often open source projects rely on volunteers to ensure the community is supported and thriving. + +#### Project Spotlight: [Directus](https://insights.opensauced.pizza/hot/dashboard/filter/directus/directus) + +Directus is a real-time API and App dashboard for managing SQL database content. Within their contributing doc, Directus shares that one way to contribute is by [Helping Others](https://github.com/directus/directus/blob/main/contributing.md#helping-others). -You don’t have to know how to code to get involved in open source, and contributing isn’t just for developers. We all use products that use open source software. Finding ways to give back that’s within our skillset benefits the projects, the tech community, and everyone who’s using products that use open source software. This is a short list of projects and examples that accept non-code contributions. If you want to see a longer list, check out [the Twitter thread here](https://twitter.com/BekahHW/status/1653524665283772416). If you want to explore more repositories, check out [OpenSauced Insights](https://insights.opensauced.pizza/). +You don’t have to know how to code to get involved in open source, and contributing isn’t just for developers. We all use products that use open source software. Finding ways to give back that’s within our skillset benefits the projects, the tech community, and everyone who’s using products that use open source software. This is a short list of projects and examples that accept non-code contributions. If you want to see a longer list, check out [the Twitter thread here](https://twitter.com/BekahHW/status/1653524665283772416). If you want to explore more repositories, check out [OpenSauced Insights](https://insights.opensauced.pizza/). diff --git a/blog/2023/2023-05-08-open-source-terminology-101-a-primer-for-new-contributors.md b/blog/2023/2023-05-08-open-source-terminology-101-a-primer-for-new-contributors.md index 73be2ec8..c386b2f5 100644 --- a/blog/2023/2023-05-08-open-source-terminology-101-a-primer-for-new-contributors.md +++ b/blog/2023/2023-05-08-open-source-terminology-101-a-primer-for-new-contributors.md @@ -17,11 +17,13 @@ A repository is a central location where code is stored and managed. In open sou Example: The [WordPress repository](https://github.com/WordPress/WordPress) contains all the code for the WordPress content management system. ## Maintainer + A maintainer is a person or a group of people responsible for maintaining a specific open source project. Maintainers are typically responsible for reviewing and accepting or rejecting contributions from other contributors. They also have the authority to make final decisions about the direction and scope of the project. Example: [Redwoodjs](https://insights.opensauced.pizza/hot/repositories/filter/redwoodjs/redwood) has a team of maintainers that are listed in the [Core Team section of their README](https://github.com/redwoodjs/redwood#core-team). ## Core Member + A core member is a contributor who has been granted additional privileges or responsibilities within an open source project. Core members are typically trusted contributors who have demonstrated a deep understanding of the project and have made significant contributions to its development. Example: In the [Python](https://github.com/python/cpython) project, core members have commit access to the codebase, which allows them to make changes directly to the main code repository without going through the normal pull request process. @@ -36,7 +38,7 @@ Example: An issue might be created to report a bug in the code, request a new fe A contributor is anyone who makes changes, additions, or suggestions to an open source project. Contributors can be developers, designers, writers, testers, or anyone else who helps to make the project better. -Example: If you submit a pull request, report a bug, or help to answer questions in a project's community forum, you're a contributor! If you want to learn more about types of non-code contribution to an open source project, check out [How to Contribute to Open Source without Knowing How to Code: A guide with project suggestions](https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5). +Example: If you submit a pull request, report a bug, or help to answer questions in a project's community forum, you're a contributor! If you want to learn more about types of non-code contribution to an open source project, check out [How to Contribute to Open Source without Knowing How to Code: A guide with project suggestions](https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5). ## Fork @@ -46,12 +48,11 @@ Example: You might fork a repository to create a new version of a project that's ![fork repo process gif](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/92lh02osb98ihj0tnw9j.gif) - ## Branch A branch is a separate version of the code that's created for development purposes. Branches allow contributors to experiment with changes without affecting the main codebase. When changes are ready to be merged into the main codebase, they're typically submitted as a pull request. -Example: A contributor might create a branch to experiment with a new feature, fix a bug, or refactor code. +Example: A contributor might create a branch to experiment with a new feature, fix a bug, or refactor code. ## Pull Request @@ -59,19 +60,12 @@ A pull request is a request for changes to be made to a codebase. It's typically Example: A contributor might submit a pull request to fix a bug in the code, add a new feature, or improve documentation. Check out [Sunday’s PR highlight](https://insights.opensauced.pizza/feed/114) for a specific example. - ## Merge Merging is the process of combining changes from one branch into another. When a pull request is accepted and merged, the changes made in the pull request become part of the main codebase. Example: You might see something that looks like this on a Pull Request that’s waiting to be merged. - ![Merge Pull Request Button](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zreesiyxn9n9vydc4krw.png) - - Hopefully, this will help decrease the barrier to entry for folks new to open source. If you have more questions or want help getting started, let us know in the comments below and join us for our [Twitter Space on Wednesday](https://twitter.com/i/spaces/1MnxnpZNrvmGO) with [Josh Goldberg](https://twitter.com/JoshuaKGoldberg) at 11a EDT. - - - diff --git a/blog/2023/2023-05-10-how-to-write-a-good-issue-tips-for-effective-communication-in-open-source.md b/blog/2023/2023-05-10-how-to-write-a-good-issue-tips-for-effective-communication-in-open-source.md index 545c6f2a..a8aeba41 100644 --- a/blog/2023/2023-05-10-how-to-write-a-good-issue-tips-for-effective-communication-in-open-source.md +++ b/blog/2023/2023-05-10-how-to-write-a-good-issue-tips-for-effective-communication-in-open-source.md @@ -6,14 +6,16 @@ slug: how-to-write-a-good-issue-tips-for-effective-communication-in-open-source description: "Learn how to write a good issue in open source development with these tips. Follow these guidelines for clear and effective communication to help your fellow contributors address bugs, suggest features, and more. Start contributing to open source with confidence today." --- -Three years ago I maintained my first open source project for Hacktoberfest. As a first-time maintainer, I underestimated the time and effort it would take to write good issues for my contributors. What I also learned that year was that writing issues is an important form of communication, and, as a contributor, it can be a valuable skill to develop to create relationships and support maintainers. If you’re trying to get involved in open source, one way to get started is by writing issues that report bugs, request features, or suggest improvements. +Three years ago I maintained my first open source project for Hacktoberfest. As a first-time maintainer, I underestimated the time and effort it would take to write good issues for my contributors. What I also learned that year was that writing issues is an important form of communication, and, as a contributor, it can be a valuable skill to develop to create relationships and support maintainers. If you’re trying to get involved in open source, one way to get started is by writing issues that report bugs, request features, or suggest improvements. ## Understanding the Purpose of the Issue + Issues are often a starting point for communication. It’s an opportunity to communicate with maintainers or for maintainers to communicate needs to contributors. There’s usually one main idea per issue with an explanation. For example, a bug report would address one bug. A feature request would outline one feature. ## Elements of a Good Issue + A good issue should have several key elements that help to clearly and concisely communicate the problem or suggestion. These elements include: - Clear and concise title: The title should describe the issue in a way that is easy to understand. @@ -23,34 +25,42 @@ A good issue should have several key elements that help to clearly and concisely - Proposed solution: If you have an idea for how to address the issue, include it in your issue. ### Elements of a Good Bug Report + For bug reports, you should generally also include the following information: + - Steps to reproduce the bug - Your work environment (operating system, etc.) - The browser you’re using - Any applicable screenshots, video reproduction, code, or context ### Elements of a Good Feature Request + For feature requests, you need to help the maintainer understand why the feature is important. You should generally include the following information: + - Type of feature (docs, refactor, style, code feature, etc.) - The current state of the application and the solution you suggest with your feature -- Any additional context of information, including alternatives you’ve considered +- Any additional context of information, including alternatives you’ve considered ## Issue templates -Some repositories will use issue templates to help guide you through writing an issue. For example, at OpenSauced, we have templates for bug reports and feature requests (shown below). Templates help to ensure the maintainer gets all the information they need to communicate with contributors. If there are templates, it’s important to use them rather than start with a blank issue. + +Some repositories will use issue templates to help guide you through writing an issue. For example, at OpenSauced, we have templates for bug reports and feature requests (shown below). Templates help to ensure the maintainer gets all the information they need to communicate with contributors. If there are templates, it’s important to use them rather than start with a blank issue. ![OpenSauced Feature Request template](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u7iwfkdsydr1sy2okr83.png) ## Example Walkthrough -Sometimes the best way to learn is by looking at examples, so we’re going to walk through this [Remix issue](https://github.com/remix-run/remix/issues/3003) from [Nick Taylor](https://dev.to/nickytonline). -We’ll go through each element of a good issue and bug report. +Sometimes the best way to learn is by looking at examples, so we’re going to walk through this [Remix issue](https://github.com/remix-run/remix/issues/3003) from [Nick Taylor](https://dev.to/nickytonline). + +We’ll go through each element of a good issue and bug report. ### Clear and concise title +> > TypeError: Body is unusable when using Remix(experimental-netlify-edge) Actions +### Detailed description & Steps to reproduce the bug -### Detailed description & Steps to reproduce the bug In the issue, Nick covers some key steps: + 1. What version of Remix he's using 2. Steps to Reproduce, including a numbered list, code snippets, screenshots, and a link to a Discord discussion with more context. 3. Expected behavior @@ -59,23 +69,25 @@ In the issue, Nick covers some key steps: ![Gif scrolling through the issue](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gct099z8l0nyy6q89sy2.gif) ### Visuals -Within the description of the issue, there's a screenshot of what it looks like when it runs locally and an image of how it would look in Postman. + +Within the description of the issue, there's a screenshot of what it looks like when it runs locally and an image of how it would look in Postman. ### Proposed solution + Although the initial issue doesn't include a proposed solution, Nick explores what's happening and maintains communication in the comments. As part of the investigation, he created a repository to help the maintainers check it out, and shared his approach in [his comment](https://github.com/remix-run/remix/issues/3003#issuecomment-1116552723). -### Work Environment +### Work Environment + Nick shares the version of Remix, the versions of Node he tried, and includes that the Netlify CLI was installed. ### Conversation -Nick didn’t end the issue with the bug report. If you scroll beyond the issue, you’ll see that he continued the conversation, referencing a conversation in the organization Discord, and his investigation into the bug and solutions. He makes updates as he finds more information, providing code snippets for contextualization, and tags maintainers as part of the conversation as well as others who have contributed. -![Screenshot of Nick's comment and continued exploration of the issue.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guxkzzf7da37zlm2qnfw.png) +Nick didn’t end the issue with the bug report. If you scroll beyond the issue, you’ll see that he continued the conversation, referencing a conversation in the organization Discord, and his investigation into the bug and solutions. He makes updates as he finds more information, providing code snippets for contextualization, and tags maintainers as part of the conversation as well as others who have contributed. +![Screenshot of Nick's comment and continued exploration of the issue.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/guxkzzf7da37zlm2qnfw.png) -Best of all, he supports the team member who helped with the fix. +Best of all, he supports the team member who helped with the fix. ![Screenshot of Nick's comment "Woohoo! Nice work @jacob-ebey! 🔥"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ltv5yerd5mcf4rasrs4m.png) - Writing good issues is an important part of effective communication both in how you construct the issue and how you communicate once the issue has been opened. It’s a great way to demonstrate your communication and investigation skills. And if you’re trying to get into open source, remember, [good first issues don’t exist](https://opensauced.pizza/blog/good-first-issues-dont-exist), unless you make them yourself 😉 diff --git a/blog/2023/2023-05-15-choose-your-own-adventure-in-open-source-paths-to-success.md b/blog/2023/2023-05-15-choose-your-own-adventure-in-open-source-paths-to-success.md index e4676a78..3261cc33 100644 --- a/blog/2023/2023-05-15-choose-your-own-adventure-in-open-source-paths-to-success.md +++ b/blog/2023/2023-05-15-choose-your-own-adventure-in-open-source-paths-to-success.md @@ -11,13 +11,16 @@ Welcome to the Choose Your Own Adventure blog post for new contributors! Each p ## Choose Your Path -1. [Path 1: Improve Your Coding Skills](#improve-your-coding-skills) -2. [Path 2: Work on a Project Related to Your Interests or Fields of Study](#work-on-a-project-related-to-your-interests-or-fields-of-study) -3. [Path 3: Work on a Project That Has a Significant Impact on the Community](#work-on-a-project-that-has-a-significant-impact-on-the-community) -4. [Path 4: Get Work Experience with the Goal of Landing a Job](#get-work-experience-with-the-goal-of-landing-a-job) -5. [Path 5: To Gain Credibility in the Industry](#to-gain-credibility-in-the-industry) + +- [Choose Your Path](#choose-your-path) +- [Improve Your Coding Skills](#improve-your-coding-skills) +- [Work on a Project Related to Your Interests or Fields of Study](#work-on-a-project-related-to-your-interests-or-fields-of-study) +- [Work on a Project That Has a Significant Impact on the Community](#work-on-a-project-that-has-a-significant-impact-on-the-community) +- [Get Work Experience with the Goal of Landing a Job](#get-work-experience-with-the-goal-of-landing-a-job) +- [To Gain Credibility in the Industry](#to-gain-credibility-in-the-industry) ## Improve Your Coding Skills + Meet Alex, a college student majoring in computer science who wants to improve their coding skills by contributing to open source projects. Alex has taken programming classes and has some experience coding, but wants to work on real-world projects to gain more experience. Alex starts researching open source projects and finds a project that has "good first issues" labeled on its repository. Alex starts small, fixing a bug in the codebase and submitting a pull request. The pull request is accepted and Alex is thrilled to have contributed to the project. Over time, Alex works on more issues and tasks, building their skills and experience as a developer. If your goal is to improve your coding skills, there are many open source projects that are perfect for beginners. Here are a few steps to help you get started: @@ -29,6 +32,7 @@ Step 2: Look for issues or tasks that are labeled as "good first issues" or "beg Step 3: Start small and work your way up. Don't be afraid to ask questions or reach out to the community for help. ## Work on a Project Related to Your Interests or Fields of Study + Meet Maya, a music major who is passionate about technology and wants to work on a project that relates to her field. Maya joins a music technology community and finds an open source project that creates tools for musicians. Maya starts contributing by testing the software and submitting bug reports. Over time, Maya becomes more involved in the community and starts working on new features and improvements for the software. Through her contributions, Maya gains experience as a developer and also gains a deeper understanding of the intersection between music and technology. If your goal is to work on a project related to your interests or field of study, there are many open source projects out there that align with different industries or fields. Here are a few steps to help you get started: @@ -38,6 +42,7 @@ Step 1: Determine your interests or field of study. Look for communities or open Step 2: Explore [GitHub Connections](https://github.com/collections) to see if any projects align with your interests. ## Work on a Project That Has a Significant Impact on the Community + Meet Javier, a software engineer who wants to use his skills to make a positive impact on the world. Javier joins a community that focuses on environmental issues and finds an open source project that creates tools for monitoring air pollution. Javier starts contributing by working on a new feature that helps users visualize the data more effectively. Through his contributions, Javier learns more about the challenges of environmental monitoring and gains a sense of purpose from his work. If your goal is to work on a project that has a significant impact on the community, there are many open source projects that are focused on solving real-world problems. Here are a few steps to help you get started: @@ -47,23 +52,25 @@ Step 1: Determine the problems or issues that you want to address. They don’t Step 2: Reach out to your favorite non-profit organizations or your local government to see if they have recommendations or need support. ## Get Work Experience with the Goal of Landing a Job + Meet Tilda, a self-taught developer who is looking for work as a software engineer. Tilda wants to gain experience and build her resume by contributing to open source projects. At a meetup, she hears about a project that needs support with test writing. She doesn’t have a lot of experience writing tests, but she talks to the speaker after the talk who is supportive and offers to help if she gets stuck. Once she’s written a couple of tests, she feels more comfortable navigating the codebase and successfully squashes her first bug! She also adds her contributions to the project to her resume and is eventually hired by a company that values open source contributions. If your goal is to get work experience with the goal of landing a job, contributing to open source projects is a great way to gain experience and build your resume. Here are a few steps to help you get started: Step 1: Look for open source projects that are related to your field or industry. Look for projects that are being used by companies you are interested in working for. -Step 2: Look for issues that help you to build a resume to land a job. For example, if you’re applying for jobs that require you to use React, build your React experience by taking on issues using that technology. +Step 2: Look for issues that help you to build a resume to land a job. For example, if you’re applying for jobs that require you to use React, build your React experience by taking on issues using that technology. Step 3: Start contributing and building your portfolio. [Highlight your contributions](https://insights.opensauced.pizza/feed) to open source projects as examples of your work experience and to gain exposure. ## To Gain Credibility in the Industry + Meet Jaymir, a software engineer a year of experience who wants to gain more credibility in the industry. His job hasn’t challenged him in the ways that he’s hoped and he wants to grow, learn new things, and feel motivated. Jaymir joins a community related to the field of expertise he hopes to move into and finds an open source project that creates tools for performance monitoring. Jaymir starts by using the tool, reading the documentation and issues, and then takes an issue that he knows will challenge him. Over time, Jaymir becomes more involved in the project and starts working on more complex features. Through his contributions, Jaymir gains recognition in the community and is invited to speak at a conference about his work on the project. His contributions to the project also catch the attention of a recruiter who offers him a more advanced job at a software company that’s a better fit. If your goal is to gain credibility in the industry, contributing to open source projects is a great way to showcase your skills and expertise. Here are a few steps to help you get started: -Step 1: Determine how you want to build credibility. +Step 1: Determine how you want to build credibility. -Step 2: You can use [OpenSauced's Explore feature](https://insights.opensauced.pizza/javascript/dashboard/filter/recent) to look for issues that will challenge you to grow or learn new things. +Step 2: You can use [OpenSauced's Explore feature](https://insights.opensauced.pizza/javascript/dashboard/filter/recent) to look for issues that will challenge you to grow or learn new things. -Everyone’s journey into open source will look different. Some people will have repeat contributions to the same codebases. Others will collect projects like Pokemon. Others might contribute once and then not make a second contribution to open source for years. What’s important is understanding what you want to get out of the journey and then find ways to do that. And remember, if the path you’ve been on is too rocky or steep, there are other paths out there. There’s a journey for everyone. +Everyone’s journey into open source will look different. Some people will have repeat contributions to the same codebases. Others will collect projects like Pokemon. Others might contribute once and then not make a second contribution to open source for years. What’s important is understanding what you want to get out of the journey and then find ways to do that. And remember, if the path you’ve been on is too rocky or steep, there are other paths out there. There’s a journey for everyone. diff --git a/blog/2023/2023-05-22-what-happens-after-you-submit-a-pr-to-an-open-source-project.md b/blog/2023/2023-05-22-what-happens-after-you-submit-a-pr-to-an-open-source-project.md index 1f598b5a..38c117bd 100644 --- a/blog/2023/2023-05-22-what-happens-after-you-submit-a-pr-to-an-open-source-project.md +++ b/blog/2023/2023-05-22-what-happens-after-you-submit-a-pr-to-an-open-source-project.md @@ -5,40 +5,50 @@ authors: BekahHW slug: what-happens-after-you-submit-a-pr-to-an-open-source-project description: "Curious about the process after submitting a pull request to an open source project? Discover the step-by-step journey, from review and discussion to maintainer approval and code merge, in this informative blog post." --- -It can be really exciting to get your first open source Pull Request (PR) merged in. But it’s important to remember that this is a step in the process and it’s perfectly normal to review feedback, make updates, and have questions before it’s merged in. Should you celebrate getting that PR in? Absolutely, but save the big celebration for when it’s merged. +It can be really exciting to get your first open source Pull Request (PR) merged in. But it’s important to remember that this is a step in the process and it’s perfectly normal to review feedback, make updates, and have questions before it’s merged in. Should you celebrate getting that PR in? Absolutely, but save the big celebration for when it’s merged. ## In the Spotlight: Review and Discussion + Once your pull request is submitted, it undergoes a thorough review process by the maintainers. They examine the code changes, analyze the impact, and provide feedback. This feedback can be in the form of comments, suggestions, or requests for clarification. It's common for discussions and iterations to take place during this stage as you address the feedback and make necessary adjustments. ## Quality Matters: Continuous Integration (CI) Checks + Many open source projects utilize continuous integration systems, such as Travis CI, CircleCI, or Jenkins. These systems automatically run a series of tests against your code to ensure it meets the project's quality standards. The CI system may check for code style, run unit tests, and perform other validations. You'll receive notifications to fix the issues if the CI checks fail. ## Approaching the Finish Line: Collaboration with Project Maintainers + Project maintainers play an important role in reviewing and approving pull requests. Your ability to clearly communicate with them impacts if and when your PR will be merged into the code base. Depending on the size of the project, whether not not it's run by volunteers, and the number of maintainers, response times can drastically vary. Be patient and kind. Here are some tips for collaboration: ### Responding to Maintainer Feedback + When maintainers provide feedback on your pull request, it's important to approach it with an open mind and a willingness to improve. Spend time reviewing the comments and suggestions, seeking clarification if needed. Respond to the feedback in a timely and respectful manner, acknowledging the suggestions and proposing changes accordingly. ### Meeting Quality Standards -Maintainers have the responsibility of ensuring that the project maintains a high level of quality. To gain their approval, address any code-related issues identified during the review process. Pay attention to code style, adherence to coding guidelines, and best practices specific to the project. Take the necessary steps to refactor and optimize your code, ensuring it aligns with the project's standards. + +Maintainers have the responsibility of ensuring that the project maintains a high level of quality. To gain their approval, address any code-related issues identified during the review process. Pay attention to code style, adherence to coding guidelines, and best practices specific to the project. Take the necessary steps to refactor and optimize your code, ensuring it aligns with the project's standards. ### Communicate the Impact of Your Code + Maintainers are interested not only in the technical aspects of your code changes but also in understanding their impact on the project as a whole. Clearly communicate the purpose and benefits of your code modifications. Explain how your changes contribute to the project's objectives, performance improvements, or bug fixes. Provide any relevant performance benchmarks or test results to support your claims. By effectively conveying the significance of your contributions, you help maintainers appreciate the value your code brings to the project. ### Understand the Maintainers' Perspective + Project maintainers have a deep understanding of the project's architecture, design principles, and long-term goals. Recognize that their feedback and suggestions are rooted in their expertise and the project's best interests. Consider their feedback a type of mentorship and an opportunity to learn and grow from their insights. Showing that you respect and value their expertise, can create a positive collaborative relationship. ### Establishing a Positive Collaborative Relationship + Building a positive relationship with maintainers is essential for successful collaboration. Actively engage in discussions, ask questions, and seek help when you need it. Be open to receiving constructive criticism and show your commitment to learning and improving. Offer help and contribute beyond your pull request, for example, you might offer to help with issue triaging, documentation, or supporting other contributors. By actively participating in the project community and demonstrating a collaborative mindset, you can establish a positive rapport with maintainers. Remember, collaboration with project maintainers is a two-way street. Approach their feedback with a growth mindset, value their expertise, and actively engage in the review process. By addressing feedback, meeting quality standards, effectively communicating the impact of your code, and establishing a positive collaborative relationship, you enhance the chances of gaining approval for your pull request and contribute to the success of the open source project. ## Merge and Closing the Pull Request + After receiving the maintainer's approval, the pull request is merged into the main repository. At this point, your code becomes part of the project's codebase :tada: ## Pull Request Rejection + It's worth noting that not all PRs get merged into a project. When you submit a pull request, you're not just asking maintainers to add your code to the codebase; you're also asking them to maintain that code. It is a normal part of the contributor journey to have PRs rejected, especially if there wasn't much communication with the maintainers during the development of the pull request. ## Example Pull Request Walkthrough @@ -48,7 +58,8 @@ As you learned above, once a contributor submits a pull request to a repository, > When I think back to that PR, I remember my initial idea was to use a third-party library to implement the 3-panel resizable interface in Cypress. I tried out two different libraries on that branch, but ended up writing a custom implementation when those didn't meet our needs. Working through that PR helped clarify what we needed to do and how it should work. The main thing is, at all times we are focused on the underlying goal of the PR, and I am never attached to "my code" other than as a way to achieve the goal. So changing, removing, and rewriting code through feedback are all common, low-stakes parts of dialing in a change, and I expect and welcome that part of the process. I'm grateful and lucky to work with thoughtful, thorough people who provide great reviews. ### Submit Your Pull Request -In the pull request, you should state any issues being closed and pertinent information so the reviewing team can get a quick understanding of what the PR accomplishes. In this case, Mark lists the two issues the PR closes, additional details, a bulleted list of what happens in this PR, a video that demonstrates how the user experience has changed, and how to test. + +In the pull request, you should state any issues being closed and pertinent information so the reviewing team can get a quick understanding of what the PR accomplishes. In this case, Mark lists the two issues the PR closes, additional details, a bulleted list of what happens in this PR, a video that demonstrates how the user experience has changed, and how to test. ![gif of pull request](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rhyyvn759jf8q7zrcp19.gif) @@ -56,9 +67,10 @@ If your PR is ready for review, you can request a review to let the maintainers ![Review Request](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8llflnf372gds38bqw4z.png) -You can also [mark a pull request as ready for review](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review). +You can also [mark a pull request as ready for review](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review). ### Code Review + Now that Mark has submitted the PR and asked for a review, another maintainer looks at the code and provides feedback and asks a question for clarification. ![Asking a question in PR comments](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5h6hoewul9yvynuvfz5o.png) @@ -75,4 +87,4 @@ And then what we’re all finally waiting for: ![I tested and it feels great to use!](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6jglgw7307yfue7558bk.png) -It’s worth noting that this Pull Request was submitted on December 7th and it was merged in after feedback, updates, and conversations on December 17th. Getting your Pull Request merged in is a process that’s part of the developer journey. If you want to learn more about what to put in your first PR, check out my post, [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9). And if you have a pull request that you’re proud of and want to highlight, [sign up for OpenSauced](https://insights.opensauced.pizza/start) and share it as a [highlight](https://insights.opensauced.pizza/feed). +It’s worth noting that this Pull Request was submitted on December 7th and it was merged in after feedback, updates, and conversations on December 17th. Getting your Pull Request merged in is a process that’s part of the developer journey. If you want to learn more about what to put in your first PR, check out my post, [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9). And if you have a pull request that you’re proud of and want to highlight, [sign up for OpenSauced](https://insights.opensauced.pizza/start) and share it as a [highlight](https://insights.opensauced.pizza/feed). diff --git a/blog/2023/2023-05-30-exploring-imaginary-worlds.md b/blog/2023/2023-05-30-exploring-imaginary-worlds.md index 224b759b..5c0e513a 100644 --- a/blog/2023/2023-05-30-exploring-imaginary-worlds.md +++ b/blog/2023/2023-05-30-exploring-imaginary-worlds.md @@ -6,25 +6,30 @@ slug: exploring-imaginary-worlds description: "Discover the link between open source and science fiction in our blog series. Join us as we delve into the imaginative worlds crafted by authors, the impact of open source on collaborative world-building, and the creative contributions of fans. Explore the convergence of fiction and technology, and uncover the transformative power of open source in shaping science fiction narratives." --- -Before coming into tech, I spent ten years teaching college English. I've also written a couple of science fiction screenplays. To say that I'm fascinated by the power of storytelling would be an understatement. It's no surprise to me that science fiction has made an impact on open source and vice versa. So every Monday for the next three weeks, I'll have a post inspired by that relationship to hopefully inspire you. +Before coming into tech, I spent ten years teaching college English. I've also written a couple of science fiction screenplays. To say that I'm fascinated by the power of storytelling would be an understatement. It's no surprise to me that science fiction has made an impact on open source and vice versa. So every Monday for the next three weeks, I'll have a post inspired by that relationship to hopefully inspire you. Science fiction has the remarkable ability to transport us to imaginary worlds filled with advanced technology, new societies, and inspiring ideas. For this post, let's take a look at some notable science fiction works embracing the concept of open source-from post-scarcity societies to virtual reality realms. ## Virtual Reality: Inspired by *Snow Crash* + Neal Stephenson's novel *Snow Crash* introduced the concept of the Metaverse, a virtual reality universe accessible to all used for gaming, work, and socializing. The Metaverse-as we might know it in real life-is a virtual world being built by a variety of companies, including Facebook, Microsoft, and Sony. This visionary idea has influenced the development of open source virtual reality platforms like [Mozilla Hubs](https://hubs.mozilla.com/). Many of the OSS projects inspired by *Snow Crash* create immersive and collaborative virtual spaces that can be explored, built upon, and customized by users. ## Artificial Intelligence: Inspired by *The Culture* + In Iain M. Banks' *Culture* series, artificial intelligence governs a post-scarcity society. The Minds, highly advanced AIs, serve as benevolent overseers, managing resources and ensuring a harmonious existence. This vision inspired open source AI projects like [TensorFlow](https://github.com/tensorflow). Many of these initiatives seek to democratize AI technology and create an accessible and positive space, like the AI-driven society in *The Culture*. ## Holographic Displays: Inspired by Star Wars + The iconic holographic displays seen in the Star Wars saga have influenced the development of open source holographic projection technologies. Projects like [Looking Glass](https://lookingglassfactory.com/) and [Holovect](https://lookingglassfactory.com/) aim to bring 3D holographic displays into our everyday lives. By leveraging OSS principles, these projects allow for collaboration and innovation. ## Voice Recognition and Virtual Assistants: Inspired by Star Trek + The voice-activated computer systems and virtual assistants seen in the Star Trek series have inspired real-life open source projects like [Mycroft AI](https://github.com/MycroftAI) and OpenAI's GPT models. These initiatives focus on creating open source voice recognition and virtual assistant technologies that can be freely accessed, modified, and integrated into various applications. The aim of these projects, like the Star Trek computer, is to create an interactive, natural, and intuitive technological experience. ## Robotics: Inspired by Isaac Asimov's Works + Isaac Asimov's science fiction stories, particularly his Robot series, introduced the concept of humanoid robots governed by the Three Laws of Robotics. These narratives have influenced open source robotic platforms like ROS (Robot Operating System) and Arduino. These projects provide a framework for developing and controlling robots, fostering growth in the robotics community. -Science fiction inspires and shapes our technological advancements. From virtual reality to artificial intelligence, holographic displays to voice recognition, and robotics to virtual assistants, science fiction has not only ignited our imagination but also motivated open source communities to bring these ideas to life. If you want to find more open source projects inspired by AI, check out OpenSauced's [Open Source AI insights](https://insights.opensauced.pizza/ai/) and check out the series. \ No newline at end of file +Science fiction inspires and shapes our technological advancements. From virtual reality to artificial intelligence, holographic displays to voice recognition, and robotics to virtual assistants, science fiction has not only ignited our imagination but also motivated open source communities to bring these ideas to life. If you want to find more open source projects inspired by AI, check out OpenSauced's [Open Source AI insights](https://insights.opensauced.pizza/ai/) and check out the series. diff --git a/blog/2023/2023-06-01-understanding-why-pull-requests-get-rejected-in-open-source-projects.md b/blog/2023/2023-06-01-understanding-why-pull-requests-get-rejected-in-open-source-projects.md index 304fa779..13a3368e 100644 --- a/blog/2023/2023-06-01-understanding-why-pull-requests-get-rejected-in-open-source-projects.md +++ b/blog/2023/2023-06-01-understanding-why-pull-requests-get-rejected-in-open-source-projects.md @@ -11,21 +11,27 @@ One of the reasons I love open source is because of the collaboration, community ## Misalignment with Project Goals + I like to think of open source projects like a puzzle. Pull requests that are out of sync with the project's objectives are like a misplaced puzzle. Each pull request should contribute meaningfully to the larger picture the project is trying to achieve. Make sure you take the time to understand the project's scope, roadmap, and guidelines, so your changes fit into the project's vision. ## Lack of Code Quality + Sometimes our code isn't strong enough to be merged in. Think of it like a foundation of a building. You want quality materials, and strong craftsmanship to ensure the strength of the building. Code that doesn't follow established conventions, lacks proper documentation, or contains bugs can undermine the stability and maintainability of the project. To build a solid structure write clean, readable code, adhere to coding standards, and provide comprehensive documentation if necessary. ## Insufficient Testing + Often, projects require passing tests before a PR can be merged in. Submitting a pull request without testing is like releasing a product without quality control checks. Testing ensures the reliability of your changes and helps identify and prevent potential issues. Think of testing as stress-testing your contribution to guarantee it can hold up to real-world scenarios. ## Poor Communication + Communication holds open source projects together. Submitting a pull request without a clear description or failing to address reviewer feedback is like sending a letter without an address or not responding to an email. Your ability to communicate demonstrates whether or not you'd be a good teammate, repeat contributor, or community member. Some tips for maintaining positive community include: provide context for your changes, respond to comments constructively, and demonstrate your willingness to collaborate effectively. ## Violation of Licensing or Legal Issues + Including code that violates licensing restrictions or raises legal concerns in your pull request will result in an automatic rejection. Although I haven't personally seen this happen, it's worth noting and emphasizing the importance of respecting the project's chosen license and any legal requirements. ## Duplicate PRs or Outdated Changes + This is one of the most common reasons I've seen issues or PRs rejected. Before creating a PR, ask to be assigned an issue to avoid both circumstances. If you want to raise an issue, check the project's existing issues and pull requests. Stay up to date on the repository and keep your fork up-to-date with the main branch of the project. -It's ok to not have your PR merged in. It might not feel great, but it's part of the journey. And thinking of it as a learning experience that will guide your next PR or the revisions of your current PR, is an important part of that process. If you have questions about the open source journey, check out [opensauced.pizza](https://opensauced.pizza/) or check out our [Intro to Open Source course](https://github.com/open-sauced/intro) today. \ No newline at end of file +It's ok to not have your PR merged in. It might not feel great, but it's part of the journey. And thinking of it as a learning experience that will guide your next PR or the revisions of your current PR, is an important part of that process. If you have questions about the open source journey, check out [opensauced.pizza](https://opensauced.pizza/) or check out our [Intro to Open Source course](https://github.com/open-sauced/intro) today. diff --git a/blog/2023/2023-06-05-fueling-innovation-and-collaborative-storytelling.md b/blog/2023/2023-06-05-fueling-innovation-and-collaborative-storytelling.md index dbcdf2db..f718fdb0 100644 --- a/blog/2023/2023-06-05-fueling-innovation-and-collaborative-storytelling.md +++ b/blog/2023/2023-06-05-fueling-innovation-and-collaborative-storytelling.md @@ -6,23 +6,26 @@ slug: fueling-innovation-and-collaborative-storytelling description: "Explore the relationship between open source and science fiction. From bringing sci-fi gadgets to life with open source hardware to blurring the lines between fiction and interactive gaming experiences, discover how these two realms inspire and shape each other." --- -A couple of years ago, I got to see Neil Gaiman--the English author, creator, and creative genius--live. To say the experience was inspirational would be an understatement. There's something moving about hearing a person share their stories, listening to them read though. There's deeper meaning when you can see their expressions, the ways they move on the stage. You come out of the experience inspired to pursue the things you're passionate about. And it reminded me about [an interview](https://www.vox.com/2015/8/24/9196945/china-science-fiction) he gave a couple of years ago about his experience speaking about science fiction at the first-ever, state-sponsored science fiction convention. +A couple of years ago, I got to see Neil Gaiman--the English author, creator, and creative genius--live. To say the experience was inspirational would be an understatement. There's something moving about hearing a person share their stories, listening to them read though. There's deeper meaning when you can see their expressions, the ways they move on the stage. You come out of the experience inspired to pursue the things you're passionate about. And it reminded me about [an interview](https://www.vox.com/2015/8/24/9196945/china-science-fiction) he gave a couple of years ago about his experience speaking about science fiction at the first-ever, state-sponsored science fiction convention. -Gaiman asked some of the organizers: "Why are you now in 2007 endorsing a science-fiction convention?" According to Gaiman, the Chinese organizer said, "that the Party had been concerned that while China historically has been a culture of magical and radical invention, right now, they weren’t inventing things." To try to find that inspiration, they'd gone to the United States and "interviewed the people at Google and Apple and Microsoft, and talked to the inventors." What they found out was that all of these inventors had read science fiction when they were young. Science fiction and open source mutually influence and shape each other, creating connections and inspiring innovation. Below you'll find some of those ways. +Gaiman asked some of the organizers: "Why are you now in 2007 endorsing a science-fiction convention?" According to Gaiman, the Chinese organizer said, "that the Party had been concerned that while China historically has been a culture of magical and radical invention, right now, they weren’t inventing things." To try to find that inspiration, they'd gone to the United States and "interviewed the people at Google and Apple and Microsoft, and talked to the inventors." What they found out was that all of these inventors had read science fiction when they were young. Science fiction and open source mutually influence and shape each other, creating connections and inspiring innovation. Below you'll find some of those ways. ## Open Source Hardware: Bringing Sci-Fi Gadgets to Life -With the advent of open source hardware platforms like [Arduino](https://www.arduino.cc/) and [Raspberry Pi](https://www.raspberrypi.org/), enthusiasts and inventors can bring these fictional devices to life. From home automation systems to wearable devices, open source hardware provides a platform for collaboration and innovation, blurring the lines between fiction and reality. For example, one group used Arduino to create a real-life version of the lightsaber from Star Wars. The lightsaber is fully functional and can be used to deflect blaster bolts and cut through objects. + +With the advent of open source hardware platforms like [Arduino](https://www.arduino.cc/) and [Raspberry Pi](https://www.raspberrypi.org/), enthusiasts and inventors can bring these fictional devices to life. From home automation systems to wearable devices, open source hardware provides a platform for collaboration and innovation, blurring the lines between fiction and reality. For example, one group used Arduino to create a real-life version of the lightsaber from Star Wars. The lightsaber is fully functional and can be used to deflect blaster bolts and cut through objects. ## Open Source Gaming: Blurring the Lines Between Fiction and Interactive Experiences -Science Fiction has introduced us to worlds we could only imagine, but open source has helped to create a space for us to explore them. Open source gaming platforms like [Unity](https://unity.com/) and [Unreal Engine](https://www.unrealengine.com/en-US) have harnessed the imagination and creativity of developers, enabling them to build captivating gaming universes. Through open source collaboration, developers can create games that transport players to extraordinary realms, blurring the boundaries between fiction and interaction. For example, Star Citizen is a space combat simulator currently in development as an OSS project. The game is being created using the Unreal Engine, and one of the most ambitious open source gaming projects ever undertaken, promising to be a truly immersive experience, with players able to explore a vast universe, pilot their own ships, and engage in combat with other players. +Science Fiction has introduced us to worlds we could only imagine, but open source has helped to create a space for us to explore them. Open source gaming platforms like [Unity](https://unity.com/) and [Unreal Engine](https://www.unrealengine.com/en-US) have harnessed the imagination and creativity of developers, enabling them to build captivating gaming universes. Through open source collaboration, developers can create games that transport players to extraordinary realms, blurring the boundaries between fiction and interaction. For example, Star Citizen is a space combat simulator currently in development as an OSS project. The game is being created using the Unreal Engine, and one of the most ambitious open source gaming projects ever undertaken, promising to be a truly immersive experience, with players able to explore a vast universe, pilot their own ships, and engage in combat with other players. ## Open Source Data Analysis: Unleashing the Power of Big Data + This might not be at the top of your list, but science fiction often presents advanced data analysis and visualization technologies. Open source data analysis tools such as Python's [Pandas]( https://pandas.pydata.org/) and R's [ggplot2](https://ggplot2.tidyverse.org/) have revolutionized the field, making complex data manipulation and visualization accessible to all. In the science fiction novel *The Martian*, astronaut Mark Watney uses a variety of data analysis and visualization tools to survive on Mars. He uses Python's Pandas to clean and organize data, and he uses R's ggplot2 to create visualizations of his data. These tools allow him to make sense of the vast amounts of data and help him to make critical decisions about his survival. ## Open Source Soundscapes: Transforming Imaginary Soundtracks into Reality + Music and sound provide depth and development to science fiction worlds. Open source music production software like [Ardour](https://ardour.org/) and LMMS provide aspiring composers and sound designers with professional-grade tools to create atmospheric and futuristic soundscapes. The TV show The Expanse uses open source soundscaping tools to create realistic soundscapes of space travel. The soundscape helps to immerse the viewer in the world of the show, and it helps to make the space battles feel more real. -The closer science fiction comes to open source, the more opportunities we have to contribute to the new realities that are created. I don't know about you, but that sounds exciting to me. If you want to be inspired by open source projects, check out [OpenSauced's insights](https://insights.opensauced.pizza/) and check back next week for the last post in the series. \ No newline at end of file +The closer science fiction comes to open source, the more opportunities we have to contribute to the new realities that are created. I don't know about you, but that sounds exciting to me. If you want to be inspired by open source projects, check out [OpenSauced's insights](https://insights.opensauced.pizza/) and check back next week for the last post in the series. diff --git a/blog/2023/2023-06-12-from-inspiration-to-impact.md b/blog/2023/2023-06-12-from-inspiration-to-impact.md index ed434237..bbde94fd 100644 --- a/blog/2023/2023-06-12-from-inspiration-to-impact.md +++ b/blog/2023/2023-06-12-from-inspiration-to-impact.md @@ -12,7 +12,7 @@ Welcome back to our final post in this series about Open Source in Science Ficti ## Collaborative World-Building: Transforming the Science Fiction Landscape -Science fiction has long been a genre of creativity, with authors crafting intricate worlds and universes. But in many cases, it's been a solitary experience. If we apply open source principles, we can open up new worlds together. +Science fiction has long been a genre of creativity, with authors crafting intricate worlds and universes. But in many cases, it's been a solitary experience. If we apply open source principles, we can open up new worlds together. Collaborative platforms like [World Anvil](https://www.worldanvil.com/) allow writers and contributors to collaborate to build shared universes. These platforms allow for crowd-sourced contributions, where writers, artists, and fans collaborate to develop detailed mythologies, create expansive maps, and flesh out the intricate histories of their fictional worlds. Open source storytelling tools like [Twine](https://twinery.org/) provide accessible platforms for interactive storytelling, enabling anyone to contribute to the narrative tapestry. Through open source world-building, science fiction has become a collective endeavor, resulting in richer and more immersive fictional universes. @@ -29,4 +29,3 @@ With the fast-paced technology landscape, we need to be continually mindful abou How do creators navigate the fine line between encouraging fan participation and protecting their original work? Open source fan fiction often operates in a legal gray area, and it is essential for creators and fans to respect the boundaries set by copyright laws while finding ways to embrace collaboration. My past experience as a college English teacher collided with my life in tech for this series, and I couldn't be more excited to see the continued collisions between open source and science fiction in the future. If you're ready to start your own journey into open source and make an impact, get started with [OpenSauced](https://insights.opensauced.pizza/) today. - diff --git a/blog/2023/2023-06-14-how-to-start-an-open-source-project-with-vs-code.md b/blog/2023/2023-06-14-how-to-start-an-open-source-project-with-vs-code.md index bd3b2550..b7f62798 100644 --- a/blog/2023/2023-06-14-how-to-start-an-open-source-project-with-vs-code.md +++ b/blog/2023/2023-06-14-how-to-start-an-open-source-project-with-vs-code.md @@ -6,7 +6,7 @@ slug: how-to-start-an-open-source-project-with-vs-code description: "Learn how to start an open source projects using Visual Studio Code (VS Code). This step-by-step guide covers setting up your development environment, creating a new repository on GitHub, cloning it to your local machine, making commits, and pushing changes. Start your open source journey with VS Code today!" --- -The first time I pair programmed was with one of the founders of the bootcamp I attended. I was super nervous. We talked through some concepts I was working on, and he asked me to open up an editor. *Ok, side note, I had spent the previous years teaching college English. When someone said “editor,” I assumed a text editor.* I opened up google docs. It wasn’t until he said something like, “Do you have notepad or something else that we can use?” that I realized he was talking about a *code* editor. I think I was using the now-sunsetted Integrated Development Environment (IDE) Atom, but since then, I’ve been using Visual Studio Code (VS Code), which we’re going to be talking about in this blog post, as a way to get started with creating an open source repository. +The first time I pair programmed was with one of the founders of the bootcamp I attended. I was super nervous. We talked through some concepts I was working on, and he asked me to open up an editor. *Ok, side note, I had spent the previous years teaching college English. When someone said “editor,” I assumed a text editor.* I opened up google docs. It wasn’t until he said something like, “Do you have notepad or something else that we can use?” that I realized he was talking about a *code* editor. I think I was using the now-sunsetted Integrated Development Environment (IDE) Atom, but since then, I’ve been using Visual Studio Code (VS Code), which we’re going to be talking about in this blog post, as a way to get started with creating an open source repository. @@ -23,6 +23,7 @@ To get started, make sure you have the following installed: - A [GitHub](https://github.com/) account ## Step 2: Creating a New Repository on GitHub + *Fun fact, the first repository I created is `https://github.com/BekahHW/Portfolio`, an html and css project that never went live, but was the start of what would eventually become bekahhw.com.* 1. To create your repository, go to [GitHub.com](https://github.com/) and sign in to your account. @@ -31,19 +32,18 @@ To get started, make sure you have the following installed: 4. Select the "Public" checkbox if you want your repository to be visible to everyone. 5. Click the "Create Repository" button. - ![gif of the steps to create a repo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0w4ifmhawoihtlplc22f.gif) - ## Step 3: Cloning the Repository to Your Local Machine 1. Open a terminal window. -2. Navigate to the directory where you want to clone your repository. In this case, I like all of my repositories to be in my Projects folder, so I’ll need to cd into that folder. +2. Navigate to the directory where you want to clone your repository. In this case, I like all of my repositories to be in my Projects folder, so I’ll need to cd into that folder. 3. Run the following command: ``` git clone https://github.com/[your-username]/[your-repository-name].git ``` + ![gif of cloning the repo](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9bhmie2a3uzyz81glwnw.gif) ## Step 4: Opening the Repository in VS Code @@ -54,13 +54,14 @@ To get started, make sure you have the following installed: 4. Click the "Open" button. ## Step 5: Making Changes to the Repo & Pushing them to GitHub + *Personally, I like to use the built-in terminal for VS Code, but that’s not a requirement. If you’d like to use the built-in terminal, select the terminal tab and new terminal.* ![New Terminal command](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u84gl3oe0s486s9wniot.png) 1. If you haven’t initialized your project with a `README.md` file, go ahead and create a new file called `README.md`. Then, in the VS Code terminal, type `git add .` and hit Enter to add the file. -> A README.md file is a Markdown file that typically contains documentation about a software project, such as its purpose, installation instructions, contact and contribution information, and usage examples. Markdown is a lightweight markup language that is often thought of as easier to read and write. +> A README.md file is a Markdown file that typically contains documentation about a software project, such as its purpose, installation instructions, contact and contribution information, and usage examples. Markdown is a lightweight markup language that is often thought of as easier to read and write. 2. Within that file write “Hello World!” and then save your changes. 3. In the VS Code terminal, type in your commit message preceded by your git commit command: @@ -75,7 +76,7 @@ You’ve now committed the changes locally, but we still want to get them to our 5. In the VS Code terminal, type `git push` and hit “Enter.” -Now if you navigate to your GitHub repository, you should see those changes! +Now if you navigate to your GitHub repository, you should see those changes! If you want to check out the video version of this post, you can find it below: @@ -83,4 +84,4 @@ If you want to check out the video version of this post, you can find it below: This video is part of our [Intro to Open Source course](https://github.com/open-sauced/intro) that takes you through the process of contributing to open source to making your first contribution! -It’s worth mentioning that learning new terminology can be tricky. If you’d like an overview of terminology, check out [Open Source Terminology 101: A Primer for New Contributors](https://dev.to/opensauced/open-source-terminology-101-a-primer-for-new-contributors-k46). And if there’s terminology you think should be added, open an issue or a PR for our [course glossary](https://github.com/open-sauced/intro/blob/main/09-glossary.md). Are you a VS Code user? What are your favorite features or packages? Let us know in the comments below! \ No newline at end of file +It’s worth mentioning that learning new terminology can be tricky. If you’d like an overview of terminology, check out [Open Source Terminology 101: A Primer for New Contributors](https://dev.to/opensauced/open-source-terminology-101-a-primer-for-new-contributors-k46). And if there’s terminology you think should be added, open an issue or a PR for our [course glossary](https://github.com/open-sauced/intro/blob/main/09-glossary.md). Are you a VS Code user? What are your favorite features or packages? Let us know in the comments below! diff --git a/blog/2023/2023-06-21-open-source-101-a-beginners-guide-to-getting-started.md b/blog/2023/2023-06-21-open-source-101-a-beginners-guide-to-getting-started.md index 3afd4ed4..a4af443e 100644 --- a/blog/2023/2023-06-21-open-source-101-a-beginners-guide-to-getting-started.md +++ b/blog/2023/2023-06-21-open-source-101-a-beginners-guide-to-getting-started.md @@ -6,17 +6,18 @@ slug: open-source-101-a-beginners-guide-to-getting-started description: " Learn the fundamentals of open source development, from choosing projects to making contributions, in this comprehensive beginner's guide. Support open source innovation with OpenSauced.pizza." --- -The story of open source is a story about community. It’s about people coming together, learning from each other, growing together, and creating, of bringing their talents and perspectives to build something great. It’s a story of what humanity can do when we work together. I don’t know what Linus Torvalds thought when he created the Linux operating system and released it to the public for free in the early 1990s, but I’m sure it was about doing things differently. +The story of open source is a story about community. It’s about people coming together, learning from each other, growing together, and creating, of bringing their talents and perspectives to build something great. It’s a story of what humanity can do when we work together. I don’t know what Linus Torvalds thought when he created the Linux operating system and released it to the public for free in the early 1990s, but I’m sure it was about doing things differently. -At the time, most operating systems were proprietary software, and users had to pay for them. Linux was different. It was open source software, which meant that the source code was freely available for anyone to use, modify, and distribute. The story of open source is one of innovation, collaboration, and community. And it’s a story that invites you and me into it every day. +At the time, most operating systems were proprietary software, and users had to pay for them. Linux was different. It was open source software, which meant that the source code was freely available for anyone to use, modify, and distribute. The story of open source is one of innovation, collaboration, and community. And it’s a story that invites you and me into it every day. > The term open source was originated by Christine Peterson. You can read about that [here](https://opensource.com/article/18/2/coining-term-open-source-software). In this beginner's guide, we'll explore the fundamentals of open source development, including project selection and meaningful contributions–how we can be part of the story. And if you’re ready to start on your open source journey or to share your work in open source, sign up for [OpenSauced.pizza](https://insights.opensauced.pizza/)! ## Benefits to Contributing to Open Source + My favorite benefit of contributing to Open Source is meeting new people and being a part of new communities. The long-term benefits I’ve had because of those relationships have been incredibly rewarding. But that’s not the only reason to contribute. Here are a few more reasons: - Learn new skills: Open source projects are a great way to learn new programming skills. You can learn from the code of other developers, and you can get feedback on your own code from the community. @@ -29,90 +30,94 @@ My favorite benefit of contributing to Open Source is meeting new people and bei You can check out more reasons in [Beyond Content Creation: How Open Source Contributions Can Help You Get Noticed](https://dev.to/opensauced/beyond-content-creation-how-open-source-contributions-can-help-you-get-noticed-4l5n). - ## Getting Started with Open Source + There are a lot of things to consider when you’re trying to get started. If you need help understand the terminology, start with this post: [Open Source Terminology 101: A Primer for New Contributors](https://dev.to/opensauced/open-source-terminology-101-a-primer-for-new-contributors-k46 ). Once you’re familiar with the terminology, you need to find the right project. Check out [Choose Your Own Adventure in Open Source: Paths to Success](https://dev.to/opensauced/choose-your-own-adventure-in-open-source-paths-to-success-167p) to explore different reasons for getting involved in open source projects to help you figure out where to get started. Some other considerations when you’re getting started, include: -Find an active project. If a repository hasn’t been updated in a while and the maintainers aren’t responding to issues, discussions, or comments, that’s a sign that the project isn’t active. +Find an active project. If a repository hasn’t been updated in a while and the maintainers aren’t responding to issues, discussions, or comments, that’s a sign that the project isn’t active. If you look at their repository, you should be able to see when the last PR was merged in. ![last contribution](https://cdn.sanity.io/images/r7m53vrk/production/1d580ab74f4ed7a48391532dd480022dff1507cc-591x62.png?w=450) - - Talk to people who are contributing to open source. The best introduction to a new project is often a personal one. Ask people in tech communities you’re a part of, or go to [OpenSauced Insights](https://insights.opensauced.pizza), and check out the [list of contributors](https://insights.opensauced.pizza/javascript/contributors/filter/recent) for the technology you’re interested in and reach out to them to learn more about their experiences contributing to the projects they’re a part of. -- Find a project that has beginner-friendly issues. Projects with "good first issues" or "beginner-friendly" labels are often good for beginners. +- Find a project that has beginner-friendly issues. Projects with "good first issues" or "beginner-friendly" labels are often good for beginners. ![good first image](https://cdn.sanity.io/images/r7m53vrk/production/23ddbe0889ac541dc4f475e8cef280f82e78bb6b-613x145.png?w=450) - If there aren’t any labels for beginners, don’t forget that the [best first issue is the one that you write yourself](https://opensauced.pizza/blog/good-first-issues-dont-exist). - Read the project documentation. Once you’ve found a project that you want to contribute to, it’s important to read the project documentation. This will help you understand the project's goals, its codebase, and its coding standards. Always read through the README and CONTRIBUTING guides. Not only can you get a better understanding of the project, but the expectations for how to contribute should be explained and clear. - + > **Check out [OpenSauced Community Health Files](https://github.com/open-sauced/.github/tree/main).** - Engage with the Community. Join the project’s communication channels, like Slack or Discord, [discussion forum](https://github.com/orgs/open-sauced/discussions), or their blog, and introduce yourself. Ask questions and express your interest in contributing. Becoming a part of the community will expand your connections, help you to gain insights into ongoing discussions and development timelines, and may be an opportunity for mentorship from experienced contributors. - Start small. Look for issues that are small and easy to fix. As you gain experience, you can start working on larger issues or taking on more responsibility. Don’t be afraid to ask for help or to let the maintainers know if you’ve taken on an issue that you can’t complete. It’s all part of the process. - Be patient. It takes time to learn how to contribute to an open source project. Don't get discouraged if you don't get everything right the first time. Just keep learning and practicing, and you'll eventually get the hang of it. - ## Community Collaboration + Being part of an open source project is being part of a community. They are there to support and help you within their capacity. Here are some tips to get the most out of the community experience. - Review the Code of Conduct (COC)–or if they don’t have one, create an issue asking for one. The COC is there to keep the community safe and supported and it’s essential to understand what that means in the context of your community. -- Ask for help. If you’re stuck, not sure what to do or how to communicate, ask a question. **Be specific about the issue you're facing and the steps you've already taken to address it.** +- Ask for help. If you’re stuck, not sure what to do or how to communicate, ask a question. **Be specific about the issue you're facing and the steps you've already taken to address it.** - Offer Support and Assistance. It doesn’t matter how much experience you have, there’s always someone a step behind you that you can help, and recognizing that you can help others at all stages by providing your support and unique insight can help strengthen the community and foster a positive environment for learning and growth. Actively participate in discussions, share insights, and contribute to the project and community. -- Code reviews are an important part of the open source contribution process. Embrace code reviews as opportunities for growth and improvement, and respect the feedback and suggestions provided by reviewers and project maintainers, even if they challenge your initial approach. Incorporate the feedback gracefully, and strive to understand the concerns raised. - +- Code reviews are an important part of the open source contribution process. Embrace code reviews as opportunities for growth and improvement, and respect the feedback and suggestions provided by reviewers and project maintainers, even if they challenge your initial approach. Incorporate the feedback gracefully, and strive to understand the concerns raised. ## Documentation and Technical Writing + Contributing to documentation is an impactful way to support an open source project. Some ways to do this include: - Identify areas where documentation can be improved, like missing or outdated information, unclear instructions, or incomplete explanations. Improving the documentation makes it easier for new contributors to understand and contribute to the project, which leads to a more inclusive and welcoming environment. -- Document your changes clearly and concisely. Explain any code modifications, including considerations. Clear documentation helps future developers understand and maintain the codebase effectively. +- Document your changes clearly and concisely. Explain any code modifications, including considerations. Clear documentation helps future developers understand and maintain the codebase effectively. - Creating guides or tutorials is another way to contribute. Share your knowledge and expertise by creating or improving user guides, tutorials, or other educational materials. Having resources helps to effectively onboard new users and empower them to make the most of the project's capabilities. ## Contributing Beyond Code + You don’t have to know how to code to contribute to open source. [Non-code contributions]( https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5) can have a huge impact. Here are some other ways to contribute: -- **Project management**: organize issues, create project roadmaps, or coordinate releases. -- **Translations**:Many projects need translations to make the project accessible to a wider audience. +- **Project management**: organize issues, create project roadmaps, or coordinate releases. +- **Translations**:Many projects need translations to make the project accessible to a wider audience. - **Triaging**: Helping with bug triaging or participating in forums supports the community. You can address user-reported issues, reproduce bugs, or offer help. This improves the project's stability and the user experience. - **Promotion**: Actively sharing the project helps raise awareness and attract more contributors and users. Sharing your positive experiences with the project, writing blog posts or articles about it, or speaking at conferences or meetups about it, helps its growth and impact. ## Dealing with Challenges and Learning Opportunities + Imposter syndrome and self-doubt can affect anyone, especially when you’re starting out. It's normal to feel uncertain. Everyone’s journey will look different. It’s important to surround yourself with supportive community members, seek encouragement, and remember that this is a learning journey–there will be growing pains. Part of this journey means that you’ll receive feedback and constructive criticism. These are opportunities to grow. Listen, understand the perspectives of others, and use feedback to grow as a contributor. -Embrace collaboration as an opportunity to learn from others, share ideas, and build meaningful relationships. +Embrace collaboration as an opportunity to learn from others, share ideas, and build meaningful relationships. ## Learning the Basics of Contributing + As you progress, it’s important to learn the basics as you begin your open source journey. Here are some key concepts to understand. ### Version Control System + Version control systems (VCS) are tools that help developers manage changes to source code and other files in a collaborative development environment. This means that multiple people can work on the same codebase simultaneously while keeping track of changes, facilitating collaboration, and providing a history of modifications made over time. Git is one of the most widely used VCS, allowing for capabilities like forking, cloning, and pulling. You can check out the [official documentation for Git](https://git-scm.com/doc) for more information. ### Coding Techniques + Every project will have its own strategies for writing efficient, maintainable, and high-quality code. Some of those considerations include: - **Code Organization**: How the code is structured will impact readability and maintainability. To learn more about how these decisions are made, look into concepts like modularization, separation of concerns, and design patterns. -- **Code Readability**: Writing code that’s easy to understand helps in collaboration and reduces the likelihood of bugs. Ways to do that include using descriptive variable names, writing clear comments, and consistent formatting. -- **Performance Optimization**: Writing efficient code can improve the speed and resource usage. Ways to improve performancing include: algorithm optimizations, data structure choices, caching, and profiling. +- **Code Readability**: Writing code that’s easy to understand helps in collaboration and reduces the likelihood of bugs. Ways to do that include using descriptive variable names, writing clear comments, and consistent formatting. +- **Performance Optimization**: Writing efficient code can improve the speed and resource usage. Ways to improve performancing include: algorithm optimizations, data structure choices, caching, and profiling. - **Error Handling**: When we ship software, it’s important to think about how to handle errors. What happens when an error occurs? -- **Code Testing**: Each project will have different approaches and use different software for writing tests. They might implement unit testing, integration testing, and test-driven development (TDD) or other methods or combinations of methods to ensure they’re shipping reliable code. +- **Code Testing**: Each project will have different approaches and use different software for writing tests. They might implement unit testing, integration testing, and test-driven development (TDD) or other methods or combinations of methods to ensure they’re shipping reliable code. ### Project Contribution Workflows -Because open source projects have maintainers and contributors collaborating to create, it’s important that there are processes that help to ensure a positive experience working together, ensure code quality, and maintain a healthy codebase. As part of this, there are some workflows implemented, including: + +Because open source projects have maintainers and contributors collaborating to create, it’s important that there are processes that help to ensure a positive experience working together, ensure code quality, and maintain a healthy codebase. As part of this, there are some workflows implemented, including: - **Code Versioning and Collaboration**: We talked about this above with Version Control Systems. It’s important to learn how to clone repositories, create branches, commit changes, and push code as well as understand collaboration workflows like forking, branching, and pull requests. I highly recommend creating your own projects for practicing, and even better, bring in a friend who’s new to coding and practice together! For more information on how to do this, check out our Intro to Open Source section on [How to submit a contribution](https://github.com/open-sauced/intro/blob/main/05-how-to-contribute-to-open-source.md) -- **Issue Tracking**: Issues are used to report bugs, suggest features, or discuss improvements. Understand how the project you’re working on uses issues, labeling, and prioritization. You can check out how we handle issues in our [Insights repository](https://github.com/open-sauced/insights/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc). +- **Issue Tracking**: Issues are used to report bugs, suggest features, or discuss improvements. Understand how the project you’re working on uses issues, labeling, and prioritization. You can check out how we handle issues in our [Insights repository](https://github.com/open-sauced/insights/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc). - **Communication**: Take some time to explore how the project communicates. Are they using discussion boards or async communication platforms like Slack or Discord? - **Contributing**: Before contributing, review the project's guidelines and standards. Be prepared to update your Pull Request (PR) based on feedback and work collaboratively with other contributors. There’s a lot that happens after your PR is submitted. So much so, that I wrote [“What happens after you submit a PR to an Open Source Project?”](https://dev.to/opensauced/what-happens-after-you-submit-a-pr-to-an-open-source-project-4ed1). There can be a lot of reasons why a PR isn’t accepted. You can find out more about that [here](https://dev.to/opensauced/understanding-why-pull-requests-get-rejected-in-open-source-projects-1jd0). - ### First Time Contributor Resources + For more resources on getting started, check out the following: - [Git documentation](https://git-scm.com/doc) @@ -122,4 +127,4 @@ For more resources on getting started, check out the following: - [How to Start an Open Source Project with VS Code](https://dev.to/opensauced/how-to-start-an-open-source-project-with-vs-code-4106) - [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9). -Contributing to open source is an opportunity to learn new skills, connect with other contributors, and to make a positive impact. Keep in mind that maintainers are human beings who work hard to keep projects going. Always be respectful, patient, and kind. Hopefully, this guide is helpful on your open source journey. If you have any questions, let us know! We look forward to [seeing your highlight on OpenSauced](https://insights.opensauced.pizza/feed) soon. \ No newline at end of file +Contributing to open source is an opportunity to learn new skills, connect with other contributors, and to make a positive impact. Keep in mind that maintainers are human beings who work hard to keep projects going. Always be respectful, patient, and kind. Hopefully, this guide is helpful on your open source journey. If you have any questions, let us know! We look forward to [seeing your highlight on OpenSauced](https://insights.opensauced.pizza/feed) soon. diff --git a/blog/2023/2023-06-26-building-your-devrel-resume-with-open-source.md b/blog/2023/2023-06-26-building-your-devrel-resume-with-open-source.md index 65818efd..0c054d46 100644 --- a/blog/2023/2023-06-26-building-your-devrel-resume-with-open-source.md +++ b/blog/2023/2023-06-26-building-your-devrel-resume-with-open-source.md @@ -6,23 +6,25 @@ slug: building-your-devrel-resume-with-open-source-4km3 description: "Want to enhance your developer relations (DevRel) resume? Discover the power of open source and learn how to leverage it to showcase your skills, experience, and contributions in this informative blog post." --- -One of the questions I’ve heard quite a few times since starting at OpenSauced a couple of months ago is “How can I use open source to get into DevRel?” The answer is one word: Contribute. Contribute to docs, contribute to code, contribute to the community. Contribute by writing, contribute by creating content, contribute by sharing. To be in Developer Relations, your journey will require technical expertise, communication skills, community-building skills, and, most importantly, empathy. In my [last post](https://dev.to/opensauced/devrel-and-open-source-a-powerful-combination-3ldp), I talked about the overlap of DevRel and Open Source. In this post, I’ll get more personal to help you create a plan to use open source to support your journey on the DevRel path. +One of the questions I’ve heard quite a few times since starting at OpenSauced a couple of months ago is “How can I use open source to get into DevRel?” The answer is one word: Contribute. Contribute to docs, contribute to code, contribute to the community. Contribute by writing, contribute by creating content, contribute by sharing. To be in Developer Relations, your journey will require technical expertise, communication skills, community-building skills, and, most importantly, empathy. In my [last post](https://dev.to/opensauced/devrel-and-open-source-a-powerful-combination-3ldp), I talked about the overlap of DevRel and Open Source. In this post, I’ll get more personal to help you create a plan to use open source to support your journey on the DevRel path. > **Resources to Learn More about the Different Types of DevRel** +> > - [Measuring Developer Relations](https://www.swyx.io/measuring-devrel) > - [What you need to know to get hired in DevRel](https://youtu.be/3X-EUEOg638) > - [What is DevRel?](https://www.tessakriesel.com/what-is-devrel/) - Everyone’s path into DevRel is different. And there are a lot of different flavors of DevRel. That’s important to keep in mind as we go through this journey. Yours won’t look the same as someone else’s. But in all of the journeys, there will be some commonalities. ## Listen to Contributors + One of the most important skills you need in Developer Relations is the ability to listen, hear what other people are saying, and respond to that feedback. Because so much of open source requires a need for community, it’s a perfect opportunity to work on your listening skills. Listen to what people in the community are saying. Where are the commonalities? What can you take away from those conversations? Listen to the feedback community members are giving. How do the maintainers respond? How does the tone impact the way the information is received? How does listening impact the health of the community? What conclusions can you make from your experience? By actively listening, you can gain valuable insights, identify common patterns, and draw meaningful conclusions from your experiences. ## Showcase Your Skills -Open source projects provide a public way to showcase your technical skills and expertise. By actively contributing to a project, you not only demonstrate your coding or technical abilities but also how you interact and collaborate with the developer community. Actively contribute to projects, highlighting your coding expertise, problem-solving capabilities, and community interaction. When listing open source contributions on your resume, make sure to provide details of the projects, the role you played, and any significant impact your contributions had. + +Open source projects provide a public way to showcase your technical skills and expertise. By actively contributing to a project, you not only demonstrate your coding or technical abilities but also how you interact and collaborate with the developer community. Actively contribute to projects, highlighting your coding expertise, problem-solving capabilities, and community interaction. When listing open source contributions on your resume, make sure to provide details of the projects, the role you played, and any significant impact your contributions had. > A great way to showcase your skills is to add it to [OpenSauced's Highlight Feed](https://insights.opensauced.pizza/feed) and then share it to social media! @@ -31,23 +33,29 @@ Communication is an important part of DevRel. Although your code and other contr > Pro Tip: emphasize your effective communication throughout the process, demonstrating your ability to understand and respect others' perspectives as well. ## Gain Practical Experience + Open source projects offer a unique opportunity to gain practical experience and enhance your understanding of real-world development processes and to work with diverse teams, communicate with different audiences, collaborate on code reviews, and follow best practices—all valuable skills that you don’t get by working on your own projects. Remember, this is a hands-on learning experience. ## Networking and Collaboration + The open source community provides networking opportunities, allowing you to connect with other contributors, industry experts, and potential employers. Being able to collaborate with so many different developers allows you to gain a depth of experience that’s nearly impossible outside of open source. As you collaborate, you’re building in public, and sharing the process you take to solve complex problems. It also provides you with the opportunity to receive feedback or mentorship from experienced contributors or maintainers. All of these collaborative open source experiences demonstrate your ability to work effectively within a team and learn from others. ## Building a Portfolio -In the realm of DevRel, having a portfolio of your work is crucial. Open source projects can serve as a source of content for your portfolio, showcasing your coding skills, problem-solving abilities, and community involvement. After you’ve contributed to a project consider using that as content to develop to share with an audience who wants to learn more about the project. For example, [@Ahmed](https://dev.to/deadreyo) worked on a feature for OpenSauced and then wrote a blog post called [Personalized Social Images: Enhancing User Profiles with Opengraph](https://dev.to/opensauced/personalized-social-images-enhancing-user-profiles-with-opengraph-1iio) about how he did that. Other options would be to record a video about the process, write a talk about the experience, create a presentation, or any other option for engaging with an audience. The point is, teaching an audience through content is a key skill for Developer Advocates. If you’re not ready to create a larger piece of content, start by [creating a highlight](https://insights.opensauced.pizza/feed) to share with others or use the highlight to share your larger creations. -Describe your contributions, and link to the repositories, pull requests, or documentation you worked on. This not only adds credibility but also allows potential employers to see what you’ve done firsthand. +In the realm of DevRel, having a portfolio of your work is crucial. Open source projects can serve as a source of content for your portfolio, showcasing your coding skills, problem-solving abilities, and community involvement. After you’ve contributed to a project consider using that as content to develop to share with an audience who wants to learn more about the project. For example, [@Ahmed](https://dev.to/deadreyo) worked on a feature for OpenSauced and then wrote a blog post called [Personalized Social Images: Enhancing User Profiles with Opengraph](https://dev.to/opensauced/personalized-social-images-enhancing-user-profiles-with-opengraph-1iio) about how he did that. Other options would be to record a video about the process, write a talk about the experience, create a presentation, or any other option for engaging with an audience. The point is, teaching an audience through content is a key skill for Developer Advocates. If you’re not ready to create a larger piece of content, start by [creating a highlight](https://insights.opensauced.pizza/feed) to share with others or use the highlight to share your larger creations. -## Organize an Open Source Event -Talk to a maintainer and see if you can help organize open source events, hackathons, or initiatives that bring contributors together. This could be as simple as a coffee chat or a more in-depth meetup, a workshop, or a virtual event. Organizing events, showcases your leadership, community-building skills, and passion for connecting code and community. +Describe your contributions, and link to the repositories, pull requests, or documentation you worked on. This not only adds credibility but also allows potential employers to see what you’ve done firsthand. + +## Organize an Open Source Event + +Talk to a maintainer and see if you can help organize open source events, hackathons, or initiatives that bring contributors together. This could be as simple as a coffee chat or a more in-depth meetup, a workshop, or a virtual event. Organizing events, showcases your leadership, community-building skills, and passion for connecting code and community. ## Create and Maintain Your Own Open Source Projects + Starting your own open source projects is another great way to demonstrate your initiative, leadership, and problem-solving abilities. It also gives you the opportunity to showcase your communication skills, organizational management, and support of contributors. ## Practical Application Storytime + Meet Alex, a passionate software developer who enjoys creating innovative apps. As Alex grew in their first role as a developer, they discovered they loved sharing what they learned about in tech, especially when they're able to build a project. With this realization, they started considering becoming a Developer Advocate to blend their technical expertise with their love for public speaking. So Alex comes up with a game plan to make this career shift. They start looking at how to showcase their foundation, practical skills, and portfolio. Because they were pretty limited in their day-to-day job, they decided that utilizing open source projects would be a great path for inspiration and growth. @@ -64,4 +72,4 @@ As part of this journey, Alex's portfolio grew with demos built on open source t When Alex stepped on stage, they shared their experiences, insights, and practical solutions derived from their open source journey. They inspired developers with their experience and shared the value of community collaboration. Alex's portfolio reflected a strong candidate for a DevRel role. -Each of our journeys will be different. They'll have different focuses, they'll be different lengths of time, and we'll learn and grow in different ways. What's important to remember is that the opportunities are out there. Sometimes, you'll find them on your own. Sometimes, you'll need to ask for help. Sometimes, you'll create them yourself. And if you want help, we're always here to support you in your open source journey. \ No newline at end of file +Each of our journeys will be different. They'll have different focuses, they'll be different lengths of time, and we'll learn and grow in different ways. What's important to remember is that the opportunities are out there. Sometimes, you'll find them on your own. Sometimes, you'll need to ask for help. Sometimes, you'll create them yourself. And if you want help, we're always here to support you in your open source journey. diff --git a/blog/2023/2023-07-03-devex-and-oss--elevating-developer-experience-through-open-source-collaboration.md b/blog/2023/2023-07-03-devex-and-oss--elevating-developer-experience-through-open-source-collaboration.md index 07b7d868..0dc78ad3 100644 --- a/blog/2023/2023-07-03-devex-and-oss--elevating-developer-experience-through-open-source-collaboration.md +++ b/blog/2023/2023-07-03-devex-and-oss--elevating-developer-experience-through-open-source-collaboration.md @@ -9,28 +9,32 @@ description: "Explore the overlap of Developer Experience (DevEx) and Open Sourc In my last role, I focused on the community side of developer relations. Part of that included creating open source projects to help onboard new developers and to create opportunities for community members to interact. When I started at [OpenSauced](https://opensauced.pizza/) as a Developer Experience Lead, there wasn’t a huge jump from community to developer experience. In fact, I wrote a little more about it in [this LinkedIn post](https://www.linkedin.com/posts/bekah-hawrot-weigel_developerexperience-communityexperience-tech-activity-7064691900682801153-w_g2?utm_source=share&utm_medium=member_desktop) if you’re interested. The overlapping goals of Developer Experience, Community, and Open Source to empower community members, have a growth mindset, and believe in collaboration culminate into the potential to be part of something incredible. In this final blog post in our series, we'll explore how DevEx and OSS combine forces to elevate developer experience, enabling developers to work more efficiently, collaborate effectively, and create great open source projects. -> **Developer Experience (DevEx)** focuses on improving the developer journey and their experience using a particular technology or platform. Part of this can include providing strong documentation and tutorials and creating tools and resources that make it easier to develop and debug code. +> **Developer Experience (DevEx)** focuses on improving the developer journey and their experience using a particular technology or platform. Part of this can include providing strong documentation and tutorials and creating tools and resources that make it easier to develop and debug code. ## Empowering DevEx with Robust Tooling + Open source projects often offer a wide range of tools and frameworks that enhance the developer experience. These tools are often built and maintained by a core group of maintainers along with the support of the community, providing opportunities for developers and contributors to leverage their expertise, grow in their skills, and make meaningful progress. By embracing open source tooling, DevEx teams can provide developers with powerful, flexible, and customizable solutions, tailored to their specific needs. ### Examples of popular OSS tools - So what are we talking about when we say tooling? Glad you asked! Development environments, code editors, package managers, testing frameworks, and deployment automation. These kinds of tools help streamline development workflows and promote consistency, productivity, and efficiency. + + So what are we talking about when we say tooling? Glad you asked! Development environments, code editors, package managers, testing frameworks, and deployment automation. These kinds of tools help streamline development workflows and promote consistency, productivity, and efficiency. If you want to learn more about using Git and VS Code Editor, you can check out my blog post [How to Start an Open Source Project with VS Code](https://dev.to/opensauced/how-to-start-an-open-source-project-with-vs-code-4106). ## Fostering Collaboration through Open Source + Collaboration is the heart of both DevEx and open source. Open source projects thrive on the power of collaboration, with developers from around the world contributing to improve the software that we use everyday. DevEx teams can leverage this collaboration to nurture community, encourage knowledge sharing, and drive innovation. -By actively participating in open source projects, DevEx teams can engage with developers, provide guidance, gather valuable feedback, and learn how other teams create a great developer experience. By contributing code, offering support, and facilitating discussions around best practices, they can develop their understanding of what the developer community wants and needs and the best practices for communicating with them. +By actively participating in open source projects, DevEx teams can engage with developers, provide guidance, gather valuable feedback, and learn how other teams create a great developer experience. By contributing code, offering support, and facilitating discussions around best practices, they can develop their understanding of what the developer community wants and needs and the best practices for communicating with them. This is one of the reasons, we’ve been working on a collaborations feature at OpenSauced. We want to support contributors working together. If you want to find out when this feature will go live, sign up for our [newsletter](https://news.opensauced.pizza/#/portal/signup). ![Collaboration request with the text "Hey bdougie! I'd love to collaborate on the intro to open source documentation!"](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5aj09tdbvz1jlih0n46k.png) ## Enabling Continuous Improvement + One of the core tenets of both DevEx and open source is continuous improvement. Because DevEx focuses on people, the work is never done. We’re all constantly growing, changing, learning. And because of this, our needs will change. Developer Experience needs to change with the developers. Open source projects embrace iterative development, encouraging developers to contribute enhancements, fix bugs, and suggest new features. DevEx teams, on the other hand, are constantly striving to improve the developer experience by incorporating user feedback, addressing pain points, and finding helpful solutions. -Through collaboration with open source projects, DevEx teams can actively learn about developers’ needs, motivations, and how they can best support their developers. By submitting bug reports, proposing feature enhancements, and participating in discussions, DevEx teams can contribute to the greater OSS ecosystem *and* help to create a better developer experience for everyone in open source. +Through collaboration with open source projects, DevEx teams can actively learn about developers’ needs, motivations, and how they can best support their developers. By submitting bug reports, proposing feature enhancements, and participating in discussions, DevEx teams can contribute to the greater OSS ecosystem *and* help to create a better developer experience for everyone in open source. -As the worlds of DevEx and OSS continue to intersect, developers can look forward to better experiences, accelerated innovation, and more supportive communities that embrace their needs. What are some of the most innovative ways that you have seen open source used to improve the developer experience? \ No newline at end of file +As the worlds of DevEx and OSS continue to intersect, developers can look forward to better experiences, accelerated innovation, and more supportive communities that embrace their needs. What are some of the most innovative ways that you have seen open source used to improve the developer experience? diff --git a/blog/2023/2023-07-10-how-to-talk-about-your-open-source-experience-in-a-tech-interview.md b/blog/2023/2023-07-10-how-to-talk-about-your-open-source-experience-in-a-tech-interview.md index 3d2e9f5e..fdd24e48 100644 --- a/blog/2023/2023-07-10-how-to-talk-about-your-open-source-experience-in-a-tech-interview.md +++ b/blog/2023/2023-07-10-how-to-talk-about-your-open-source-experience-in-a-tech-interview.md @@ -12,29 +12,30 @@ Interviewing is a skill that can be strengthened. Interviews can be frustrating, > **More Resources on How to Land a Job with Open Source** +> > - [How I Got Hired Contributing to open source projects](https://dev.to/opensauced/how-i-got-hired-contributing-to-open-source-projects-546i) > - [Building Your DevRel Resume with Open Source](https://dev.to/opensauced/building-your-devrel-resume-with-open-source-4km3) > - [How to Contribute to Open Source without Knowing How to Code: A guide with project suggestions](https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5) > - [Beyond Content Creation: How Open Source Contributions Can Help You Get Noticed](https://dev.to/opensauced/beyond-content-creation-how-open-source-contributions-can-help-you-get-noticed-4l5n) ## Highlight the Relevance -When talking about your open source experience, emphasize its relevance to the position you're interviewing for. Make a connection between your contributions and the skills required for the role. Discuss specific projects or aspects of the open source community that align with the company's tech stack or the job description. This demonstrates your ability to bridge the gap between open source and the company's goals. +When talking about your open source experience, emphasize its relevance to the position you're interviewing for. Make a connection between your contributions and the skills required for the role. Discuss specific projects or aspects of the open source community that align with the company's tech stack or the job description. This demonstrates your ability to bridge the gap between open source and the company's goals. ### Example Response - Developer Advocate Role + **Interviewer**: Can you provide an example of a time when you partnered with an engineering team to deliver educational content to community members, leading to enhancing their skills and product knowledge while also promoting advocacy? **Mia**: One significant open source project I contributed to was a developer toolkit for a programming language that closely resembles the tech stack utilized by your company. This project allowed me to immerse myself in the language and gain an in-depth understanding of its intricacies. - As part of the documentation issue that I worked on, my main responsibility was to create educational content, including tutorials, to empower fellow developers using the language. I wanted to ensure that the community had the resources they needed to fully leverage the language's capabilities. To achieve this, I collaborated closely with the engineering team and community members to identify common pain points and areas that required further clarification. I actively engaged in discussions on forums and organized workshops that specifically focused on your company's technology stack. Through my open source contributions, I not only enhanced my technical expertise in the language but also developed strong communication skills. I was able to effectively articulate complex technical concepts to a diverse audience, building their skills and product fluency while advocating for the open source project and its relevance to the developer community. - ## Describe Your Contributions + Start by explaining the problem you aimed to solve or the feature you worked on, providing context for your involvement. If you faced challenges, highlight how you overcame them. If you know the impact of your contributions, such as the number of users, positive feedback, or adoption by other developers, share this information as well. Emphasize the lessons you learned during the process and how they have shaped your technical growth. [![babblebey's highlight](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ts5my5oud3g7esll1mki.png)](https://insights.opensauced.pizza/feed/207) @@ -56,6 +57,7 @@ While working on Contributions Connect, I actively collaborated with the open so **Tomás**: This experience taught me the importance of striking a balance between aesthetics and performance in frontend development. I learned that building a visually pleasing UI is only part of the equation; ensuring optimal performance and speed is equally crucial. Through this project, I developed a deep understanding of performance optimization techniques, such as lazy loading, code splitting, and caching strategies. These lessons have not only enhanced my technical abilities but also instilled in me a passion for creating efficient and reusable code. ## Showcase Collaboration and Communication Skills + Open source projects are collaborative by nature, so it's important to showcase your ability to work effectively in a team. Talk about how you interacted with other contributors, how you shared ideas, and how you resolved conflicts or differences of opinion. Highlight any leadership roles or responsibilities you had within the open source community, such as being a maintainer or a project lead. Emphasize how you effectively communicated with the project community, both online and offline. [![CBID2's highlight](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cvmb2ijw09og21bm0b9q.png)](https://insights.opensauced.pizza/feed/197) @@ -76,10 +78,9 @@ When it comes to communication within the project community, I recognized the im Overall, my experience as a developer working on open source projects has equipped me with essential skills in teamwork, communication, conflict resolution, and leadership. I believe these experiences have laid a solid foundation for my transition into project management, as they have honed my abilities to work effectively within diverse teams and engage with stakeholders at various levels. - ## Discuss Your Learning Experience -Open source projects provide an excellent platform for continuous learning and skill development. Share how your open source experience has expanded your technical knowledge and honed your problem-solving abilities. Discuss the new programming languages, frameworks, or tools you encountered during your contributions. Mention any feedback or code reviews you received and how they helped you improve as a developer. Demonstrate your enthusiasm for learning and growth. +Open source projects provide an excellent platform for continuous learning and skill development. Share how your open source experience has expanded your technical knowledge and honed your problem-solving abilities. Discuss the new programming languages, frameworks, or tools you encountered during your contributions. Mention any feedback or code reviews you received and how they helped you improve as a developer. Demonstrate your enthusiasm for learning and growth. [![Sunday's highlight](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8m0yioq0ifeupw4hahev.png)](https://insights.opensauced.pizza/feed/195) @@ -100,12 +101,11 @@ Throughout this process, I actively sought feedback and engaged in code reviews This experience demonstrated my enthusiasm for learning and growth as a developer. It showcased my ability to adapt to new programming languages, frameworks, and tools by utilizing my backend expertise while embracing the frontend responsibilities in a full stack context. Working on this open source issue allowed me to expand my technical horizons, reinforce my problem-solving skills, and solidify my desire to pursue a full stack role. ## Talk About the Open Source Community -The open source community thrives on collaboration, knowledge sharing, and giving back. Talk about your involvement in the community beyond coding, such as participating in discussions, mentoring newcomers, or contributing to documentation. Discuss how the open source community has influenced your professional development and how you have contributed to its growth. Showcase your passion for open source and your dedication to making a positive impact on the developer community. +The open source community thrives on collaboration, knowledge sharing, and giving back. Talk about your involvement in the community beyond coding, such as participating in discussions, mentoring newcomers, or contributing to documentation. Discuss how the open source community has influenced your professional development and how you have contributed to its growth. Showcase your passion for open source and your dedication to making a positive impact on the developer community. [![Nick Taylor's Highlight](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ao6nz87n6u9y7mlxih4.png)](https://insights.opensauced.pizza/feed/36) - ### Example Response - Senior Software Engineer **Interviewer**: Can you provide an example of a leadership experience that demonstrates your ability to mentor and guide junior developers your team? @@ -124,12 +124,10 @@ Through this experience, I realized the immense impact mentoring can have on bot I also actively encouraged the junior developers to contribute back to the open source project by taking ownership of smaller tasks, reviewing pull requests, and suggesting improvements. By doing so, they not only developed their technical skills but also gained a sense of ownership and pride in their contributions. - ## Additional Consideration: Be Prepared to Show Your Code -Some tech interviews may require you to showcase your coding skills by sharing links to your open source contributions. Be ready to present your code or other contributions and explain the rationale behind your decisions. Practice explaining concisely and be prepared to answer questions related to the codebase you worked on. One great way to lead the hiring manager to the contributions you’re most proud of is to send them to [your highlights page](https://insights.opensauced.pizza/user/BekahHW/highlights). +Some tech interviews may require you to showcase your coding skills by sharing links to your open source contributions. Be ready to present your code or other contributions and explain the rationale behind your decisions. Practice explaining concisely and be prepared to answer questions related to the codebase you worked on. One great way to lead the hiring manager to the contributions you’re most proud of is to send them to [your highlights page](https://insights.opensauced.pizza/user/BekahHW/highlights). ![BekahHW's highlight page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kqrdlwr4mvkuwuwl7ton.png) - For most of us, it takes practice and experience to interview well. By highlighting the relevance of your contributions, describing your accomplishments, showcasing collaboration and communication skills, discussing your learning experience, and emphasizing your involvement in the open source community, you should be able to create an impression that interviewers will remember. And remember, this is a great opportunity to share your passion and demonstrate all the things you’ve learned through your open source journey. Good luck! diff --git a/blog/2023/2023-07-12-100daysofoss-growing-skills-and-real-world-experience.md b/blog/2023/2023-07-12-100daysofoss-growing-skills-and-real-world-experience.md index c06dbf73..807e1c2e 100644 --- a/blog/2023/2023-07-12-100daysofoss-growing-skills-and-real-world-experience.md +++ b/blog/2023/2023-07-12-100daysofoss-growing-skills-and-real-world-experience.md @@ -13,6 +13,7 @@ With this challenge, OpenSauced hopes to help contributors enhance their skills, ## How to Participate + The beauty of this challenge is that you're not required to code. The main purpose is to grow in your understanding of open source software (OSS), contribute in ways that are meaningful to you, and further develop the skills and knowledge you're interested in pursuing. It's all about personal growth and making a positive impact on the OSS community. Because this challenge is focused on growth, you can participate in any way that helps you achieve your goals-including taking days off when you need it. There are numerous ways to participate in the #100DaysOfOSS challenge, including: @@ -22,7 +23,7 @@ There are numerous ways to participate in the #100DaysOfOSS challenge, including - submit pull requests to contribute code changes; - engage in the community by sharing your insights and knowledge; - create or participate in discussions related to OSS topics; -- write a blog post or create content that supports an OSS project; +- write a blog post or create content that supports an OSS project; - update or write documentation to improve clarity and usability - create content: give a talk or presentation on OSS, participate in or even start a Twitter Space write a blog post or create a video; - maintain a project: review pull requests, triage issues, and respond to questions; @@ -31,15 +32,18 @@ There are numerous ways to participate in the #100DaysOfOSS challenge, including To keep track of your progress, post on social media, your blog, or any other platform you prefer with what progress you made, the day of the challenge indicated by 'D'and include the hashtag #100DaysOfOSS. For example, if you're on day one, you could say, "Today, I reviewed the documentation for the [OpenSauced/Insights](https://github.com/open-sauced/insights) repository. D1 #100daysOfOSS." Then, on day two, you would continue with D2, and so on. **Here's what you can do if you're ready to join this challenge:** + - [Sign up](https://app.opensauced.pizza/) with OpenSauced to to power-up your open source toolkit, and for the chance to opt in to receive updates, event invites, and resources to help you succeed. - [Tweet out your commitment today](https://twitter.com/intent/tweet?text=I%27m%20joining%20the%20%23100DaysOfOSS%20challenge%20with%20%40saucedopen%20to%20grow%20my%20skills%2C%20gain%20real-world%20experience%20in%20open%20source%2C%20and%20to%20make%20a%20positive%20impact%20on%20the%20OSS%20Community!) or share on your platform of choice! ## The Official Kickoff -We're starting 100 days from the end of [Hacktoberfest](https://hacktoberfest.com/), a month-long celebration of open source contributions. Starting **July 23rd**, we'll provide continuous support, daily inspirational tweets, and engaging events to help you stay motivated and make progress. -Don't worry if you're unable to start on the same day as everyone else. The #100DaysOfOSS challenge is flexible, and you can join in whenever you're ready. Just jump in at any point and begin with day one of your personal challenge. +We're starting 100 days from the end of [Hacktoberfest](https://hacktoberfest.com/), a month-long celebration of open source contributions. Starting **July 23rd**, we'll provide continuous support, daily inspirational tweets, and engaging events to help you stay motivated and make progress. + +Don't worry if you're unable to start on the same day as everyone else. The #100DaysOfOSS challenge is flexible, and you can join in whenever you're ready. Just jump in at any point and begin with day one of your personal challenge. ## Support + To make the most of your #100DaysOfOSS journey, here are some additional resources and events you can explore: 1. **Weekly X Spaces:** Join our weekly Twitter Spaces sessions where we discuss open source topics, share insights, and connect with like-minded individuals. Follow us on [X](https://X.com/saucedopen) to stay updated on upcoming sessions. @@ -51,16 +55,19 @@ To make the most of your #100DaysOfOSS journey, here are some additional resourc 4. **Support:** Have questions or need help? Join us in our [Community](https://github.com/orgs/open-sauced/discussions/1). We're here to help you succeed! ## Where to Start? + If you're ready to start your #100DaysOfOSS journey, here are some tips to help you get started: + - **Find a Project:** Explore the [OpenSauced](https://opensauced.pizza/) website to find a project that interests you. You can also check out the [weekly post](https://dev.to/bekahhw/series/) for exciting contribution opportunities. - **Take our Intro To Open Source Course:** If you're new to open source, we recommend taking our [Intro to Open Source](https://github.com/open-sauced/intro) course to learn more about open source and how to get started. ## The Power of the #100DaysOfOSS Challenge -The #100DaysOfOSS challenge offers a supportive community where developers can find encouragement, share experiences, and overcome roadblocks together. + +The #100DaysOfOSS challenge offers a supportive community where developers can find encouragement, share experiences, and overcome roadblocks together. Our hope is that the community will provide a safe space to discuss challenges, celebrate achievements, and exchange insights, creating an environment that helps individuals stay on track and avoid giving up. -## Why join the #100DaysOfOSS Challenge: +## Why join the #100DaysOfOSS Challenge 1. **Skill Enhancement**: By working on real-world projects, you'll gain practical experience and exposure to different projects, documentation, communities, programming languages, frameworks, and tools. You'll also learn from experienced developers, receive feedback on your code, and improve your problem-solving abilities. @@ -74,4 +81,4 @@ Our hope is that the community will provide a safe space to discuss challenges, For more information on the challenge, like our upcoming events, including our Intro to Open Source Workshops, check out our [#100DaysOfOSS docs page](https://opensauced.pizza/docs/community/100-days-of-oss/). We'll have more great information and resources there on our launch day to help you on your journey. We'll also be dropping daily prompts on Twitter, so feel free to follow [@saucedopen](https://twitter.com/saucedopen) there for more inspiration. -If you have any questions or suggestions, feel free to drop them below, so we can continue to work on supporting you in your open source adventure. \ No newline at end of file +If you have any questions or suggestions, feel free to drop them below, so we can continue to work on supporting you in your open source adventure. diff --git a/blog/2023/2023-07-17-the-power-of-git-a-guide-to-collaborative-version-control.md b/blog/2023/2023-07-17-the-power-of-git-a-guide-to-collaborative-version-control.md index ac73ffce..1c8df307 100644 --- a/blog/2023/2023-07-17-the-power-of-git-a-guide-to-collaborative-version-control.md +++ b/blog/2023/2023-07-17-the-power-of-git-a-guide-to-collaborative-version-control.md @@ -11,6 +11,7 @@ When I started learning to code, no one told me what Git was or why it was impor ## What is Git? + Git is a distributed version control system that allows developers to manage their source code and collaborate on projects. It allows you to track changes made to files over time, and creates a centralized repository and a comprehensive history of changes, which allows for a more seamless teamwork experience and organized code management. I like to think of Git as a time machine for your code. @@ -31,65 +32,78 @@ Historically, collaborating on code involved manual file sharing or maintaining ### Features and Benefits of Git -1. **Decentralized Development**- With Git, each team member has their own repository on their local machine-also called a local copy-which allowed for independent work without requiring an internet connection. +1. **Decentralized Development**- With Git, each team member has their own repository on their local machine-also called a local copy-which allowed for independent work without requiring an internet connection. -2. **Effortless Synchronization**- By cloning repositories, team members can create local copies of the codebase. This means that everyone has their own version to work on and they can use Git to share the changes between repositories. +2. **Effortless Synchronization**- By cloning repositories, team members can create local copies of the codebase. This means that everyone has their own version to work on and they can use Git to share the changes between repositories. ## Getting Started with Git + If you want to get some hands-on experience using git, check out OpenSauced's [Intro to Open Source Course](https://github.com/open-sauced/intro) or sign-up for one of our workshops that are listed on the bottom of our [#100DaysOfOSS Challenge docs](https://opensauced.pizza/docs/community/100-days-of-oss/). ### Remote Repositories and Collaboration -Git allows for collaboration by enabling developers to work on the same codebase from remote locations. + +Git allows for collaboration by enabling developers to work on the same codebase from remote locations. #### Cloning a Repository + Cloning is the process of creating a copy of a remote repository onto your local machine. When you clone a repository, you create a local version that includes the entire codebase, commit history, branches, and other repository-related information. ``` To clone a remote repository: $ git clone ``` -### Branching -Branching and merging allows multiple developers to be working on the same code base at the same time and reduces the incidence of conflicts. + +### Branching + +Branching and merging allows multiple developers to be working on the same code base at the same time and reduces the incidence of conflicts. ``` To create a new branch: $ git branch ``` + You should replace `` with the name for your new branch. For example, if you want to create a branch called "feature-x", you would use the following command: ``` -$ git branch feature-x +git branch feature-x ``` ### Committing Changes + Committing changes is part of Git's core functionality. Remember, committing is like capturing a snapshot of what the codebase looks like at that moment. A commit message is a description of what changes you’ve made. Here's an example: ``` To commit changes: $ git commit -m "Your commit message" ``` + **Scenario**: Imagine you've added a new feature and want to save your progress. By committing your changes, you create a snapshot of the code at that specific point, making it easy to track and revert if needed. ### Pushing Changes + When you push changes, that means that you send your local code changes, commits, and branches to a remote repository. You’re updating the remote repository with your local commits and making them accessible to others who have access to the same repository. ``` To push changes to a remote repository: $ git push origin ``` + By pushing changes, your saved local changes are shared with others. Other team members can then fetch and merge your changes into their local repositories, creating an up-to-date version of the project. ### Merging and Fetching -**Merging**: Merging is the process of combining changes from one branch or commit into another branch. + +**Merging**: Merging is the process of combining changes from one branch or commit into another branch. The command `git merge ` is used to merge changes from one branch into another. In this case, replace `` with the name of the branch you want to merge into your current branch. For example, if you want to merge changes from a branch named "main" into your current branch, you would use the following command: ``` -$ git merge main +git merge main ``` + **Scenario**: You're working on a team project and need to develop a new feature without interfering with the main codebase. By creating a branch, you can isolate your work, commit changes, and merge them back into the main branch when you’re ready. If updates have been made to the main branch that you need to add to your branch, you can merge those in as well. **Fetching**: The process of retrieving changes from a remote repository without automatically merging them into your local branch. When you fetch, Git compares the commit history between your local repository and the remote repository, identifying any new commits or branches in the remote repository that you don't have locally. + ``` To fetch changes from a remote repository: $ git fetch @@ -100,63 +114,81 @@ Sometimes there are merge conflicts (for example, changes to the same lines of c To resolve merge conflicts you’ll need to look at the conflicting sections, edit the files remove the conflict, and then commit the new changes. If you want to fetch and merge at the same time-which is convenient but allows for less flexibility-you can run this command: + ``` -$ git pull origin +git pull origin ``` ### Git Stash + Imagine you’re in the middle of working on a feature branch, but you suddenly need to switch to another branch for a bug fix. Instead of committing unfinished changes or losing them, you can use Git stash to temporarily save your modifications. This lets you to switch to the bug fix branch, address the issue, and then return to your feature branch and apply the saved stash to continue working from where you left off. To stash your changes, run the following command: + ``` - $ git stash save "Stash message" + git stash save "Stash message" ``` + To see a list of your stashes, you can use the command: ``` -$ git stash list +git stash list ``` + When you're ready to apply your stashed changes back to your working directory, use the command: + ``` -$ git stash apply +git stash apply ``` + If you have multiple stashes, you can specify a specific stash using its ID or index (`git stash apply stash@{2}`). If you no longer need a stash, you can remove it from your stash list by running: + ``` -$ git stash drop +git stash drop ``` + To apply a stash and remove it from the stash list in one step, you can use the command: + ``` -$ git stash pop +git stash pop ``` + This is equivalent to running git stash apply followed by git stash drop for the most recent stash. ### Git Rebase + Say you have been working on a feature branch for a while, but during that time, the main branch has had several new commits. Before merging your feature branch, you can use Git rebase to incorporate the latest changes from the main branch into your branch. This makes sure your feature branch is up to date and avoids potential conflicts during the merge process. Here's an overview of how to use Git rebase: 1. **Start a Rebase**: To start a rebase, make sure you are on the branch that you want to apply the changes to (the target branch). Then, run the following command: + ``` - $ git rebase + git rebase ``` + Make sure you replace `` with the name of the branch containing the commits you want to apply onto the target branch. 2. **Resolve Conflicts**: During the rebase process, Git may encounter conflicts if there are conflicting changes between the commits being applied and the existing commits on the target branch. Git will pause the rebase and ask you to resolve these conflicts manually. You can use Git's conflict resolution tools, such as editing the conflicting files, selecting the desired changes, and using `git add` to mark the conflicts as resolved. 3. **Continue the Rebase**: After resolving conflicts for a particular commit, you can continue the rebase process by running: + ``` - $ git rebase --continue + git rebase --continue ``` + This will apply the resolved commit and proceed with the remaining commits in the sequence. 4. **Abort the Rebase**: If you decide to cancel the rebase, you can abort the rebase by running: + ``` - $ git rebase --abort + git rebase --abort ``` + This will revert your branch to its state before the rebase started. -It's important to note that Git rebase rewrites the commit history by applying the changes from one branch on top of another branch. +It's important to note that Git rebase rewrites the commit history by applying the changes from one branch on top of another branch. -There’s a lot more that you can do with Git, and I know it might seem overwhelming, but think of it like a toolbox. There’s lots of different tools in there and you might only know how to use the screwdriver in the hammer, but as you progress through different projects, you can continue to learn how to use the other tools in there. And when you do, you’ll find that collaborating on projects becomes easier because you’re using the right tools. +There’s a lot more that you can do with Git, and I know it might seem overwhelming, but think of it like a toolbox. There’s lots of different tools in there and you might only know how to use the screwdriver in the hammer, but as you progress through different projects, you can continue to learn how to use the other tools in there. And when you do, you’ll find that collaborating on projects becomes easier because you’re using the right tools. diff --git a/blog/2023/2023-07-24-setting-goals-for-your-open-source-contributions.md b/blog/2023/2023-07-24-setting-goals-for-your-open-source-contributions.md index b36cd2b8..dcad426c 100644 --- a/blog/2023/2023-07-24-setting-goals-for-your-open-source-contributions.md +++ b/blog/2023/2023-07-24-setting-goals-for-your-open-source-contributions.md @@ -12,7 +12,7 @@ We are very excited to kick off [#100DaysOfOSS](https://dev.to/opensauced/100day ## Open Source Goal Setting Framework -You’re more likely to succeed in what you do if you if you set goals and you create accountability. I know, that stuff takes time, and if you’re like me, sometimes you just want to jump in and explore without taking the time to set up a plan. That’s totally fine and a valid approach, but if there’s something you’re aiming for like getting a job, a promotion, or growing a certain skillset, taking that time to set some goals will allow you to be more efficient. Here’s a framework I use to help me set goals that I’ve adapted for your open source journey: +You’re more likely to succeed in what you do if you if you set goals and you create accountability. I know, that stuff takes time, and if you’re like me, sometimes you just want to jump in and explore without taking the time to set up a plan. That’s totally fine and a valid approach, but if there’s something you’re aiming for like getting a job, a promotion, or growing a certain skillset, taking that time to set some goals will allow you to be more efficient. Here’s a framework I use to help me set goals that I’ve adapted for your open source journey: 1. **Self-Assessment and Skill Evaluation**. Reflect on your current skill set, interests, and past experiences in open-source. Where have you done well? Where do you want to improve? If you’ve never contributed to open source, that’s a great place to start: with a fresh page! Consider what your current skillset is and how you can translate that to open source. Are you good at writing, working with data, css, communication? All of these can be a part of your open source journey. @@ -33,9 +33,11 @@ You’re more likely to succeed in what you do if you if you set goals and you c 9. **Celebrate Achievements**. We love to see people celebrating their successes, no matter how small. We want to be there to cheer you on and for you to use them as motivation to keep pushing forward. ## What are some paths I can take? -There are a lot of different ways to approach this challenge or growing as an open source contributor. + +There are a lot of different ways to approach this challenge or growing as an open source contributor. ### Goal 1: General Exploration + Explore open-source projects that interest you and understand their goals and development processes. You might do this by making small contributions, fixing bugs, improving documentation, submitting feature requests, writing about your experience, or creating guides or demos. Take some time to engage with the project's community for guidance and feedback, and consider making contributions to different areas. Make sure you reflect on your experiences, identify areas for further exploration, and adjust your focus as you learn more about what interests you. #### Additional Resources @@ -44,24 +46,31 @@ Explore open-source projects that interest you and understand their goals and de - [Choose Your Own Adventure in Open Source: Paths to Success](https://dev.to/opensauced/choose-your-own-adventure-in-open-source-paths-to-success-167p) ### Goal 2: Goal to Get a Job + This is a great way to enhance your portfolio, contribute meaningfully to projects, and network with potential employers. As part of this process, make sure you assess your skills, research open-source projects aligned with the job you want to have, make meaningful contributions, and engage with the community, This part of the journey should allow you to polish your portfolio, update your resume, and network with potential employers as you make contributions to different repositories. + #### Additional Resources + - [How to Talk About Your Open Source Experience in a Tech Interview ](https://dev.to/opensauced/how-to-talk-about-your-open-source-experience-in-a-tech-interview-3l96) - [How I Got Hired Contributing to open source projects](https://dev.to/opensauced/how-i-got-hired-contributing-to-open-source-projects-546i) ### Goal 3: To Mentor + Identify projects or open source communities that are welcoming new contributors. As part of this process, think about how you can engage newcomers, offer guidance, and provide regular support. Make sure you build in frequent evaluations to identify the impact of your mentorship. And if you’re open to mentorship, feel free to comment at the bottom of this post! ### Goal 4: To Maintain and Onboard New Contributors + If you don’t have your own project, select a project you're excited about, learn about the maintenance and onboarding processes. Another great way to help new contributors is to triage and address issues. Take this opportunity to collaborate with core contributors, propose improvements, and share your insights. ### Goal 5: To Level Up Your Skill Set + Identify specific skills to focus on, look for issues that will challenge you beyond your current skill level. Look at projects that provide feedback and a community that can support or mentor you. Remember that your skill set isn’t just your technical skills. Communication is a huge part of showcasing your skills. Be sure to work on communicating with maintainers, asking questions, and imagining yourself as part of the team. #### Additional Resources + - [Building Your DevRel Resume with Open Source](https://dev.to/opensauced/building-your-devrel-resume-with-open-source-4km3) `#100DaysOfOSS` is an opportunity to be a part of the open source community, get support from others, and to set and accomplish goals. If you haven’t signed up yet, you can Sign up with OpenSauced to receive a coupon code for 12 months of free access to all OpenSauced's paid features, and for the chance to opt in to receive updates, event invites, and resources to help you succeed or if you want to get started without signing up, you can tweet out your commitment today or share on your platform of choice! -Let’s embrace the challenge together, cheer each other on as part of the community, and spend time finding new opportunities for growth and learning. Don’t forget to share your progress using the hashtag #100DaysOfOSS on whatever platform you’re on and inspire others to join the journey. +Let’s embrace the challenge together, cheer each other on as part of the community, and spend time finding new opportunities for growth and learning. Don’t forget to share your progress using the hashtag #100DaysOfOSS on whatever platform you’re on and inspire others to join the journey. diff --git a/blog/2023/2023-07-27-open-source-abcs-bug.md b/blog/2023/2023-07-27-open-source-abcs-bug.md index 1cb56225..4ef9d757 100644 --- a/blog/2023/2023-07-27-open-source-abcs-bug.md +++ b/blog/2023/2023-07-27-open-source-abcs-bug.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to Day 5 of our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "B" for Bug. +Today, we're covering the letter "B" for Bug. **Bug**: A bug refers is an error, flaw, or defect in code that impacts the proper functioning of the software. Open-source projects often rely on community contributions to identify and fix bugs. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "B"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "B"? Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-07-31-keeping-your-branch-up-to-date-and-handling-merge-conflicts-while-waiting-for-pr-reviews.md b/blog/2023/2023-07-31-keeping-your-branch-up-to-date-and-handling-merge-conflicts-while-waiting-for-pr-reviews.md index c4b32f87..62bd08db 100644 --- a/blog/2023/2023-07-31-keeping-your-branch-up-to-date-and-handling-merge-conflicts-while-waiting-for-pr-reviews.md +++ b/blog/2023/2023-07-31-keeping-your-branch-up-to-date-and-handling-merge-conflicts-while-waiting-for-pr-reviews.md @@ -6,13 +6,14 @@ slug: keeping-your-branch-up-to-date-and-handling-merge-conflicts-while-waiting- description: " Learn how to keep your branch up to date and to handle Git merge conflicts in this step-by-step guide. " --- -I’ve been running an Intro to Open Source workshop for a couple of months now, and one of the biggest challenges for participants often dealing with is keeping their branch up to date and managing merge conflicts. Listen, if you see that “merge conflicts” message and you panic, you’re not alone. I may or may not have used the strategy of deleting my entire local repository, forking, recloning, and redoing my code to avoid navigating merge conflicts more than once. Luckily, there are much better ways of dealing with updating your branch and merge conflicts than that. If you’ve ever felt that panic and wanted to burn it all down, take a deep breath and read the post below that walks you through the process of keeping your branch up to date while waiting for reviews. Keeping your branch in sync with the main repository helps to avoid conflicts and create a smooth(er) merging process. +I’ve been running an Intro to Open Source workshop for a couple of months now, and one of the biggest challenges for participants often dealing with is keeping their branch up to date and managing merge conflicts. Listen, if you see that “merge conflicts” message and you panic, you’re not alone. I may or may not have used the strategy of deleting my entire local repository, forking, recloning, and redoing my code to avoid navigating merge conflicts more than once. Luckily, there are much better ways of dealing with updating your branch and merge conflicts than that. If you’ve ever felt that panic and wanted to burn it all down, take a deep breath and read the post below that walks you through the process of keeping your branch up to date while waiting for reviews. Keeping your branch in sync with the main repository helps to avoid conflicts and create a smooth(er) merging process. If you want to follow the steps below, I’ll be focusing on the scenario where you've forked and cloned the [guestbook repository](https://github.com/open-sauced/guestbook) and are adding yourself using a CLI tool, but this is generally applicable to staying up to date. ## Identifying Merge Conflicts + ![This is fine burning gif](https://media.giphy.com/media/NTur7XlVDUdqM/giphy.gif) Before making any updates to your branch, it's important to check for merge conflicts. Merge conflicts occur when changes in the branch of the repository that you're asking to merge into conflict with your local changes. When you create a pull request to merge your changes into a specific branch of the repository, Git will check for conflicts between your changes and the latest changes in that specific branch. If there are conflicting changes, Git will raise a merge conflict, indicating that manual intervention is required to resolve the discrepancies between the two sets of changes. @@ -20,73 +21,83 @@ When you create a pull request to merge your changes into a specific branch of t To identify merge conflicts, follow these steps: - Ensure you are on your feature branch–the branch you’re trying to merge your changes into: + ``` git checkout ``` - Fetch the latest changes from the main repository: + ``` git fetch upstream ``` - Compare your branch with the main repository's main branch: + ``` git diff upstream/main ``` + Any conflicting lines will be highlighted in the output, indicating potential merge conflicts. For our `guestbook` repository, if you’ve created a PR, you can scroll to the bottom of the PR and see whether or not you have conflicts. If you do, it will look like this if you have conflicts: ![merge conflicts with the all-contributors file](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z4ivmzbnnhv5aocfn2lw.png) - ## Keeping Your Branch Updated + To keep your branch up to date with the latest changes from the main repository, there are a couple of different approaches. I think GitHub has a really user friendly way to keep it updated. When you look at your fork, it will let you know if you’re behind. If you are, you can choose to sync your fork with the branch you’ve forked off of like this: - ![syncing a fork on GitHub](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d1nwr5qki5g4kxmq6c07.gif) If you want to use git, you can do it like this: + - Stash or commit your local changes (if any): + ``` git stash save "Your descriptive stash message" # Or commit your changes ``` - Pull the latest changes from the main repository's master branch: + ``` git pull upstream ``` - Apply your stashed changes (if any) back to your branch: + ``` git stash apply ``` > If you want to learn more about Git commands, check out the [previous post](https://dev.to/opensauced/the-power-of-git-a-guide-to-collaborative-version-control-dl6). - ### Resolving Merge Conflicts - After pulling the latest changes, Git may detect conflicts between the changes you’ve made and the main repository's changes. I want to emphasize that if you see merge conflicts, don’t feel like you’ve done something wrong. There’s a roadblock, and now you just need to figure out how to unblock it. For example, you might see something like this: ![image of code with conflicts](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qk1yv7g0nctai5oc3ijv.png) - Here are some steps you can use to resolve merge conflicts: + 1. Remember, conflicts are a natural part of collaboration. Open the conflicted files using a text editor and look for the conflict markers `(<<<<<<<, =======, and >>>>>>>)` to understand where the conflicting changes are. 2. Edit the conflicting section, removing the conflict markers and deciding which changes to keep. Create a version that incorporates the best of both changes if that aligns with the project's goals. 3. After resolving conflicts, save the file and stage it. + ``` git add ``` + 4. Commit the changes. + ``` git commit -am "Resolve merge conflicts with upstream" ``` + ### Preparing Your Pull Request + As you work through the issue and keep your branch updated, your pull request should be in good shape for merging. A couple of things to keep in mind: 1. Test your changes and add relevant documentation. @@ -101,20 +112,19 @@ git rebase upstream/main ``` ## Submitting Your Pull Request + With your branch up to date and conflicts resolved, it's time to submit your pull request. The maintainers of the repository will review your changes and, if everything looks good, merge them into the main repository. When you’ve submitted your PR to our repository, you should see all checks passing and no indications of merge conflicts, like this: - ![passing tests and no conflicts message](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9wnp2nro83nuj6tovbwd.png) +### Handling Feedback -### Handling Feedback Be prepared to receive feedback from the maintainers and community members. This is an opportunity to improve your contribution and to showcase your communication skills. Make the necessary updates based on the feedback and push them to your feature branch. The pull request will automatically update with the new changes. If you want to learn more about what happens when you submit pull requests, check out: [https://dev.to/opensauced/what-happens-after-you-submit-a-pr-to-an-open-source-project-4ed1](https://dev.to/opensauced/what-happens-after-you-submit-a-pr-to-an-open-source-project-4ed1) - You might find that you need to update your branch more than once when you’re waiting to get your PR merged. That’s ok. What’s important is that you know how to do it now. By following these steps, you can contribute without that panic of not knowing what to do when you see that merge conflict message. If you still panic a little, that’s ok. And if you try to fix it and you’re still having trouble, reach out to a community, a maintainer, or a mentor. There’s lots of people out there willing to help. You just need to ask for it. diff --git a/blog/2023/2023-08-01-open-source-abcs-collaboration.md b/blog/2023/2023-08-01-open-source-abcs-collaboration.md index 591a724d..cbb1b251 100644 --- a/blog/2023/2023-08-01-open-source-abcs-collaboration.md +++ b/blog/2023/2023-08-01-open-source-abcs-collaboration.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to Day 9 of our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "C" for Collaboration. +Today, we're covering the letter "C" for Collaboration. **Collaboration**: Collaboration is at the heart of open source. It's the cooperative effort among developers, contributors, and users to improve and enhance open source projects through shared knowledge and contributions. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "C"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "C"? Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-08-03-open-source-abcs-documentation.md b/blog/2023/2023-08-03-open-source-abcs-documentation.md index e5b3d902..7a834d09 100644 --- a/blog/2023/2023-08-03-open-source-abcs-documentation.md +++ b/blog/2023/2023-08-03-open-source-abcs-documentation.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to Day 11 of our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "D" for Documentation. +Today, we're covering the letter "D" for Documentation. **Documentation**: Documentation plays an important role in open-source projects. It includes guidelines, tutorials, and explanations that help users and developers understand and utilize the software effectively. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "D"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "D"? Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-08-07-you-dont-need-a-mentor-embracing-the-power-of-community.md b/blog/2023/2023-08-07-you-dont-need-a-mentor-embracing-the-power-of-community.md index eddfd19d..238295ff 100644 --- a/blog/2023/2023-08-07-you-dont-need-a-mentor-embracing-the-power-of-community.md +++ b/blog/2023/2023-08-07-you-dont-need-a-mentor-embracing-the-power-of-community.md @@ -11,6 +11,7 @@ I’ve heard the advice over and over, “find a mentor.” While having a mento ## Why Community Mentorship is Better than 1:1 Mentorship + I want to take a second to define what I mean here. When I say 1:1 mentorship, it means that you have a regular or semi-regularly scheduled time to meet with the same person for guidance and the opportunity to learn. I’m not saying you shouldn’t do this. But I am saying that community mentorship, or seeing a group of people and your interactions with them as mentorship, is better. Below you’ll find some of the reasons why. ### Diverse Perspectives @@ -22,33 +23,39 @@ If you’re meeting 1:1, you’re limited to that person’s knowledge, exposure Building a network can consist of peers, experienced techies, and even experts in the industry and benefit you throughout your career. Engaging with a diverse group of people in tech at all stages of the journey allows you to learn from different perspectives and also facilitates knowledge sharing, collaboration, and the formation of lasting connections that may lead to future opportunities. It becomes an opportunity to peer mentor and grow through teaching and collaborating with others, key skills we all need in tech. ### Accessible Knowledge + What happens if you have a question that determines an important part of your tech journey and your mentor is unavailable for an extended period of time? Having the collective knowledge of a community allows for availability at all times. That means that you can seek guidance and answers to your questions whenever you need them, without being limited by a mentor's schedule. ### Continuous Learning + Every interaction in a community is an opportunity to learn, whether that’s active or passive. Early in my career, I worked mostly 1:1 with an experienced developer. I learned a lot from that experience, but I learned the most when I actively engaged in a community. A lot of that learning came from reading slack conversations between developers. I was able to see how they asked each other questions, the processes they used to debug, and read different approaches to the same problems. Communities are a constant stream of fresh ideas and insights. ### Supportive Environment + Community mentorship can create a continual support system. You might find that other community members have the same goals and you can support each other, sustain motivation, and get emotional support through the journey. One of the most beneficial experiences I had when I was learning to code was hearing people who were ahead of me in their journey saying that they experienced the same frustrations. I stopped feeling so alone and was able to gain confidence as they shared their stories and advice with me. ### Continuous Opportunities for Growth -I strongly believe in horizontal mentorship–the ability to mentor at any stage. We all have our strengths and weaknesses, and you can always share those strengths to help others. Community mentorship often provides these opportunities for growth and development. You can contribute your expertise, collaborate on projects, and become a mentor yourself. -### Resilience and Continuity +I strongly believe in horizontal mentorship–the ability to mentor at any stage. We all have our strengths and weaknesses, and you can always share those strengths to help others. Community mentorship often provides these opportunities for growth and development. You can contribute your expertise, collaborate on projects, and become a mentor yourself. + +### Resilience and Continuity + Having a community of mentors ensures that you’ll continue to be mentored even if one individual's mentorship ends. The collective support of a community empowers you to overcome challenges and setbacks. ### Empowering Self-Directed Learning -Redefining mentorship as an amalgamation of learning experiences enables a more self-directed and proactive approach to skill development, and builds the skills you need to thrive as a person in tech who needs to problem-solve and learn to work independently. -Rather than relying on a mentor's schedule, you can own your learning process and explore topics that interest you most at your own pace. This autonomy cultivates self-reliance. It can be challenging to discern what information is right, follows best practices, or isn’t there just for clickbait. This is where you leverage your community of mentors. Ask for recommendations and references. Let people know what’s worked for you in the past or what style of learning you find most effective. Once you’ve settled on resources, don’t forget that many of those learning resources come with a community built in. There might be a forum for the class or an async communication platform. +Redefining mentorship as an amalgamation of learning experiences enables a more self-directed and proactive approach to skill development, and builds the skills you need to thrive as a person in tech who needs to problem-solve and learn to work independently. -The ability to create your own learning experience allows you to access the newest information, tailor your learning pace, and explore areas of tech that you most enjoy. +Rather than relying on a mentor's schedule, you can own your learning process and explore topics that interest you most at your own pace. This autonomy cultivates self-reliance. It can be challenging to discern what information is right, follows best practices, or isn’t there just for clickbait. This is where you leverage your community of mentors. Ask for recommendations and references. Let people know what’s worked for you in the past or what style of learning you find most effective. Once you’ve settled on resources, don’t forget that many of those learning resources come with a community built in. There might be a forum for the class or an async communication platform. -If a structured learning experience isn’t for you, you can also find a particular content creator or content creators that you learn well from, and consume their content as a form of mentorship. As part of that, you might have the opportunity to ask questions, suggest future content, or let the creator know how valuable the information has been to your journey. +The ability to create your own learning experience allows you to access the newest information, tailor your learning pace, and explore areas of tech that you most enjoy. +If a structured learning experience isn’t for you, you can also find a particular content creator or content creators that you learn well from, and consume their content as a form of mentorship. As part of that, you might have the opportunity to ask questions, suggest future content, or let the creator know how valuable the information has been to your journey. ### The Power of Online Communities Over the last couple of years, online communities and forums have exploded with opportunity. I’m confident that there is a community that suits your needs out there already (but that doesn’t mean you can’t start your own if you can’t find one!) If you’re not sure where to start OpenSauced offers a lot of different opportunities to be part of a community and ask questions: + - [#100DaysOfOSS](https://opensauced.pizza/docs/community/100-days-of-oss/) - [OpenSauced Community](https://github.com/orgs/open-sauced/discussions) - [OpenSauced Twitter + Twitter Spaces](https://twitter.com/saucedopen) diff --git a/blog/2023/2023-08-08-open-source-abcs-evolution.md b/blog/2023/2023-08-08-open-source-abcs-evolution.md index 13db8cd4..92bc557c 100644 --- a/blog/2023/2023-08-08-open-source-abcs-evolution.md +++ b/blog/2023/2023-08-08-open-source-abcs-evolution.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "E" for Evolution. +Today, we're covering the letter "E" for Evolution. **Evolution**: Open-source projects are known for their evolutionary nature. As more contributors join, the software evolves over time, incorporating new features, improvements, and bug fixes. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "E"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "E"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-08-09-caching-git-repos.md b/blog/2023/2023-08-09-caching-git-repos.md index f089683b..5f7d7b2c 100644 --- a/blog/2023/2023-08-09-caching-git-repos.md +++ b/blog/2023/2023-08-09-caching-git-repos.md @@ -16,7 +16,7 @@ The hot path on the server would include this Go code which clones the git repo ```go inMemRepo, err := git.Clone(memory.NewStorage(), nil, &git.CloneOptions{ - URL: URL, + URL: URL, SingleBranch: true, }) ``` @@ -35,11 +35,11 @@ In Go, we can use the standard library `list.List` as the doubly linked list and ```go type GitRepoLRUCache struct { - // a doubly linked list to support the LRU cache behavior - dll *list.List + // a doubly linked list to support the LRU cache behavior + dll *list.List - // a hashmap to support the LRU cache behavior - hm map[string]*list.Element + // a hashmap to support the LRU cache behavior + hm map[string]*list.Element } ``` @@ -150,7 +150,7 @@ Now, when elements are returned from the cache operations, they themselves can b ```go func (c *GitRepoLRUCache) Get(key string) *GitRepoFilePath { - // Lock (and unlock when done) the cache's mutex + // Lock (and unlock when done) the cache's mutex c.lock.Lock() defer c.lock.Unlock() @@ -178,8 +178,6 @@ func (g *GitRepoFilePath) Done() { A similar structuring of locking and unlocking these mutexes in "Put" and during the eviction process, all working together, allows for the cache and its elements to be thread safe and concurrently operated on. -At scale, using this LRU caching method, we can prevent the re-cloning of frequently queried git repos and speed up the service drastically. Make sure to check out the open source code for this service and all the details on this implementation of an LRU cache! - -https://github.com/open-sauced/pizza +At scale, using this LRU caching method, we can prevent the re-cloning of frequently queried git repos and speed up the service drastically. Make sure to check out [the open source code](https://github.com/open-sauced/pizza) for this service and all the details on this implementation of an LRU cache! Stay Saucy! 🍕 diff --git a/blog/2023/2023-08-10-open-source-abcs-fork.md b/blog/2023/2023-08-10-open-source-abcs-fork.md index 589a1aec..ad10d156 100644 --- a/blog/2023/2023-08-10-open-source-abcs-fork.md +++ b/blog/2023/2023-08-10-open-source-abcs-fork.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "F" for Fork. +Today, we're covering the letter "F" for Fork. **Fork**: Forking is the process of creating a new independent project from an existing open-source project. It allows developers to take the existing codebase in a new direction or make modifications while maintaining the original project's core principles. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "F"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "F"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-08-14-what-does-an-open-source-triage-team-do.md b/blog/2023/2023-08-14-what-does-an-open-source-triage-team-do.md index 13c80fef..17563ff0 100644 --- a/blog/2023/2023-08-14-what-does-an-open-source-triage-team-do.md +++ b/blog/2023/2023-08-14-what-does-an-open-source-triage-team-do.md @@ -6,46 +6,50 @@ slug: what-does-an-open-source-triage-team-do description: " Learn what it means to triage for open-source projects. Discover the responsibilities, skills, and strategies involved in efficiently managing and resolving issues to contribute effectively to the development community." --- -You might have seen the word triage thrown around when talking about open source. Maybe you wondered what it meant and how that role impacts open source. If we think of open source like a journey, then the role of someone on the triage team is an explorer who helps to discover hidden challenges and helps to chart a path forward. +You might have seen the word triage thrown around when talking about open source. Maybe you wondered what it meant and how that role impacts open source. If we think of open source like a journey, then the role of someone on the triage team is an explorer who helps to discover hidden challenges and helps to chart a path forward. -## What is Open Source Triage? -Open source triage involves evaluating and managing incoming issues and bug reports submitted by users and contributors. As a triage team member, your primary goal is to ensure that the project's issue tracker is well-organized and that reported problems receive the attention they deserve. +## What is Open Source Triage? -In some ways, we can think of open source projects as a treasure map. A new feature release might be a small treasure. Maybe launching the product is the big X on the map. Along that map, you’ll find that there are challenges (bugs and issues) that need to be understood and categorized to make progress. A triage team member helps to understand and ask the right questions so the other explorers can continue on the journey. +Open source triage involves evaluating and managing incoming issues and bug reports submitted by users and contributors. As a triage team member, your primary goal is to ensure that the project's issue tracker is well-organized and that reported problems receive the attention they deserve. +In some ways, we can think of open source projects as a treasure map. A new feature release might be a small treasure. Maybe launching the product is the big X on the map. Along that map, you’ll find that there are challenges (bugs and issues) that need to be understood and categorized to make progress. A triage team member helps to understand and ask the right questions so the other explorers can continue on the journey. ## The Triage Team’s Responsibilities ### Issue Triage + This means you’ll need to learn how to categorize and prioritize issues based on their severity, impact, and relevance to the project. For example, let’s say you’re triaging an open-source pizza delivery software project. A user reports an issue regarding incorrect pizza toppings being displayed in the order confirmation screen. To triage this issue, you carefully analyze its severity, impact, and relevance to the project. After some investigation, you identify the problem as medium severity because it affects the user experience but doesn't cause critical failures to the success of placing the order. It’s still incredibly important to the project's core functionality, so you prioritize this issue to ensure a timely resolution. -At the time this post was written, our [Insights repo](https://github.com/open-sauced/insights/issues) had 104 open issues. Having someone there to triage the issues provides the development team with more time to work on resolving the issues. +At the time this post was written, our [Insights repo](https://github.com/open-sauced/insights/issues) had 104 open issues. Having someone there to triage the issues provides the development team with more time to work on resolving the issues. ![OpenSauced/Insights repo issues](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/socs4044tq44nl5g937s.png) ### Issue Verification + To verify issues, you need to replicate reported issues on your system. Continuing with our analogy, you encounter an issue reported by a user regarding a glitch in the pizza tracker, showing inaccurate delivery status. To verify the issue's validity, you follow the user's steps and use their order details to replicate the problem on your system. You’ll also check the software's logs to gather any other useful information. Once you’ve replicated the issue, you confirm the issue's validity and move forward. ### Issue Management -Managing issues helps to create a more efficient development process. Understanding how to assign labels, milestones, and priorities to issues allows you to update the issue tracker to reflect the work that needs to be done and prioritized. +Managing issues helps to create a more efficient development process. Understanding how to assign labels, milestones, and priorities to issues allows you to update the issue tracker to reflect the work that needs to be done and prioritized. ![Issue that needs triaged](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gtobroahm6hijreszog1.png)[Bug: duplicate extension logo issue that needs triaged](https://github.com/open-sauced/ai/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) For example, let’s say you come across an issue related to adding new pizza toppings to the menu—a request from the community. To manage this issue, you assign the appropriate labels, such as "enhancement" or "feature request." You add relevant milestones to indicate it as a target for the next software update. Because this is your most upvoted issue and your team has the capability to add this functionality, you prioritize this issue based on its popularity and the potential impact on the project's success. Throughout the process, you update the issue tracker with necessary details, providing the developers with a clear understanding of the community's desire for new pizza toppings. ### Communication and Collaboration + Engaging with users, contributors, and maintainers, you act as a bridge between them and the development team to resolve issues As a triage team member for the pizza delivery software, you see an issue raised by a user who struggled with the pizza customization process in the app. You respond to the user via comments on their issue, asking clarifying questions to understand their specific difficulty. You actively collaborate with other members of the pizza software community to find possible solutions. As part of the process, you gather feedback from other users, identify common usability challenges, and discuss potential improvements with the development team. Effective communication and collaboration efforts bridge the gap between users and developers, leading to a better pizza customization experience for all users. ## Getting Started as a Triage Team Member + If you want to grow in your open source journey, you might find that a good milestone is becoming a part of a triage team for an open source project. Here are some tips to follow that path: 1. Choose a project you’re interested in and willing to commit to for an extended period. diff --git a/blog/2023/2023-08-15-open-source-abcs-git.md b/blog/2023/2023-08-15-open-source-abcs-git.md index 3d8c2e09..3db8ce19 100644 --- a/blog/2023/2023-08-15-open-source-abcs-git.md +++ b/blog/2023/2023-08-15-open-source-abcs-git.md @@ -8,7 +8,7 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "G" for Git. +Today, we're covering the letter "G" for Git. @@ -16,6 +16,6 @@ Today, we're covering the letter "G" for Git. If you want to learn more about what you can do with Git, check out my [Git it! Series](https://dev.to/bekahhw/series/2398). -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "G"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "G"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-08-21-open-source-abcs-issues.md b/blog/2023/2023-08-21-open-source-abcs-issues.md index 4872b02a..b2eb71e6 100644 --- a/blog/2023/2023-08-21-open-source-abcs-issues.md +++ b/blog/2023/2023-08-21-open-source-abcs-issues.md @@ -8,7 +8,7 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "I" for Issues. +Today, we're covering the letter "I" for Issues. @@ -24,6 +24,6 @@ An issue can have a wide range of topics, including: **Documentation**: Issues related to improving or clarifying the software's documentation. This could involve fixing errors, adding missing information, or making instructions more understandable. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "I"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "I"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-08-22-navigating-open-source-my-journey-to-contributing-and-getting-my-first-freecodecamp-pr-accepted.md b/blog/2023/2023-08-22-navigating-open-source-my-journey-to-contributing-and-getting-my-first-freecodecamp-pr-accepted.md index 589e05b3..398f4432 100644 --- a/blog/2023/2023-08-22-navigating-open-source-my-journey-to-contributing-and-getting-my-first-freecodecamp-pr-accepted.md +++ b/blog/2023/2023-08-22-navigating-open-source-my-journey-to-contributing-and-getting-my-first-freecodecamp-pr-accepted.md @@ -12,8 +12,8 @@ In July, I participated in a “Build in Public” monthly challenge. My goal wa ![Jessica's message to me about the issue](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8ntrdpxbrg1ego7a2ibr.png) - ## The Repository and the Issue + - [[Feature] - Add ability for users to choose a category](https://github.com/freeCodeCamp/Developer_Quiz_Site/issues/657) ### Context @@ -23,8 +23,9 @@ In July, I participated in a “Build in Public” monthly challenge. My goal wa Prior to this issue, the questions were generated randomly. Now, because there were enough questions to populate each category, I needed to create a component that allowed the user to choose a category of questions. The project uses TypeScript, and I’m going to be honest, I’m still pretty new to TypeScript. I’ll talk about some of the challenges I had with it and how I navigated those challenges later though. - + ## Approaching a New Codebase + I’ll give an overview of my approach, but I highly recommend Abbey Perini’s [Getting Started in a New Codebase](https://dev.to/abbeyperini/getting-started-in-a-new-codebase-e7b) as a resource for folks new to contributing. I have to resist the urge to just get started every time I’m in a new codebase. I know, it’s exciting jumping into the code, but it’s important to understand the organization, and repository, and to be able to run the project first. @@ -36,11 +37,10 @@ Using the instructions in the README, I forked and cloned the repository, and th **3.Familiarize Myself with the Codebase** -I started exploring the existing codebase to understand the project's structure, components, and overall functionality. Previously, users would select the number of questions, and a random quiz would be generated. My new component would need to come into the flow before this, so I’d have to figure out how the components were being displayed once a user made a selection. I also learned that the logic for the user’s flow was all in the `QuizTemplate` Component. +I started exploring the existing codebase to understand the project's structure, components, and overall functionality. Previously, users would select the number of questions, and a random quiz would be generated. My new component would need to come into the flow before this, so I’d have to figure out how the components were being displayed once a user made a selection. I also learned that the logic for the user’s flow was all in the `QuizTemplate` Component. **4. Component Implementation** -I began by creating a new `SelectCategory` component, which alloId users to pick a quiz category. I essentially copied the `SelectQuiz` component, and made updates specific to the categories. Within the `QuizTemplate` component, I import two components: `SelectCategory` and `SelectQuiz`. The `SelectCategory` component allows the user to choose a quiz category, and the `SelectQuiz` component lets the user choose the number of questions for the quiz. - +I began by creating a new `SelectCategory` component, which alloId users to pick a quiz category. I essentially copied the `SelectQuiz` component, and made updates specific to the categories. Within the `QuizTemplate` component, I import two components: `SelectCategory` and `SelectQuiz`. The `SelectCategory` component allows the user to choose a quiz category, and the `SelectQuiz` component lets the user choose the number of questions for the quiz. **5. Logic & Code** Next, I needed to add new state variables to manage the selected category and quiz length: @@ -68,7 +68,7 @@ const selectQuiz = (category: string, index: number) => { ``` -I also had to modify the rendering logic to include the `SelectCategory` component for category selection. +I also had to modify the rendering logic to include the `SelectCategory` component for category selection. ```jsx return ( @@ -107,13 +107,15 @@ return ( ); ``` + One of the most important parts of this issue was making sure that the category the user selected was passed to the `SelectQuiz` component. Here’s how I made sure that happened. In the return statement of the `QuizTemplate` component, I conditionally render the `SelectCategory` component if `showOptions` is `false`. I pass several props to `SelectCategory`: - - `selectQuizNumber`: A function that is used when the user selects a category. This function takes two arguments: an event (`e`) and the selected category. It triggers the `selectQuiz` function with the selected category and index `0` (since the first quiz length option is by default). - - `category`: The currently selected category. - - `selectCategoryArr`: An array containing all the available quiz categories. - - `selectQuiz`: A function reference to the `selectQuiz` function defined in the `QuizTemplate`. + +- `selectQuizNumber`: A function that is used when the user selects a category. This function takes two arguments: an event (`e`) and the selected category. It triggers the `selectQuiz` function with the selected category and index `0` (since the first quiz length option is by default). +- `category`: The currently selected category. +- `selectCategoryArr`: An array containing all the available quiz categories. +- `selectQuiz`: A function reference to the `selectQuiz` function defined in the `QuizTemplate`. These prompts are received in the `SelectCategory` component, where they are used to display the category buttons and handle user interactions. When a user clicks on a category button, the `selectQuizNumber` function is called, passing the selected category to it. @@ -125,13 +127,12 @@ So the `selectedCategory` and `selectedQuiz` state variables in the `QuizTemplat For the full code, you can check out my [Developer_Quiz_Site fork](https://github.com/BekahHW/Developer_Quiz_Site/). -And once I was done, I went to my [OpenSauced profile](https://insights.opensauced.pizza/user/BekahHW/highlights) to create a highlight to showcase my contribution and do some storytelling about the experience. - +And once I was done, I went to my [OpenSauced profile](https://insights.opensauced.pizza/user/BekahHW/highlights) to create a highlight to showcase my contribution and do some storytelling about the experience. [![Highlight card with story of the experience](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v4wz6exmdbdgwztnhpyi.png)](https://insights.opensauced.pizza/feed/389) - ## Challenges Faced + I think it’s always worth talking through the challenges so other contributors know that they aren’t alone if they struggle to contribute to open source. **1. Time Management** @@ -141,16 +142,14 @@ Balancing this contribution with my job, community-building activities, and fami As a TypeScript beginner, there were sometimes I had no idea what was happening. I’m a big fan of using tools like ChatGPT and GitHub Copilot to help me through the process. I really enjoyed using GitHub Copilot to explain TypeScript code. I learn a lot when I’m doing projects hands-on, and having an AI assistant to help explain what was happening helped me to be more efficient in my learning and coding. ## Benefits and Takeaways -It always feels good when I get a PR merged in, and this wasn’t any different. I was actually pretty excited to find my next issue since Jessica’s feedback was positive and considerate. Even though this wasn’t a huge issue, I definitely grew through this contribution. I gained hands-on experience with type-safe code. I also wrote some Jest tests, which I hadn’t done in a couple of years. -It took me longer than I anticipated, but I’m proud of getting my first PR accepted in the freeCodeCamp repository. +It always feels good when I get a PR merged in, and this wasn’t any different. I was actually pretty excited to find my next issue since Jessica’s feedback was positive and considerate. Even though this wasn’t a huge issue, I definitely grew through this contribution. I gained hands-on experience with type-safe code. I also wrote some Jest tests, which I hadn’t done in a couple of years. + +It took me longer than I anticipated, but I’m proud of getting my first PR accepted in the freeCodeCamp repository. -If you're considering making your first open-source contribution, I encourage you to get started today. Here are some gentle ways to get started in open source: +If you're considering making your first open-source contribution, I encourage you to get started today. Here are some gentle ways to get started in open source: - Take our [Intro To Open Source Course](https://github.com/open-sauced/intro) to learn more about open source and how to get started. - Join [#100DaysOfOSS](https://opensauced.pizza/docs/community/100-days-of-oss/) If you have any questions or feedback, drop them in the comments below. - - - diff --git a/blog/2023/2023-08-23-open-source-abcs-javascript.md b/blog/2023/2023-08-23-open-source-abcs-javascript.md index 28430d37..7bc75cbb 100644 --- a/blog/2023/2023-08-23-open-source-abcs-javascript.md +++ b/blog/2023/2023-08-23-open-source-abcs-javascript.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "J" for JavaScript. +Today, we're covering the letter "J" for JavaScript. **JavaScript**: JavaScript is a widely used programming language in open-source, front-end web development. It allows developers to add behavior, interactivity, and functionality to web pages, making them more engaging and responsive. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "J"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "J"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-08-28-open-source-abcs-kernel.md b/blog/2023/2023-08-28-open-source-abcs-kernel.md index 9166dcaa..10f68b64 100644 --- a/blog/2023/2023-08-28-open-source-abcs-kernel.md +++ b/blog/2023/2023-08-28-open-source-abcs-kernel.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "K" for Kernel. +Today, we're covering the letter "K" for Kernel. **Kernel**: The kernel is the core component of an operating system. Several open-source operating systems, such as Linux, have a kernel that allows developers to contribute and modify the system's functionality. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "K"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "K"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-09-04-open-source-abcs-meritocracy.md b/blog/2023/2023-09-04-open-source-abcs-meritocracy.md index 36ff9554..022e31be 100644 --- a/blog/2023/2023-09-04-open-source-abcs-meritocracy.md +++ b/blog/2023/2023-09-04-open-source-abcs-meritocracy.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "M" for Meritocracy. +Today, we're covering the letter "M" for Meritocracy. **Meritocracy**: Open-source communities often operate on a meritocratic model, where contributors' influence and decision-making authority are based on their demonstrated skills, knowledge, and contributions to the project. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "M"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "M"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-09-05-how-to-participate-in-hacktoberfest.md b/blog/2023/2023-09-05-how-to-participate-in-hacktoberfest.md index b0784b89..29068973 100644 --- a/blog/2023/2023-09-05-how-to-participate-in-hacktoberfest.md +++ b/blog/2023/2023-09-05-how-to-participate-in-hacktoberfest.md @@ -6,30 +6,35 @@ slug: how-to-participate-in-hackoberfest description: "With Hacktoberfest coming up, this guide walks you through how to be active and successful in your open source journey this October." --- -The countdown to Hacktoberfest has begun! [Hacktoberfest](https://hacktoberfest.com/), the month-long open source challenge sponsored by [DigitalOcean](https://www.digitalocean.com/), rewards contributors who sign up and complete four pull requests to open source projects that have opted into Hacktoberfest every year. It’s a great way to grow with the community, find support, and contribute to open source. Together, let’s walk through how to participate in Hacktoberfest, amplify your experience, and transform your contributions into the story of your journey, career ambitions, and community connections. +The countdown to Hacktoberfest has begun! [Hacktoberfest](https://hacktoberfest.com/), the month-long open source challenge sponsored by [DigitalOcean](https://www.digitalocean.com/), rewards contributors who sign up and complete four pull requests to open source projects that have opted into Hacktoberfest every year. It’s a great way to grow with the community, find support, and contribute to open source. Together, let’s walk through how to participate in Hacktoberfest, amplify your experience, and transform your contributions into the story of your journey, career ambitions, and community connections. ## How to Get Started with Hacktoberfest + Hacktoberfest is an opt-in event. So to get the full benefits of Hacktoberfest, make sure to check out [how to participate](https://hacktoberfest.com/participation/). ### Contributors + 1. Sign up between September 26 and October 31. 2. Read the documentation. 3. Ask for help when you need it - if you need a community, check out the [OpenSauced Community](https://github.com/orgs/open-sauced/discussions). 4. Get those PRs in before November 1 to repositories that use the `hacktoberfest` topic in their repository! ### Maintainers + 1. If you’re participating as a maintainer, add the `hacktoberfest` topic to your repository and issues you want worked on during Hacktoberfest. 2. Including a CONTRIBUTING.md file - find out more about what makes a good one [here](https://dev.to/opensauced/how-to-make-a-delicious-contributing-guide-4bp3). 3. Include a Code of Conduct. 4. Get ready to review PRs! ## About OpenSauced + At [OpenSauced](https://opensauced.pizza/), we’re on a journey to bring inspiration, collaboration, and innovation through open source contributions. We help contributors turn contributions into stories that showcase their growth, innovation, and impact, and maintainers to understand the health, activity, and community around their projects. ## Your Hacktoberfest Journey -Your Hacktoberfest journey will be unique to you. Start by defining the goal of your journey. This will help you to make progress, stay on track, and to meet your goal. Start with one, and then break it down into more specific pieces. + +Your Hacktoberfest journey will be unique to you. Start by defining the goal of your journey. This will help you to make progress, stay on track, and to meet your goal. Start with one, and then break it down into more specific pieces. - Do you want to contribute to open source for the first time? - Do you want to showcase mentoring and leadership skills to help you get a promotion? @@ -39,12 +44,13 @@ Your Hacktoberfest journey will be unique to you. Start by defining the goal of Remember, Hacktoberfest isn't just about coding. Projects need help with documentation, design, testing, content creation, community support, and more. Some projects create ways for you to submit PRs for non-code contributions. For instance, they may have a list of articles or tutorials in their repository. If you write a blog or tutorial, you can submit that to a repository with that issue open. > **Resources to Help You Set Your Goals** +> > - [Setting Goals for Your Open Source Contributions](https://dev.to/opensauced/setting-goals-for-your-open-source-contributions-349b) > - [Highlight Your Open Source Contributions](https://dev.to/opensauced/highlight-your-open-source-contribution-4chd) > - [Choose Your Own Adventure in Open Source: Paths to Success](https://dev.to/opensauced/choose-your-own-adventure-in-open-source-paths-to-success-167p) - ## Places for First-Time Contributors to Start + If you’re a first-time contributor, we’ve got you covered. One of our goals at OpenSauced is to make learning how to contribute to open source a positive experience. In preparation, we have documentation, a course (that gets you your first PR!), and support resources to help you get started and learn what you need to level up your open source experience. - [#100DaysOfOSS](https://opensauced.pizza/docs/community/100-days-of-oss/) @@ -54,16 +60,17 @@ If you’re a first-time contributor, we’ve got you covered. One of our goals - [How to Contribute to Open Source without Knowing How to Code](https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5) ## Finding Issues + Instead of jumping into issues immediately, consider spending some time exploring different repositories’ issues and discussions. Engaging with other contributors and maintainers can provide insight into the project's direction, where your skills might fit best, and the support you’ll receive. Remember, that [good first issues don’t exist](https://opensauced.pizza/blog/good-first-issues-dont-exist); the best first issue is the one that you write yourself. So if you see a bug, if you read through unclear documentation, if you have an idea for a feature that will make running the project easier for everyone, write that issue and, if you’re willing, ask to be assigned. -Engaging in discussions is another great way to contribute to open source, learn more, and share your willingness to collaborate. Engaging in these discussions might lead you to find a good issue to work on. Remember, the official Hacktoberfest documentation emphasizes the event's ethos, fostering collaboration and quality contributions. +Engaging in discussions is another great way to contribute to open source, learn more, and share your willingness to collaborate. Engaging in these discussions might lead you to find a good issue to work on. Remember, the official Hacktoberfest documentation emphasizes the event's ethos, fostering collaboration and quality contributions. ## Showcasing Your Open Source Legacy -Being a good contributor isn’t just about submitting PRs. It’s about investing in the holistic Hacktoberfest journey. Creating pull requests, issues, and even blog posts into one story that show a well-rounded contributor. + +Being a good contributor isn’t just about submitting PRs. It’s about investing in the holistic Hacktoberfest journey. Creating pull requests, issues, and even blog posts into one story that show a well-rounded contributor. Pull requests can demonstrate the quality of your code, but that’s not the only thing that makes you a good developer. You also need to have good communication skills, the ability to collaborate and explain your decisions, and a willingness to look at a project and see how it can be improved. At OpenSauced, our highlights feature allows you to highlight all three of those things. If you’re documenting your growth journey, highlight the work that you’ve done that’s relevant, showcase your expertise, and create a digital portfolio that speaks to your willingness to learn and grow. [![Image of highlights for blog post, issue, and PR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/prex2ahghk7ohvgoxxcu.png)](https://insights.opensauced.pizza/user/BekahHW?tab=highlights) - **Here’s my challenge to you: hit the trifecta this Hacktoberfest.** Make your PRs, write an issue, and publish a blog post to showcase your open source journey and the depth of your contributions. Tell the story of why it mattered to you in your highlight. Remember, telling your story isn’t just for self-promotion — it's a tool to create connections. It’s a way to share your journey with mentors, peers, and industry professionals. And not only that, it shows a picture of your potential impact on future projects. Open source contributions don’t stop in October. Use this as a jumping-off point to become a repeat contributor, supporting the growth and mission of the open source projects that you contribute to. diff --git a/blog/2023/2023-09-06-open-source-abcs-network.md b/blog/2023/2023-09-06-open-source-abcs-network.md index ac92329d..4585748b 100644 --- a/blog/2023/2023-09-06-open-source-abcs-network.md +++ b/blog/2023/2023-09-06-open-source-abcs-network.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "N" for Network. +Today, we're covering the letter "N" for Network. **Network**: Open source is a connected community of developers, users, and contributors who share ideas, exchange knowledge, mentor each other, and collaborate on improving the software. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "N"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "N"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-09-11-open-source-abcs-open-data.md b/blog/2023/2023-09-11-open-source-abcs-open-data.md index a3ffb79c..2ec546e8 100644 --- a/blog/2023/2023-09-11-open-source-abcs-open-data.md +++ b/blog/2023/2023-09-11-open-source-abcs-open-data.md @@ -8,11 +8,11 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -I thought about using [OpenSauced](https://opensauced.pizza/) and talking about how we're redefining contributions in open source, how we're supporting maintainers creating healthy projects, and how we're fostering a healthy ecosystem for open source, but instead I'll go with open data for the letter "o". +I thought about using [OpenSauced](https://opensauced.pizza/) and talking about how we're redefining contributions in open source, how we're supporting maintainers creating healthy projects, and how we're fostering a healthy ecosystem for open source, but instead I'll go with open data for the letter "o". **Open Data**: Open-source projects sometimes produce open data, which refers to freely accessible and shareable datasets. Open data enables researchers, analysts, and other developers to use and build upon existing information. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "o"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "o"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-09-12-navigating-spammy-and-low-quality-prs-a-guide-for-maintainers.md b/blog/2023/2023-09-12-navigating-spammy-and-low-quality-prs-a-guide-for-maintainers.md index 801ff2b2..73c0da43 100644 --- a/blog/2023/2023-09-12-navigating-spammy-and-low-quality-prs-a-guide-for-maintainers.md +++ b/blog/2023/2023-09-12-navigating-spammy-and-low-quality-prs-a-guide-for-maintainers.md @@ -12,10 +12,13 @@ Open source maintainers are the ultimate utility players, reviewing code, managi ## The Cost of Poor-Quality & Spammy PRs + ### Poor-Quality PRs +> > Poor-quality PRs may have good intentions but lack the necessary quality, completeness, or adherence to project guidelines. These PRs often require substantial revisions and are not immediately mergeable. **Examples of poor-quality PRs include:** + - Incomplete: The PR may contain code that isn’t fully implemented or is broken, leading to failed tests. It also may not follow the contributing guidelines, leading to necessary steps being skipped. - Lack of Documentation: The PR lacks comments, README updates, or inline documentation to explain the changes. - Code Style Violations: The submitted code doesn’t adhere to the project's coding standards or style guide. @@ -24,9 +27,11 @@ Open source maintainers are the ultimate utility players, reviewing code, managi - Large and Unfocused: The PR tries to address multiple issues at once, making it difficult to review and test. ### Spammy PRs +> > Spammy PRs appear to be made with little to no genuine intent to contribute to the project meaningfully. These are often created to take advantage of programs like Hacktoberfest or to simply gain contributor credits. **Examples of Spammy PRs include:** + - "Hello, World!" Contributions: The PR adds a "Hello, World!" print statement or comment that has no relevance to the project. - Whitespace Changes: The PR consists only of whitespace changes like adding/removing blank lines or spaces, without any meaningful code changes. - Duplicate PRs: The same PR is submitted multiple times without any new changes. @@ -38,6 +43,7 @@ Each PR requires time and effort to review, and when they aren’t up to standar [![OpenSauced Insights page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tuaahg2yptfdvblybto0.png)](https://insights.opensauced.pizza/pages/BekahHW/230/dashboard) ## Best Practices for Maintainers + 1. Set Clear Guidelines One of the first lines of defense against poor-quality PRs is to set clear contribution guidelines. Make sure to outline what you expect in a PR, including coding standards, commit messages, and documentation. Think of this as a filter, discouraging those who are not willing to meet basic requirements. Along with this, having a clear Code of Conduct can help to prevent repeat or malicious PRs and communication. @@ -59,11 +65,3 @@ Encourage peer reviews among contributors before the PR reaches you. This can ac Maintain an open line of communication with your contributors. If you find that a particular contributor is consistently submitting poor-quality PRs, a direct conversation may be more effective than repeated written feedback. By setting clear guidelines, leveraging automation, and fostering a culture of quality, you can reduce the time and effort spent on poor-quality PRs. Remember, the goal is not just to reduce spam but to elevate the quality of contributions to your project and to encourage repeat contributions from valued community members. - - - - - - - - diff --git a/blog/2023/2023-09-13-open-source-abcs-pull-request.md b/blog/2023/2023-09-13-open-source-abcs-pull-request.md index f475422e..c5aa5d47 100644 --- a/blog/2023/2023-09-13-open-source-abcs-pull-request.md +++ b/blog/2023/2023-09-13-open-source-abcs-pull-request.md @@ -8,17 +8,18 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "P" for Pull Request. +Today, we're covering the letter "P" for Pull Request. **Pull Request**: In open-source development, a pull request is a proposed code change submitted by a contributor. It allows others to review, discuss, and potentially merge the changes into the main codebase. If you want to learn more about Pull Requests, check out some of our resources: + - [Understanding Why Pull Requests Get Rejected in Open Source Projects](https://dev.to/opensauced/understanding-why-pull-requests-get-rejected-in-open-source-projects-1jd0) - [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9) - [How to Create a Good Pull Request Template (and Why You Should Add Gifs)](https://dev.to/opensauced/how-to-create-a-good-pull-request-template-and-why-you-should-add-gifs-4i0l) - [Tips for getting your Pull Request reviewed on GitHub](https://dev.to/opensauced/tip-for-getting-your-pull-request-reviewed-on-github-2b7c) -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "P"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "P"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-09-14-how-we-made-our-go-microservice-24x-faster.md b/blog/2023/2023-09-14-how-we-made-our-go-microservice-24x-faster.md index f4810f07..b5a18ca2 100644 --- a/blog/2023/2023-09-14-how-we-made-our-go-microservice-24x-faster.md +++ b/blog/2023/2023-09-14-how-we-made-our-go-microservice-24x-faster.md @@ -21,28 +21,28 @@ Before we can go too much further, let’s make sure the database connection is ```go import ( - "database/sql" - "log" + "database/sql" + "log" - _ "github.com/lib/pq" + _ "github.com/lib/pq" ) func main() { - // In a real world scenario, use good password handling practices - // to handle connecting to the Postgres cluster! - connectString := "host=my_host port=54321 user=my_postgres_user sslmode=require" - - // Acquire the *sql.DB instance - db, err := sql.Open("postgres", connectString) - if err != nil { - log.Fatalf("Could not open database connection: %s", err) - } - - // ping once to ensure the database connection is working - err = db.Ping() - if err != nil { - log.Fatalf("Could not ping database: %s", err) - } + // In a real world scenario, use good password handling practices + // to handle connecting to the Postgres cluster! + connectString := "host=my_host port=54321 user=my_postgres_user sslmode=require" + + // Acquire the *sql.DB instance + db, err := sql.Open("postgres", connectString) + if err != nil { + log.Fatalf("Could not open database connection: %s", err) + } + + // ping once to ensure the database connection is working + err = db.Ping() + if err != nil { + log.Fatalf("Could not ping database: %s", err) + } } ``` @@ -54,7 +54,7 @@ When first written, the `pizza` micro-service would process each individual piec ```go for _, v := range data { - err := db.Exec("INSERT INTO my_table(my_data) VALUES($1)", v) + err := db.Exec("INSERT INTO my_table(my_data) VALUES($1)", v) } ``` @@ -68,9 +68,9 @@ In theory, if you never really needed to handle conflicts within the database or ```go for _, v := range data { - go func(d string) { - db.Exec("INSERT INTO my_table(my_data) VALUES($1)", d) - }(v) + go func(d string) { + db.Exec("INSERT INTO my_table(my_data) VALUES($1)", d) + }(v) } ``` @@ -88,7 +88,7 @@ Let’s take a quick look at how you would implement this and how it works: // Start a psql transaction. txn, err := p.db.Begin() if err != nil { - log.Fatalf("Could not start psql transaction: %s", err.Error()) + log.Fatalf("Could not start psql transaction: %s", err.Error()) } // Make a "statement" to use for the psql transaction. The "CopyIn" takes @@ -98,27 +98,27 @@ if err != nil { // problem with preparing the statement. stmt, err := txn.Prepare(pq.CopyIn("my_table", "my_data")) if err != nil { - txn.Rollback() - log.Fatalf("Could not prepare psql statement: %s", err.Error()) + txn.Rollback() + log.Fatalf("Could not prepare psql statement: %s", err.Error()) } // Iterate the data and add the data to the psql statement for _, v := range data { - err := stmt.Exec(v) + err := stmt.Exec(v) if err != nil { - log.Fatalf("Could not execute the statement: %s", err.Error()) + log.Fatalf("Could not execute the statement: %s", err.Error()) } } // Execute, commit, and close the transaction err = stmt.Close() if err != nil { - log.Fatalf("Could not close the psql statement: %s", err.Error()) + log.Fatalf("Could not close the psql statement: %s", err.Error()) } err = txn.Commit() if err != nil { - log.Fatalf("Could not commit the psql transaction: %s", err.Error()) + log.Fatalf("Could not commit the psql transaction: %s", err.Error()) } ``` @@ -140,7 +140,7 @@ _, err := p.db.Exec(fmt.Sprintf("CREATE TEMPORARY TABLE %s AS SELECT * FROM my_t if err != nil { - log.Fatalf("Could not create temporary table: %s", err.Error()) + log.Fatalf("Could not create temporary table: %s", err.Error()) } ``` @@ -150,31 +150,31 @@ Now that we have a temporary table, we can use that in our CopyIn to do a mass i // Start a psql transaction. txn, err := p.db.Begin() if err != nil { - log.Fatalf("Could not start psql transaction: %s", err.Error()) + log.Fatalf("Could not start psql transaction: %s", err.Error()) } // Make a "statement" to use for the psql transaction. // Notice the "my_tmp_table" as the table name stmt, err := txn.Prepare(pq.CopyIn("my_tmp_table", "my_data")) if err != nil { - txn.Rollback() - log.Fatalf("Could not prepare psql statement: %s", err.Error()) + txn.Rollback() + log.Fatalf("Could not prepare psql statement: %s", err.Error()) } // Iterate the data, add the data to the psql statement for _, v := range data { - err := stmt.Exec(v) + err := stmt.Exec(v) } // Execute, commit, and close the transaction err = stmt.Close() if err != nil { - log.Fatalf("Could not close the psql statement: %s", err.Error()) + log.Fatalf("Could not close the psql statement: %s", err.Error()) } err = txn.Commit() if err != nil { - log.Fatalf("Could not commit the psql transaction: %s", err.Error()) + log.Fatalf("Could not commit the psql transaction: %s", err.Error()) } ``` @@ -183,19 +183,19 @@ Now, we can attempt to pivot the data from the temporary table into the real tab ```go _, err := p.db.Exec(` - INSERT INTO my_table(my_data) - SELECT my_data FROM my_tmp_table - ON CONFLICT (my_data) - DO NOTHING + INSERT INTO my_table(my_data) + SELECT my_data FROM my_tmp_table + ON CONFLICT (my_data) + DO NOTHING `) if err != nil { - log.Fatalf("Could not pivot temporary table data: %s", err.Error()) + log.Fatalf("Could not pivot temporary table data: %s", err.Error()) } // Drop the temporary table now that we're done pivoting the data _, err = p.db.Exec(fmt.Sprintf("DROP TABLE %s", tmpTableName)) if err != nil { - log.Fatalf("Could not drop temporary table: %s", err.Error()) + log.Fatalf("Could not drop temporary table: %s", err.Error()) } ``` @@ -219,8 +219,6 @@ If you’re going to horizontally scale out your service to many additional inst Overall, using batch inserts and table pivots in Postgres are a really powerful way to optimize your Go backends. Compared to the arbitrary, brute force approach, we found that this generally improved performance 24x. When processing a git repository with over 30,000 commits, using the standard “one by one” approach, processing would take about 1 minute. But, using the batch approach laid out above, this now only takes about 3 seconds. Wow! What an improvement!! -If you’re interested in diving in deeper on these methodologies and how we implemented them at OpenSauced, check out the original PR for this here! - -https://insights.opensauced.pizza/feed/471 +If you’re interested in diving in deeper on these methodologies and how we implemented them at OpenSauced, check out the original PR for this [here!](https://insights.opensauced.pizza/feed/471/) Stay saucy friends!! diff --git a/blog/2023/2023-09-18-open-source-abcs-quality-assurance.md b/blog/2023/2023-09-18-open-source-abcs-quality-assurance.md index 7318e177..86749742 100644 --- a/blog/2023/2023-09-18-open-source-abcs-quality-assurance.md +++ b/blog/2023/2023-09-18-open-source-abcs-quality-assurance.md @@ -8,12 +8,12 @@ description: "Join our #100DaysOfOSS blog series as we explore the world of Open Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Until October 31, we'll be doing Open Source Software (OSS) terms from A to Z. We'll be diving into a different letter of the English alphabet, uncovering OSS concepts, and sharing our thoughts on them. -Today, we're covering the letter "Q" for Quality Assurance. +Today, we're covering the letter "Q" for Quality Assurance. **Quality assurance** in open-source projects involves testing, reviewing, and ensuring the software meets the desired standards. Community members often contribute to testing and reporting issues to improve the software's quality. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "Q"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "Q"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-09-19-the-role-of-docs.md b/blog/2023/2023-09-19-the-role-of-docs.md index 278ae4cd..cf9c6768 100644 --- a/blog/2023/2023-09-19-the-role-of-docs.md +++ b/blog/2023/2023-09-19-the-role-of-docs.md @@ -14,7 +14,7 @@ Maybe I’m biased because I spent ten years teaching college English before com I remember trying out a really popular framework right after graduating bootcamp. The documentation was comprehensive, but it was unwieldy. I had no idea where I had come from or where I was going. There was no clear progression in the docs, which ultimately led to me giving up and moving to a different framework. -> Documentation is an essential resource for developers, acting as a guidebook for understanding project features, APIs, configurations, and usage. +> Documentation is an essential resource for developers, acting as a guidebook for understanding project features, APIs, configurations, and usage. Here's why documentation matters in the context of open source: @@ -28,7 +28,7 @@ Here's why documentation matters in the context of open source: One of the challenges of documentation–or any form of long writing–is creating a well-organized document that doesn’t give too much information but empowers the user to get started without having a lack of understanding. Here are some tips for creating good documentation: -1. **Keep it Comprehensive:** Cover all aspects of your project, including installation instructions, configuration options, API reference, code examples, and troubleshooting guides. Providing clear and meaningful examples can help the user to better understand the documentation. As part of your documentation, be sure to include a CONTRIBUTING.md file. +1. **Keep it Comprehensive:** Cover all aspects of your project, including installation instructions, configuration options, API reference, code examples, and troubleshooting guides. Providing clear and meaningful examples can help the user to better understand the documentation. As part of your documentation, be sure to include a CONTRIBUTING.md file. :::tip Check out [How to make a delicious contributing guide](https://dev.to/opensauced/how-to-make-a-delicious-contributing-guide-4bp3) for more information on creating a contributing guide. diff --git a/blog/2023/2023-09-20-open-source-abcs-repository.md b/blog/2023/2023-09-20-open-source-abcs-repository.md index 52ccc219..16dd052e 100644 --- a/blog/2023/2023-09-20-open-source-abcs-repository.md +++ b/blog/2023/2023-09-20-open-source-abcs-repository.md @@ -16,6 +16,6 @@ Today, we're covering the letter "R" for Repository. If you want to practice creating your own repository, check out [Practice Contributing with VS Code](https://opensauced.pizza/learn/#/04-tools-to-be-successful?id=practicing-contributing-with-vs-code) in our intro to open source course. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "R"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "R"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-09-21-supercharge-your-repository-with-code-owners.md b/blog/2023/2023-09-21-supercharge-your-repository-with-code-owners.md index 58157d0e..ba5be01d 100644 --- a/blog/2023/2023-09-21-supercharge-your-repository-with-code-owners.md +++ b/blog/2023/2023-09-21-supercharge-your-repository-with-code-owners.md @@ -10,7 +10,6 @@ As a maintainer of a repository, it’s in your best interest to automate proces - I decided to write a post about the CODEOWNERS file after reading this comment from one of our awesome [Octerns](https://education.github.com/students/octernships), Divyansh (@diivi), in a [pull request (PR) where I added the file](https://github.com/open-sauced/ai/pull/268). ![GitHub user diivi commenting that they weren't aware of the CODEOWNERS feature](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hpkmx91y66efqaa62umv.png) diff --git a/blog/2023/2023-09-27-open-source-abcs-transparency.md b/blog/2023/2023-09-27-open-source-abcs-transparency.md index 4d2c8d88..887fb3ba 100644 --- a/blog/2023/2023-09-27-open-source-abcs-transparency.md +++ b/blog/2023/2023-09-27-open-source-abcs-transparency.md @@ -12,8 +12,8 @@ Welcome to our [#100DaysOfOSS series](https://dev.to/opensauced/100daysofoss-gro Today, we're covering the letter "T" for Transparency. -**Transparency**: Transparency helps to build trust in open source. Because open source is a collaborative effort, with people from all over the world coming together to develop and maintain projects, transparency is one of the most important strengths of the open source community. +**Transparency**: Transparency helps to build trust in open source. Because open source is a collaborative effort, with people from all over the world coming together to develop and maintain projects, transparency is one of the most important strengths of the open source community. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "T"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "T"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-10-02-open-source-abcs-upstream.md b/blog/2023/2023-10-02-open-source-abcs-upstream.md index 4ad12ca8..9b077e00 100644 --- a/blog/2023/2023-10-02-open-source-abcs-upstream.md +++ b/blog/2023/2023-10-02-open-source-abcs-upstream.md @@ -12,9 +12,8 @@ Today, we're covering the letter "U" for Upstream. - **Upstream**: The original project or source from which a particular fork is taken. Contributing back to the upstream project is often considered a best practice. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "U"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "U"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-10-03-how-to-be-a-top-contributor-this-hacktoberfest.md b/blog/2023/2023-10-03-how-to-be-a-top-contributor-this-hacktoberfest.md index 7df7340c..2894078b 100644 --- a/blog/2023/2023-10-03-how-to-be-a-top-contributor-this-hacktoberfest.md +++ b/blog/2023/2023-10-03-how-to-be-a-top-contributor-this-hacktoberfest.md @@ -6,13 +6,14 @@ slug: how-to-be-a-top-contributor-this-hacktoberfest description: "Discover how to be a top new contributor this Hacktoberfest. " --- -If you’ve read any of my previous posts, you know that I’m a fan of redefining contributions. But during Hacktoberfest, there’s more competition for the magic four pull requests (PRs). If we think of it like [Moneyball for engineers](https://opensauced.pizza/blog/moneyball-for-engineers), except limiting it to Hacktoberfest, we realize it's not about hitting home runs; it's about getting on base consistently and making strategic plays that contribute to the overall win. So, how do you become a top contributor during Hacktoberfest? +If you’ve read any of my previous posts, you know that I’m a fan of redefining contributions. But during Hacktoberfest, there’s more competition for the magic four pull requests (PRs). If we think of it like [Moneyball for engineers](https://opensauced.pizza/blog/moneyball-for-engineers), except limiting it to Hacktoberfest, we realize it's not about hitting home runs; it's about getting on base consistently and making strategic plays that contribute to the overall win. So, how do you become a top contributor during Hacktoberfest? ![Ham yelling play ball](https://media.giphy.com/media/QtoG24OvehcYUhf7mI/giphy.gif) ## Five Pillars of Hacktoberfest Contribution + 1. Deep Dives Over Quick Fixes Take time to look through the repository’s issues. It doesn’t matter if you get a PR in the first week or all four on October 31. Take time to plan your approach and to understand the repository. Look at issues with the `help wanted` tag or issues that are in the backlog. It’s also important to think about the time that you have to devote to Hacktoberfest. If you know that you only have time to dive deeply into one issue, then plan around that. Also, consider submitting to the same open source organization to reduce the cognitive load of navigating different contribution guidelines. Engaging deeply with a project and its codebase will make you stand out. @@ -29,8 +30,9 @@ Avoid changing parts of a project just because you think they could be better. I Contributing to open source isn’t just about code. Engage with the community, write insightful issues, or craft blog posts that help others understand the project better. Features like [OpenSauced's highlights](https://insights.opensauced.pizza/feed) can help you showcase these broader contributions. ## Your Soft Skills Checklist -- Active Listening: Before diving in, read the project's documentation, understand its goals, and understand the process. -- Communication: Take time to check-in with maintainers, especially if you’re struggling or know that there’s a timeline that you can’t make. If you have a question and you’ve been unable to find the answer after looking, ask for help. + +- Active Listening: Before diving in, read the project's documentation, understand its goals, and understand the process. +- Communication: Take time to check-in with maintainers, especially if you’re struggling or know that there’s a timeline that you can’t make. If you have a question and you’ve been unable to find the answer after looking, ask for help. - Receptiveness to Feedback: You’ll likely receive comments on your pull requests. Feedback is a learning opportunity. Make necessary changes and iterate based on the feedback. Check out [Understanding Why Pull Requests Get Rejected in Open Source Projects](https://dev.to/opensauced/understanding-why-pull-requests-get-rejected-in-open-source-projects-1jd0) and [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9) for more best practices on submitting PRs. -If there’s one takeaway from becoming a top contributor during Hacktoberfest, it’s that it’s important to be thoughtful as a contributor. Take the time to understand, think through your process, and clearly communicate with maintainers. +If there’s one takeaway from becoming a top contributor during Hacktoberfest, it’s that it’s important to be thoughtful as a contributor. Take the time to understand, think through your process, and clearly communicate with maintainers. diff --git a/blog/2023/2023-10-04-open-source-abcs-version-control.md b/blog/2023/2023-10-04-open-source-abcs-version-control.md index 9d542f85..ad18e0cc 100644 --- a/blog/2023/2023-10-04-open-source-abcs-version-control.md +++ b/blog/2023/2023-10-04-open-source-abcs-version-control.md @@ -12,9 +12,8 @@ Today, we're covering the letter "V" for Version Control. - **Version Control**: Version control ensures code changes are tracked and managed efficiently. Version control systems like Git allow multiple contributors to work on the same codebase without conflicts. It helps in maintaining the history of the project, making it easier to understand past decisions, roll back changes, and contribute meaningfully. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "V"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "V"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-10-09-open-source-abcs-workflow.md b/blog/2023/2023-10-09-open-source-abcs-workflow.md index 491ef74d..14c1539f 100644 --- a/blog/2023/2023-10-09-open-source-abcs-workflow.md +++ b/blog/2023/2023-10-09-open-source-abcs-workflow.md @@ -12,9 +12,8 @@ Today, we're covering the letter "W" for Workflow. +**Workflow**: The process and steps involved in contributing to or maintaining an open-source project. This can include issue tracking, code reviews, merge requests, project management, and deployment. -**Workflow**: The process and steps involved in contributing to or maintaining an open-source project. This can include issue tracking, code reviews, merge requests, project management, and deployment. +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "W"? -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "W"? - -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-10-12-open-source-abcs-xenial-xerus.md b/blog/2023/2023-10-12-open-source-abcs-xenial-xerus.md index 5268b6b8..78c663a8 100644 --- a/blog/2023/2023-10-12-open-source-abcs-xenial-xerus.md +++ b/blog/2023/2023-10-12-open-source-abcs-xenial-xerus.md @@ -12,9 +12,8 @@ Today, we're covering the letter "X" for Xenial Xerus. +**Xenial Xerus**: Ubuntu versions are named alphabetically with an adjective and an animal, and "Xenial Xerus" is the name for the 16.04 release. -**Xenial Xerus**: Ubuntu versions are named alphabetically with an adjective and an animal, and "Xenial Xerus" is the name for the 16.04 release. +This was a hard one! Now, we want to hear from you! What other OSS terms can you think of that start with the letter "X"? -This was a hard one! Now, we want to hear from you! What other OSS terms can you think of that start with the letter "X"? - -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-10-16-open-source-abcs-yaml--yml.md b/blog/2023/2023-10-16-open-source-abcs-yaml--yml.md index ae04b6b3..52c90b3d 100644 --- a/blog/2023/2023-10-16-open-source-abcs-yaml--yml.md +++ b/blog/2023/2023-10-16-open-source-abcs-yaml--yml.md @@ -12,7 +12,6 @@ Today, we're covering the letter "Y" and the difference between YAML and YML. - - **YAML**: Stands for "YAML Ain't Markup Language." YAML refers to the data serialization standard itself. When you're talking about the language or the format, "YAML" is the term to use. - **YML**: A file extension commonly used for files that contain YAML-formatted data. @@ -20,6 +19,6 @@ Today, we're covering the letter "Y" and the difference between YAML and YML. You might see .yml or .yaml as file extensions. Both indicate that the file contains YAML-formatted data. Both .yml and .yaml are acceptable file extensions, and there's no difference in functionality. It's generally a good practice to stay consistent with the file extension you choose for a given project. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "Y"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "Y"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-10-17-setting-up-your-first-github-action.md b/blog/2023/2023-10-17-setting-up-your-first-github-action.md index a32f0d3c..e74ac820 100644 --- a/blog/2023/2023-10-17-setting-up-your-first-github-action.md +++ b/blog/2023/2023-10-17-setting-up-your-first-github-action.md @@ -11,10 +11,10 @@ A couple of months ago, we launched the [Intro to Open Source Course](https://op - For many contributors, this is their first contribution to open source. The problem is that the course isn’t over. There are two more chapters of information in the course, but it feels like the course is over because the contributors have created a PR and navigated away from the initial repo. In an effort to bring them back to the course, I created a GitHub action to remind them that there’s more to learn. Here’s a step-by-step guide to how to create a GitHub action. ## Overview + Below are the steps in order. We’ll go in-depth later in the blog post. 1. Create a file in your repository for a GitHub Action. @@ -26,19 +26,21 @@ Below are the steps in order. We’ll go in-depth later in the blog post. Now, if that seems a little confusing, stick with me. We’ll go into practical application below to help you better understand and apply your knowledge. ## Creating a GitHub Action for Course Contributors -To create an effective action, I needed to guide the contributors who were taking the course back to the course. There needed to be some way to identify these contributors. Now, my solution isn’t perfect, but it’s good enough. At first, I was going to identify first-time contributors to the repository, but then I thought that contributors submitting documentation updates or other PRs that aren’t part of the coursework, would get this notification. -Since the focus of this part of the chapter was on having contributors add themselves to the repository, finding an indication of those contributors seemed like a better fit. I updated our [README](https://github.com/open-sauced/guestbook) to specifically ask contributors to put this in their PR: +To create an effective action, I needed to guide the contributors who were taking the course back to the course. There needed to be some way to identify these contributors. Now, my solution isn’t perfect, but it’s good enough. At first, I was going to identify first-time contributors to the repository, but then I thought that contributors submitting documentation updates or other PRs that aren’t part of the coursework, would get this notification. +Since the focus of this part of the chapter was on having contributors add themselves to the repository, finding an indication of those contributors seemed like a better fit. I updated our [README](https://github.com/open-sauced/guestbook) to specifically ask contributors to put this in their PR: ``` Go to your forked repository on GitHub and create a pull request with the title feat: add {GitHub username} as a contributor. ``` + This will be our `event trigger`. Once the action is created, if a PR says “as a contributor,” the action will run and leave them a comment directing them back to the course. Now we’re ready to set up our action. -### Pre-steps for your GitHub Action +### Pre-steps for your GitHub Action + 1. In the root of your repository, create a `.github` file if you don’t already have one. (If you’re looking at how our repository works, you’ll notice we have a CODEOWNERS file. If you’re interested in learning more about what that does, check out [this post](https://dev.to/opensauced/supercharge-your-repository-with-code-owners-4clg)t by my teammate.) 2. Within that folder, create a `workflows` folder. 3. In the `workflows` folder, create the file for the action with a `.yml` at the end. In our case, we’re calling it `intro_course_contributor.yml`. @@ -46,16 +48,19 @@ Now we’re ready to set up our action. Now, we’re going to get into the main part of the action and break it down piece by piece. ### Creating your GitHub Action + 1. First, start with a name for your action. Here’s what ours looks like: `name: Intro Course Contributor Action` 2. Create the event trigger. For us, we want this to be run on pull requests. This is what that will look like: + ``` - on: - pull_request: - types: [opened] + on: + pull_request: + types: [opened] ``` + 3. Now, we’ll create jobs. This includes a unique job_id, a designation of the type of machine to run the job on, and then moves on to the steps. ``` @@ -64,8 +69,8 @@ jobs: runs-on: ubuntu-latest steps: ``` -4. The steps are the actions we want to happen. So, if the contributor posts a PR with “as a contributor” in the title, then we want to respond with a comment that directs them back to the course. Here’s how we get that done: +4. The steps are the actions we want to happen. So, if the contributor posts a PR with “as a contributor” in the title, then we want to respond with a comment that directs them back to the course. Here’s how we get that done: ``` - name: Post comment for course contributors @@ -89,9 +94,11 @@ After pushing the changes, the GitHub Action will be available in your repositor For this example, every time a new pull request is opened in the `open-sauced/guestbook repository`, the GitHub Action will check if the PR title contains "as a contributor". If the conditions are met, the desired comment will be posted on the PR. ### Understanding GitHub Actions -Maybe you took a look at the last step and wondered what some of the information you were looking at meant. This section provides a closer look at that. + +Maybe you took a look at the last step and wondered what some of the information you were looking at meant. This section provides a closer look at that. Let’s break this down: + ``` curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -X POST -d "{\"body\":\"$PR_COMMENT\"}" "https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments" ``` @@ -105,18 +112,15 @@ Let’s break this down: > **GITHUB_TOKENS** GitHub provides a GITHUB_TOKEN for every repository, which is used to authenticate in GitHub Actions. It has permissions to perform common tasks, including reading PRs and posting comments. There's no need to create or provide the token manually. GitHub does it automatically for each run of your Actions. - - **-X POST**: The HTTP method to use. In this case, it's POST, which is used for sending data to create or update resources. -- **`-d "{\"body\":\"$PR_COMMENT\"}"`**: The data being sent with the POST request. `-d` specifies the data to send. +- **`-d "{\"body\":\"$PR_COMMENT\"}"`**: The data being sent with the POST request. `-d` specifies the data to send. -`"{\"body\":\"$PR_COMMENT\"}"` is a JSON payload where "body" is a key that represents the content of the comment. `$PR_COMMENT` is a variable that holds the message you want to post as the comment. In this case, our message points contributors back to the course. - **`"https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments"`**: This is the URL to which the request is sent. It's the endpoint of the GitHub API to post comments. `${{ github.repository }}` is a placeholder that represents the current repository in the format "owner/repo". `${{ github.event.pull_request.number }}` is another placeholder for the number of the pull request on which the comment is being posted. Now that it’s implemented, you can see it in action on our project. Once the contributor creates a PR with “as a contributor,” they’ll get a message that looks like this: - ![GitHub bot with message to course contributor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ok5mz7agn4hjoyxni449.png) - -If you have any questions or if you have a cool GitHub Action you want to share, drop them below. +If you have any questions or if you have a cool GitHub Action you want to share, drop them below. diff --git a/blog/2023/2023-10-18-open-source-abcs-zsh.md b/blog/2023/2023-10-18-open-source-abcs-zsh.md index ad2a54b4..913b97de 100644 --- a/blog/2023/2023-10-18-open-source-abcs-zsh.md +++ b/blog/2023/2023-10-18-open-source-abcs-zsh.md @@ -12,9 +12,8 @@ Today, we're covering the letter "Z." - - **Zsh**: Zsh, also known as the Z Shell, is an interactive login shell for Unix-like operating systems. It includes many features to improve productivity, such as advanced tab completion, spelling correction, and a flexible plugin and theming system. Zsh is often favored by developers for its customization capabilities and is commonly used in open source software development environments. -Now, we want to hear from you! What other OSS terms can you think of that start with the letter "Z"? +Now, we want to hear from you! What other OSS terms can you think of that start with the letter "Z"? -Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. \ No newline at end of file +Remember to use the hashtag #100DaysOfOSS if you share on social media, and don't forget to tag us [@saucedopen](https://twitter.com/saucedopen) so we can follow along. diff --git a/blog/2023/2023-10-31-github-actions-a-maintainers-best-friend.md b/blog/2023/2023-10-31-github-actions-a-maintainers-best-friend.md index 25c0354a..00e412ee 100644 --- a/blog/2023/2023-10-31-github-actions-a-maintainers-best-friend.md +++ b/blog/2023/2023-10-31-github-actions-a-maintainers-best-friend.md @@ -10,7 +10,6 @@ As developers, it’s in our best interest to automate things. The less we have - If you host your code on GitHub, besides scripts to automate certain actions, you can also leverage the huge ecosystem of [GitHub Actions](https://github.com/features/actions). diff --git a/blog/2023/2023-11-01-how-to-get-your-pull-request-reviewed.md b/blog/2023/2023-11-01-how-to-get-your-pull-request-reviewed.md index 792afea3..b6ec68bd 100644 --- a/blog/2023/2023-11-01-how-to-get-your-pull-request-reviewed.md +++ b/blog/2023/2023-11-01-how-to-get-your-pull-request-reviewed.md @@ -7,55 +7,54 @@ description: "Reading documentation, testing your contributions, and effectively --- -Sometimes, it can be hard to get your Pull Request (PR) reviewed, especially if there are a lot of other PRs ahead of yours. Maintainers can get busy, take some time off, or be overwhelmed with GitHub notifications. If you want to get your Pull Request reviewed, you need to make it easy for the maintainer to review your PR. How do you do that? +Sometimes, it can be hard to get your Pull Request (PR) reviewed, especially if there are a lot of other PRs ahead of yours. Maintainers can get busy, take some time off, or be overwhelmed with GitHub notifications. If you want to get your Pull Request reviewed, you need to make it easy for the maintainer to review your PR. How do you do that? - ## Prioritize Clarity + If the reviewer can look at your PR, commits, title, and additional information and understand the purpose of the work you've done, then it will be easier to review. For example, if your PR title is "made updates to docs," that doesn't give me a clear picture of what kind of updates, why it's important, and what I should be looking at. Instead, you might have something like "feat: Reorganize docs" to give a clearer understanding. As the reviewer goes through, they should likewise be able to find clear and frequent commit messages. [![Highlight of Reorganize docs](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/maw8hdb14e2qabhwcmvz.png)](https://app.opensauced.pizza/feed/724) - - ## Read the Docs -Almost every repository that’s actively looking for contributors has documentation about how to run the project and how to contribute to the project. I know that might sound like a lot of reading, but it saves maintainers time and energy when you follow the guidelines. Through the docs, you should learn how to run the project locally, the process for contributing, and what to expect as you contribute. + +Almost every repository that’s actively looking for contributors has documentation about how to run the project and how to contribute to the project. I know that might sound like a lot of reading, but it saves maintainers time and energy when you follow the guidelines. Through the docs, you should learn how to run the project locally, the process for contributing, and what to expect as you contribute. ## Test Your Work + Testing your changes locally ensures that you're submitting high-quality code or documentation updates. It helps catch any errors or issues that might happen and ensures you're delivering value to the project. ## Complete the PR Template -Many projects utilize GitHub PR templates to ensure they get the information they need to understand the context of the PR. You can check out [our PR template](https://github.com/open-sauced/.github/blob/main/.github/PULL_REQUEST_TEMPLATE.md) in our [.github repository](https://github.com/open-sauced/.github/). + +Many projects utilize GitHub PR templates to ensure they get the information they need to understand the context of the PR. You can check out [our PR template](https://github.com/open-sauced/.github/blob/main/.github/PULL_REQUEST_TEMPLATE.md) in our [.github repository](https://github.com/open-sauced/.github/). ![PR Template](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/az0lpzfcpkr2ii7616gv.png) ### Description -The description should explain what you’re submitting and give any necessary details. Each PR should focus on one task. For example, in [this PR](https://github.com/open-sauced/ai/pull/22#issuecomment-1515465694), Anush was updating the Extension Logo. That means all changes should be related to that change. Any unrelated changes should go in a different PR. Here’s an example of a clear and direct description: +The description should explain what you’re submitting and give any necessary details. Each PR should focus on one task. For example, in [this PR](https://github.com/open-sauced/ai/pull/22#issuecomment-1515465694), Anush was updating the Extension Logo. That means all changes should be related to that change. Any unrelated changes should go in a different PR. Here’s an example of a clear and direct description: ![This PR adds the AI PR description generation feature as suggested in #18. A new page is added to the extension dropdown to configure the description parameters. The text-generation is done using OpenAI's GPT-3.5 with the input context sourced from the code diff and/or the PR commits as configured by the user. The feature documentation will be added to https://opensauced.pizza/docs.](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u959rkuvmwehf44l7ebr.png) - ### Type of PR -Within our template, we include options for the type of PR. This helps maintainers quickly understand the impact of the PR as well as how much time they may need to review the PR. + +Within our template, we include options for the type of PR. This helps maintainers quickly understand the impact of the PR as well as how much time they may need to review the PR. ### Related Tickets & Documents + This is important. Some projects automatically reject unsolicited PRs from non-team members. That means if you have a PR that’s not related to an issue, they’ll close it without looking at it. If this is the case, start by creating an issue or finding the best way to communicate the change you want made to the maintainers. (This is a good time to go back to that contributing guide.) If this PR closes, resolves, or fixes an issue, include that in your reference. This is important because those words are special, reserved words. In the example below, once this PR is merged in, issue #18 will automatically close. This saves you and the maintainer time sorting through issues that have already been completed. - ![Associated PR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t2z270jfzry4ohbl6cqi.png) - - ### Mobile & Desktop Screenshots/Recordings -This shows the visual changes that have been made to make it easier for the maintainer to review. Rather than running the whole project to test an image change, they can check it out with your screenshots. -When you include screenshots and recordings, be sure to provide descriptions of what the reviewer is looking at and any necessary context. +This shows the visual changes that have been made to make it easier for the maintainer to review. Rather than running the whole project to test an image change, they can check it out with your screenshots. +When you include screenshots and recordings, be sure to provide descriptions of what the reviewer is looking at and any necessary context. ![screenshot with context](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fp3xqarepfq47ew1f2u1.png) @@ -64,6 +63,7 @@ Including a GIF is another helpful way to show what the PR accomplishes: ![gif of chrome extension](https://user-images.githubusercontent.com/46051506/238419198-f6434c6f-bb18-46cd-afe2-0126eb02a3cf.gif) ## Respond to PR Reviews + Many PRs won't get merged in on the first try. Maintainers will often review and provide comments for any necessary updates. Respond to the comments and make your updates in a timely manner -Open source projects set you up for success if you follow the documentation and contributing guidelines. Putting up a PR without taking the time to understand expectations is like baking a cake without reading the directions. You're not setting yourself up for success. Be clear, concise, and provide the necessary details your reviewer. \ No newline at end of file +Open source projects set you up for success if you follow the documentation and contributing guidelines. Putting up a PR without taking the time to understand expectations is like baking a cake without reading the directions. You're not setting yourself up for success. Be clear, concise, and provide the necessary details your reviewer. diff --git a/blog/2023/2023-11-07-a-complete-guide-to-getting-started-in-open-source.md b/blog/2023/2023-11-07-a-complete-guide-to-getting-started-in-open-source.md index 5712cab1..4ce95c38 100644 --- a/blog/2023/2023-11-07-a-complete-guide-to-getting-started-in-open-source.md +++ b/blog/2023/2023-11-07-a-complete-guide-to-getting-started-in-open-source.md @@ -14,31 +14,36 @@ I appreciated the openness and honesty, and it’s a sentiment that I’ve heard - ## Getting Started for Beginners -Not everyone getting started in open source is a beginner. I’ve talked to quite a few folks with a lot of experience who have never contributed to open source. I’d answer that question a different way. They likely won’t need to know how to learn how to fork, clone, commit, and create Pull Requests (PRs). + +Not everyone getting started in open source is a beginner. I’ve talked to quite a few folks with a lot of experience who have never contributed to open source. I’d answer that question a different way. They likely won’t need to know how to learn how to fork, clone, commit, and create Pull Requests (PRs). I keep a list of repositories that are good for beginners in this [insight page](https://app.opensauced.pizza/pages/BekahHW/655/repositories). -It’s worth noting that within that list, our [Intro to Open Source Course](https://opensauced.pizza/learn/#/) is a great +It’s worth noting that within that list, our [Intro to Open Source Course](https://opensauced.pizza/learn/#/) is a great (and free) way to learn more about open source and get your first contribution! ### Where Should I Start in Open Source? + - [Open Source Terminology 101: A Primer for New Contributors](https://dev.to/opensauced/open-source-terminology-101-a-primer-for-new-contributors-k46). Part of the challenge of getting started in open source is understanding the terminology. - [Choose Your Own Adventure in Open Source](https://dev.to/opensauced/choose-your-own-adventure-in-open-source-paths-to-success-167p). Before you work on your first contribution, I think it’s important to identify what you want to get out of your work in open source. Not everyone’s journey will look the same; it’s worth exploring what it will look like for you. ### Resources for Beginners + If you’re new to tech, and you need more support, here is a list of blog posts that will take you through the new contributor journey. If you want a shorter overview of how to get started with Open Source, check out my [Open Source 101: A Beginners Guide to Getting Started](https://opensauced.pizza/blog/open-source-101-a-beginner's-guide-to-getting-started). #### The Right Issue for You -- [How to Contribute to Open Source without Knowing How to Code: A guide with project suggestions](https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5). If you don’t know how to code or aren’t great at coding, that’s ok! There are issues out there for non-coders. + +- [How to Contribute to Open Source without Knowing How to Code: A guide with project suggestions](https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5). If you don’t know how to code or aren’t great at coding, that’s ok! There are issues out there for non-coders. - [Good First Issues Don’t Exist](https://opensauced.pizza/blog/good-first-issues-dont-exist). The best first issue is the one that you write yourself. - [How to Write a Good Issue: Tips for Effective Communication in Open Source](https://dev.to/opensauced/how-to-write-a-good-issue-tips-for-effective-communication-in-open-source-5443). Writing issues is a great way to get started in open source. ​​A good issue should have several key elements that help to clearly and concisely communicate the problem or suggestion. #### Git & Version Control + - [The Power of Git: A Guide to Collaborative Version Control](https://dev.to/opensauced/the-power-of-git-a-guide-to-collaborative-version-control-dl6) #### Pull Requests + - [Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success](https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9). It can be nervewracking to write your first PR. Understanding what goes into a PR can help you to gain confidence before you submit. - [What happens after you submit a PR to an Open Source Project?](https://dev.to/opensauced/what-happens-after-you-submit-a-pr-to-an-open-source-project-4ed1). Once you submit your PR, there’s a lot that needs to happen before it’s merged in. - [How to Get Your Pull Request Reviewed](https://dev.to/opensauced/how-to-get-your-pull-request-reviewed-kgd). Knowing the right process, following best practices, and prioritizing clarity can help you get your pull requests more quickly. @@ -47,9 +52,10 @@ If you’re new to tech, and you need more support, here is a list of blog posts - [Understanding Why Pull Requests Get Rejected in Open Source Projects](https://dev.to/opensauced/understanding-why-pull-requests-get-rejected-in-open-source-projects-1jd0). Not every PR gets accepted, and we need to look at that as a learning opportunity. Learn why they get rejected can help you get your next PR approved. ### Find Support + It can be scary doing something on your own. Having support can help you work through your challenges. + - [You Don’t Need a Mentor: Embracing the Power of Community](https://dev.to/opensauced/you-dont-need-a-mentor-embracing-the-power-of-community-1g3k). Sometimes new contributors get hung up on trying to find a mentor. Having community support can be even more beneficial. - [#100DaysOfOSS: Growing Skills and Real-World Experience](https://dev.to/opensauced/100daysofoss-growing-skills-and-real-world-experience-3o5k). Joining a campaign like #100DaysofOSS can help you to find direction, support, and a learning path. - If you’re new to open source, and don’t know where to start, it’s ok. There’s space for everyone. You don’t need all of these resources, but hopefully, you’ll find some of them useful. If you have any questions or you’d like to see a resource added to the list, let me know in the comments below. diff --git a/blog/2023/2023-11-14-boost-productivity-with-the-github-cli.md b/blog/2023/2023-11-14-boost-productivity-with-the-github-cli.md index 58276e5d..283d75d1 100644 --- a/blog/2023/2023-11-14-boost-productivity-with-the-github-cli.md +++ b/blog/2023/2023-11-14-boost-productivity-with-the-github-cli.md @@ -16,7 +16,6 @@ Let's get started! - ## Install the GitHub CLI Head on over to the [installation docs to get the GitHub CLI set up](https://cli.github.com/). There are installers for Linux, Windows, and macOS. diff --git a/blog/2023/2023-11-21-so-youre-interested-in-being-an-open-source-maintainer.md b/blog/2023/2023-11-21-so-youre-interested-in-being-an-open-source-maintainer.md index f25eb486..f9860886 100644 --- a/blog/2023/2023-11-21-so-youre-interested-in-being-an-open-source-maintainer.md +++ b/blog/2023/2023-11-21-so-youre-interested-in-being-an-open-source-maintainer.md @@ -11,11 +11,15 @@ A lot of contributors ask how to become a maintainer. I became a maintainer by c ## Understanding the Role of an Open Source Maintainer + Open source maintainers wear many important hats to ensure the health of the project. You are not just a contributor; you are a leader, mentor, strategist, marketer, community manager, and above all else, you should be a good communicator. ### The Multifaceted Role of an Open Source Maintainer + #### Leadership and Vision + Open source maintainers keep open source projects running smoothly. You set the project's direction, define goals, and ensure that everyone adheres to the project's core values. You also manage the code, build a community around the project, and ensure quality code. This isn’t to say that you should be an expert in all of these things, but you should be able to build on existing skills to accomplish the following: + - **Prioritize issues and manage pull requests.** This means deciding which issues are the most important to fix and then working with contributors to fix them. You also review pull requests, which are changes to the code that others have submitted, to make sure they are high quality and follow the project's coding standards. Not all pull requests will be code, though. Documentation updates could be the primary goal of the project or necessary updates that need to be made. - **Guide new contributors, provide feedback, and resolve conflicts.** Helping new people get started with the project, providing feedback on their PRs and issues, and resolving any conflicts between contributors could be one of your most important jobs as a maintainer. @@ -25,6 +29,7 @@ Open source maintainers keep open source projects running smoothly. You set the - **Ensure the reliability and stability of the project through testing, code reviews, and maintenance.** This means testing the code to make sure it works as expected, reviewing changes to the code to ensure they are high quality, and fixing any bugs that are found. You should take the time to run the code and test it manually, ensuring that you avoid merging in bugs or breaking changes. ### Governance + Governance is one of those words that you might hear people toss around a lot, but never explain. In open source, it means the framework of rules, practices, and processes that guide how decisions are made and how the project is managed and evolved. Governance can encompass everything from how contributions are accepted and integrated to how major decisions are made and conflicts are resolved. You have to maintain and ensure the established guidelines and standards for a project are met, and, depending on the stage of the project, you may also play a key role in shaping them. Because you should deeply understand the project's vision and goals, you also ensure they are consistently met by coordinating contributions, managing the project roadmap, and leading by example. @@ -32,6 +37,7 @@ You have to maintain and ensure the established guidelines and standards for a p Transparency is a key value of open source projects, so you should facilitate and encourage transparent and open communication. This allows for the voices of all contributors to be heard and valued. This allows for a resilient and engaged community to grow. ### Community Building + Fostering a welcoming and inclusive community, encouraging contributions, and engaging with users and contributors is one of the most important parts of creating a supportive environment that grows with the project. [Astro](https://github.com/withastro/astro) has one of the most highly regarded communities because of their willingness to support contributors, create a clear path for contributors, and encourage the growth of the community. @@ -40,13 +46,13 @@ Fostering a welcoming and inclusive community, encouraging contributions, and en Fostering a strong community means creating clear paths of communication, which starts with creating clear contribution guidelines, READMEs, opportunities for feedback, and ways to engage with the community. - ## Challenges and Benefits of Being a Maintainer Maintainership comes with its unique set of rewards and challenges. ### Challenges -####Time Management and Burnout for Open Source Maintainers + +#### Time Management and Burnout for Open Source Maintainers Open source maintainers often have to balance their project responsibilities with their personal commitments. This can be difficult, especially if the project is large or complex or you don’t have support. Especially for solo maintainers, the work can start to feel burdensome and even lead to burnout. You may also feel pressure to keep up with the latest changes in the tech, which can be time-consuming. Because open source maintainers are responsible for so many tasks, it frequently feels like there’s not enough time in the day to complete all your tasks, respond to comments, review PRs, and code the project. @@ -71,9 +77,9 @@ Open source projects are often maintained by a team of volunteers who are passio ### Benefits of Maintainership -Being a maintainer has its benefits, whether you’re early in your career or you’ve been in tech for a while. Frequently, the benefits outweigh the negatives and, in fact, navigating the challenges listed above are great ways to show grow and to build on your skillset. +Being a maintainer has its benefits, whether you’re early in your career or you’ve been in tech for a while. Frequently, the benefits outweigh the negatives and, in fact, navigating the challenges listed above are great ways to show grow and to build on your skillset. -#### Personal and Professional Growth +#### Personal and Professional Growth As I said earlier in this post, maintainers practice and develop leadership skills, and they do it in the open. That means as you grow as a leader, you’re growing in a way that maximizes your visibility. Some of the ways you can enhance your technical and leadership skills while fulfilling your maintainer responsibilities include: @@ -87,7 +93,7 @@ If you’re early in your career, this can be a practical way to grow with exter ### Networking Opportunities for Open Source Maintainers -Being an open source maintainers allows you to build connections with other developers, organizations, and potential employers in a way that you can’t replicate elsewhere. Being a maintainer, allows you to connect with other maintainers who understand the role's challenges. You may also find that you have additional access to groups, events, and communities made for maintainers. +Being an open source maintainers allows you to build connections with other developers, organizations, and potential employers in a way that you can’t replicate elsewhere. Being a maintainer, allows you to connect with other maintainers who understand the role's challenges. You may also find that you have additional access to groups, events, and communities made for maintainers. By building relationships with other developers and organizations, open source maintainers can learn from others, share your own expertise, and find opportunities for collaboration and even employment. @@ -100,6 +106,3 @@ Your project can have an impact on the open source ecosystem in a number of diff Depending on what you’re building, your software can have an impact on the landscape of open source. Are you building tools that other developers will benefit from? Are you innovating or experimenting with technology? Are you trying something new? Being a maintainer improved my understanding of building projects, working with contributors, making decisions, and being able to communicate. I honestly don’t think any course, bootcamp, or education could have given me the experience that allowed me to grow into the Developer Experience Lead today. If have experience as an open source contributor, becoming a maintainer can be a great way to advance to the next level of your career. It might be your own project, a project you’re working on with others, or one of the projects you’ve been contributing to. No matter what, that experience will be an invaluable learning experience. - - - diff --git a/blog/2023/2023-11-28-strategies-for-successful-contributor-onboarding.md b/blog/2023/2023-11-28-strategies-for-successful-contributor-onboarding.md index a69fb54e..f35b521f 100644 --- a/blog/2023/2023-11-28-strategies-for-successful-contributor-onboarding.md +++ b/blog/2023/2023-11-28-strategies-for-successful-contributor-onboarding.md @@ -10,12 +10,12 @@ Every week at 10:30a ET, I do X/Twitter spaces about open source. I’ve been fo - ## Identifying Contributors' Entry Points + When you’re creating a contributor’s journey, it’s important to recognize that not every contributor will have the same experience level. In fact, it’s kind of a [choose your own adventure](https://dev.to/opensauced/choose-your-own-adventure-in-open-source-paths-to-success-167p). So in some ways, you’re constructing multiple contributor paths that overlap in some areas. Three categories of contributors you can consider are new, intermediate, and expert: - New Contributors: New contributors, in this sense, are folks who are new to open source contributions. They might need guidance on basic concepts, like using Git, understanding open source licenses, and making their first pull request. It’s useful to have resources to point them to, especially if you don’t have the capacity to provide that support. -- Intermediate Contributors: Contributors who have some experience but want to deepen their engagement. They might be interested in more complex contributions, growing their network and skills, or becoming maintainers. +- Intermediate Contributors: Contributors who have some experience but want to deepen their engagement. They might be interested in more complex contributions, growing their network and skills, or becoming maintainers. - Expert Contributors: These are seasoned open source contributors who can contribute at a high level and potentially lead projects. Often, at this level, they are making contributions out of a need or because they’re interested in a project they use. For example, if they’re using a technology and identify a bug, they may need to ensure the bug is fixed quickly to implement it in their own project. At OpenSauced, we’ve been working to curate a contributor journey that allows for contributors to grow. We have repositories made for new contributors, like our [Intro Course](https://github.com/open-sauced/intro), [pizza-verse](https://github.com/open-sauced/docs), and [guestbook](https://github.com/open-sauced/guestbook). We also include `good first issue` labels on some of the issues in our `app`, which is generally geared towards someone leaving the new stage and entering the intermediate stage. In the same way, our [docs](https://github.com/open-sauced/docs) repo has a variety of issues open to different levels. And finally, there’s always space for our expert contributors across the repositories. @@ -28,19 +28,18 @@ One of the main challenges faced by open source projects is the lack of new cont Here are some of the ways you can provide effective onboarding: - 1. **Clear Documentation**. I think good onboarding always starts with clear documentation. This includes setup guides, contribution guidelines, code of conduct, and a README file that clearly explains the project's purpose. It’s worth noting that documentation should be written in a way that the largest number of contributors can understand. This means to use simple language, and to use examples that are as universal as possible to include non-native speakers. 2. **Welcoming Environment**. A good way to create a community culture that is welcoming and inclusive is to have a **Code of Conduct** that clearly states the expectations for how to treat other contributors with enforcement details when behavior is deemed inappropriate, have a **CONTRIBUTING.md** file that shares details about how to contribute to the projects in the organization’s ecosystem, and [acknowledge that contributions come in various forms](https://dev.to/opensauced/how-to-contribute-to-open-source-without-knowing-how-to-code-a-guide-with-project-suggestions-59e5), not just code. 3. **Regular Contributor Meetings**. Hold regular meetings or calls where contributors can discuss ongoing projects, share updates, and ask questions. This can help new contributors navigate the project and feel more connected to the community. This can come in different forms. At OpenSauced, we answer questions in our [Community](https://github.com/orgs/open-sauced/discussions/1). I’ve seen maintainers also have ten-minute slots open on their calendar for conversations with contributors. What’s important is that there’s a consistent and clear way for contributors to communicate with maintainers. -4. **Labeled Issues**. Labeling issues is a great way to help create a clear contributor path. Tag beginner-friendly issues as "good first issues" to help new contributors identify where they can start. These issues, in particular, should be well-documented and approachable. If there are issues that are just for the core team, add that as a label to avoid frustration as well. Think about labeling like this: how can I make it easier for contributors to find issues they can work on? +4. **Labeled Issues**. Labeling issues is a great way to help create a clear contributor path. Tag beginner-friendly issues as "good first issues" to help new contributors identify where they can start. These issues, in particular, should be well-documented and approachable. If there are issues that are just for the core team, add that as a label to avoid frustration as well. Think about labeling like this: how can I make it easier for contributors to find issues they can work on? 5. **Regular Communication**. Maintain regular communication channels like Slack, Discord, or forums. Because one of the tenets of open source work is to be open and transparent, encourage open discussions in those spaces as well as on issues and Pull Requests (PR). I’ve found that a lot of new contributors have a tendency to direct message questions, but I try to redirect them to the issue or PR they have a question about to promote open communication. This also decreases communication burdens being placed directly on the maintainer because open communication allows other contributors to respond as well. 6. **Feedback Mechanisms**. Create a system for providing constructive feedback on contributions. This can include code reviews, discussions on issue threads, or during office hours. 7. **Recognition**. Recognize contributions in various forms. Highlighting contributors in newsletters, social media, or on your platform can be a great way to show appreciation. Effective onboarding is more than just providing documentation and tutorials; It should be a deliberate effort to actively involve new contributors in the project's development and provide them with support. By investing time and resources into onboarding, projects can create a culture that values and encourages the growth and development of new contributors. -## Mentorship for New Contributors. +## Mentorship for New Contributors While there are communities that teach beginners how to get involved in open source, they often lack a clear path for growth and support beyond the entry level. Incorporating mentorship allows new contributors to receive the necessary support and value to develop into contributors and potentially core members of the project. @@ -48,7 +47,7 @@ Mentorship is one of those things that we usually know is valuable, but we have > Mentorship is a professional, working alliance in which individuals work together over time to support the personal and professional growth, development, and success of the relational partners through the provision of career and psychosocial support. - [The Science of Effective Mentorship in STEMM.](https://www.ncbi.nlm.nih.gov/books/NBK552775/) -Notice that this definition doesn’t require 1:1 meetings over a period of time. How can you provide support for an early-career contributor without meeting? One practical way is through documentation. If your documentation provides everything a contributor needs to get started, it’s an effective way to provide far more support than 1:1 meetings. It also provides an opportunity for questions and feedback between contributors and mentors in a way that allows everyone and the project to grow. +Notice that this definition doesn’t require 1:1 meetings over a period of time. How can you provide support for an early-career contributor without meeting? One practical way is through documentation. If your documentation provides everything a contributor needs to get started, it’s an effective way to provide far more support than 1:1 meetings. It also provides an opportunity for questions and feedback between contributors and mentors in a way that allows everyone and the project to grow. In addition to documentation and clear paths of communication, maintainers can identify tasks or features that are important but not urgent, and set them aside for new or early-career contributors. This allows new contributors to work on meaningful contributions while receiving guidance and feedback from the maintainer. Regular code reviews and mentorship sessions can help onboard and develop these contributors, ensuring a smooth transition and knowledge transfer. @@ -62,7 +61,7 @@ Every project will have different contributor needs. When you think about the co - Advocacy and Outreach: Writing blog posts, creating educational content, speaking at conferences, and promoting the project. - Issue Reporting and Management: Creating, triaging, and managing issues and feature requests. -Creating a journey for each of the three types of contributor paths means utilizing different types of contributions to help curate a journey that works for the most people, and also determining the amount of support you can give for each. So, for example, if you would like help with advocacy and outreach, but you don’t have time to mentor a new speaker, you shouldn’t include it in the path you construct. +Creating a journey for each of the three types of contributor paths means utilizing different types of contributions to help curate a journey that works for the most people, and also determining the amount of support you can give for each. So, for example, if you would like help with advocacy and outreach, but you don’t have time to mentor a new speaker, you shouldn’t include it in the path you construct. ### Identifying Potential Contributors @@ -72,4 +71,4 @@ Identifying potential contributors who could be mentored into core members can b Another way to identify potential contributors is by looking at open source animations projects to see who is actively contributing to the project's documentation. These individuals already have a good understanding of the project and have invested time in it. The ability to contribute to documentation is seen as a strong indicator of being a good enough engineer, as it requires a solid understanding of the project to explain it to others. -Creating a strong contributor journey means that you’ll need to periodically review the paths you’ve created to identify areas for improvement, updates, and to better understand your strengths. It’s worth noting that your contributor community will likely change over time, so being open to the changing needs and industry trends will help you to maintain a strong community. Finally, recognizing your contributors is an important part of the process as well. At OpenSauced, we’re doing a monthly shoutouts livestream, as well as highlighting our contributors' work in our newsletter and on social media. +Creating a strong contributor journey means that you’ll need to periodically review the paths you’ve created to identify areas for improvement, updates, and to better understand your strengths. It’s worth noting that your contributor community will likely change over time, so being open to the changing needs and industry trends will help you to maintain a strong community. Finally, recognizing your contributors is an important part of the process as well. At OpenSauced, we’re doing a monthly shoutouts livestream, as well as highlighting our contributors' work in our newsletter and on social media. diff --git a/blog/2023/2023-11-30-job-seekers-worksheet-build-your-resume-with-open-source.md b/blog/2023/2023-11-30-job-seekers-worksheet-build-your-resume-with-open-source.md index 5786ce3c..03e84c83 100644 --- a/blog/2023/2023-11-30-job-seekers-worksheet-build-your-resume-with-open-source.md +++ b/blog/2023/2023-11-30-job-seekers-worksheet-build-your-resume-with-open-source.md @@ -6,14 +6,13 @@ slug: job-seekers-worksheet-build-your-resume-with-open-source description: "If you're looking for a job and want to boost your resume and network, this worksheet can help you decide what to do next. " --- -Job seeking is really challenging, but if you've talked to me in the last six months and asked me how to find a job, you know that I've mentioned using open source. I know, I know. That can be an overwhelming experience. But hear me out if you're an early career developer. +Job seeking is really challenging, but if you've talked to me in the last six months and asked me how to find a job, you know that I've mentioned using open source. I know, I know. That can be an overwhelming experience. But hear me out if you're an early career developer. +Contributing to open source allows you to grow your skills in a way that nothing else can. You work with a team, have a proven record of communication with maintainers, show off your code, and developer real and practical skills. Yes, I've built a to-do list too, but chances are you're not going to be a solo-coder building CRUD apps. Exploring existing codebases, taking notes, and contributing will get you far more experience. -Contributing to open source allows you to grow your skills in a way that nothing else can. You work with a team, have a proven record of communication with maintainers, show off your code, and developer real and practical skills. Yes, I've built a to-do list too, but chances are you're not going to be a solo-coder building CRUD apps. Exploring existing codebases, taking notes, and contributing will get you far more experience. - -Will you have to go out of your comfort zone? Probably. But that's something you're going to have to get comfortable with if you want to be a developer. I can tell you from experience that you should **not** wait until you land the job to get comfortable with getting out of your comfort zone. It's your new reality if you want a tech career. And if you've been comfortable for a while, it's probably time to push yourself a little harder. +Will you have to go out of your comfort zone? Probably. But that's something you're going to have to get comfortable with if you want to be a developer. I can tell you from experience that you should **not** wait until you land the job to get comfortable with getting out of your comfort zone. It's your new reality if you want a tech career. And if you've been comfortable for a while, it's probably time to push yourself a little harder. It's worth mentioning that I don't recommend just YOLO-ing across open source projects. A strategic approach will help you to grow and network efficiently; and if there's anything I've learned from the last four years in tech, it's that efficiency rules. diff --git a/blog/2023/2023-11-30-what-to-do-when-your-pr-fails.md b/blog/2023/2023-11-30-what-to-do-when-your-pr-fails.md index e56674ff..f0738ed8 100644 --- a/blog/2023/2023-11-30-what-to-do-when-your-pr-fails.md +++ b/blog/2023/2023-11-30-what-to-do-when-your-pr-fails.md @@ -10,12 +10,12 @@ Yesterday, I decided to make some "quick" changes to the OpenSauced docs site. N - ## Checking Locally -The first step to make sure your PR hasn't broken anything is to run the project locally and visually check the pages of the changes you've made. Initially, I had forgotten to include a set of `---` at the top of my markdown file. This is necessary to separate the frontmatter that gives directions to how to display the documentation from the words we want displayed on the page. +The first step to make sure your PR hasn't broken anything is to run the project locally and visually check the pages of the changes you've made. Initially, I had forgotten to include a set of `---` at the top of my markdown file. This is necessary to separate the frontmatter that gives directions to how to display the documentation from the words we want displayed on the page. This is what the file **should** look like at the top. + ``` --- id: opensauced-intro @@ -33,7 +33,6 @@ OpenSauced is a platform dedicated to nurturing and expanding your open source c Notice that the `sidebar_label` is 'What is OpenSauced?' Now, let's take a look at how this rendered when I was missing the `---`: - ![broken display of page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m3b40zlqjx8pqaq7cbb2.png) There are two things that should clue us into the mistake I made here: @@ -43,16 +42,15 @@ There are two things that should clue us into the mistake I made here: I added the `---` back in and it fixed the first problem. -But even though we ran things locally and double-checked our work visually, made the updates, and pushed them live, we're still seeing errors. +But even though we ran things locally and double-checked our work visually, made the updates, and pushed them live, we're still seeing errors. On to the next check: Compliance. ## Compliance -At OpenSauced, we make sure that each PR follows compliance checks run by a GitHub Action. This [compliance action](https://github.com/open-sauced/hot/blob/beta/.github/workflows/compliance.yml) helps us to maintain the quality and organization of contributions to the repository by ensuring that pull requests follow semantic naming conventions and adhere to contribution guidelines. - -For example, we use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/), which requires a specific naming convention. This means that each PR title should be preceded by a type and colon. For example, `feat: Add User Login`. If you don't follow the conventions, this part of the PR will fail and will be indicated. +At OpenSauced, we make sure that each PR follows compliance checks run by a GitHub Action. This [compliance action](https://github.com/open-sauced/hot/blob/beta/.github/workflows/compliance.yml) helps us to maintain the quality and organization of contributions to the repository by ensuring that pull requests follow semantic naming conventions and adhere to contribution guidelines. +For example, we use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/), which requires a specific naming convention. This means that each PR title should be preceded by a type and colon. For example, `feat: Add User Login`. If you don't follow the conventions, this part of the PR will fail and will be indicated. ![Image of a failed conventional commit test](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i74mrmgdan7darwrw9vj.png) @@ -60,11 +58,11 @@ Once I made sure that my compliance checks had passed, I moved on to the Netlify ## Netlify Deploy Logs -Even from the list view, we can tell that something isn't working with this PR. +Even from the list view, we can tell that something isn't working with this PR. ![failing PR](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g8ynr5iuiizj3g960yh3.png) -When I scroll to the bottom of my PR, I can see more information about where my PR has failed. In this case, we can see the red early. +When I scroll to the bottom of my PR, I can see more information about where my PR has failed. In this case, we can see the red early. ![gif of the scroll](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bl4ue1swhjbr1zvg7438.png) @@ -72,7 +70,7 @@ From there, we can click the `details` for more information. ![screen after details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1tqv2w8acizi1e2zx52x.png) -Now, let's click the link in "Please check the logs." +Now, let's click the link in "Please check the logs." Next, we'll see this screen: @@ -82,26 +80,18 @@ We're almost to the information we need. We're failing at the building stage, so ![Error messages](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/asxqt1ouk43q6m5qf6c1.png) -Finally! Now, we just need to spend a little time looking through the messages. I'm going to give you a second to look at the error message and see if you can figure it out. +Finally! Now, we just need to spend a little time looking through the messages. I'm going to give you a second to look at the error message and see if you can figure it out. 🤔 - 🤔 - 🤔 - 🤔 - 🤔 If you said that the links are broken, then you're right! When I reorganized the documentation, I forgot that I also needed to update the links to the new sections. A couple of changes to this, and we're ready to go. Some of these are things that you might already know, but maybe you've never gone through the process of checking deploy logs or aren't sure how to approach fixing a broken PR. Here's the thing, it used to make me super uncomfortable to see all that red and to feel like I did something wrong. I made some mistakes here, but nothing that isn't fixable. And getting used to the process of not getting it right the first time is an important skill in tech. You refine your process and you get more efficient. So, next time you see that red :x:, don't panic. Think of it as an opportunity to learn and a reminder for what you can do next time. - - - - diff --git a/blog/2023/2023-12-05-so-what-does-a-maintainer-do-anyway.md b/blog/2023/2023-12-05-so-what-does-a-maintainer-do-anyway.md index ce2d13ab..bea184e3 100644 --- a/blog/2023/2023-12-05-so-what-does-a-maintainer-do-anyway.md +++ b/blog/2023/2023-12-05-so-what-does-a-maintainer-do-anyway.md @@ -6,27 +6,28 @@ slug: so-what-does-a-maintainer-do-anyway description: "What are the day-to-day tasks of a maintainer? What are things you need to get started versus things that would be good to implement in the future? " --- -So far in [this series](https://dev.to/bekahhw/series/25520), we’ve explored maintainership from a high level understanding of what’s required, why you should consider it, and how to get started. But what are the day-to-day tasks of a maintainer? +So far in [this series](https://dev.to/bekahhw/series/25520), we’ve explored maintainership from a high level understanding of what’s required, why you should consider it, and how to get started. But what are the day-to-day tasks of a maintainer? -The first project I actively maintained was something that I hadn’t initially considered for open source contributions. It was open sourced, but I didn’t anticipate anyone contributing but me. When I was encouraged to share it with contributors during Hacktoberfest a couple of years ago, I had to make some updates so people understood what the purpose of the project was, how to run it, and the technology behind it. Looking back at it, there are, of course, things I could have added or done differently. +The first project I actively maintained was something that I hadn’t initially considered for open source contributions. It was open sourced, but I didn’t anticipate anyone contributing but me. When I was encouraged to share it with contributors during Hacktoberfest a couple of years ago, I had to make some updates so people understood what the purpose of the project was, how to run it, and the technology behind it. Looking back at it, there are, of course, things I could have added or done differently. But I think it’s ok to think of putting a Minimum Viable Project (MVP) out there without all the extras that some other projects have. That’s why, in the post below, you’ll see two sets of bullet points for each category. The first is things that are good to have for your project when you start. The second is something you can progress to. ## Code Review and Quality Control + ### Basics - **Understanding Basic Coding Standards**: These are rules or guidelines about how to write code for your project. They can include coding style, best practices, and how to structure code. You communicate these standards to new contributors usually through a document in your project repository, often named CONTRIBUTING.md. At OpenSauced, we have a [Contributing section](https://opensauced.pizza/docs/contributing/introduction-to-contributing/) in our docs to help explain how new contributors can get started. - **Conducting a PR Review**: When a contributor submits a Pull Request (PR), you need to check if their code follows your project’s standards and if it works well with existing code. This involves reading the code changes, understanding what they do, and testing them in your local environment. If the new code doesn't work well, you provide feedback to the contributor, suggesting necessary changes. You can find out more about PRs in these blog posts: - - [How to Get Your Pull Request Reviewed](https://dev.to/opensauced/how-to-get-your-pull-request-reviewed-kgd) - - [Understanding Why Pull Requests Get Rejected in Open Source Projects](https://dev.to/opensauced/understanding-why-pull-requests-get-rejected-in-open-source-projects-1jd0) + - [How to Get Your Pull Request Reviewed](https://dev.to/opensauced/how-to-get-your-pull-request-reviewed-kgd) + - [Understanding Why Pull Requests Get Rejected in Open Source Projects](https://dev.to/opensauced/understanding-why-pull-requests-get-rejected-in-open-source-projects-1jd0) ### Progression - **Using GitHub Actions**: GitHub (GH) Actions are automated tasks that can help you test code, enforce standards, and manage workflows. They are useful because they can automatically perform tasks that you'd otherwise do manually, saving time and reducing errors. Check out [Setting up your first GitHub Action](https://dev.to/opensauced/setting-up-your-first-github-action-for-specific-contributions-33a4) if you want to learn more. -One way to use them is for automated testing. For example, every time someone submits a PR, GitHub Actions could run a series of tests to check if the new code breaks anything. If a test fails, the PR can't be merged until the issue is fixed, ensuring that only working code is added to your project. I recently was able to determine why my PR failed by tracing information in the automated testing. You can check out how in my post [What to do when your PR fails](https://dev.to/opensauced/what-to-do-when-your-pr-fails-bl1). +One way to use them is for automated testing. For example, every time someone submits a PR, GitHub Actions could run a series of tests to check if the new code breaks anything. If a test fails, the PR can't be merged until the issue is fixed, ensuring that only working code is added to your project. I recently was able to determine why my PR failed by tracing information in the automated testing. You can check out how in my post [What to do when your PR fails](https://dev.to/opensauced/what-to-do-when-your-pr-fails-bl1). ## Testing and Stability @@ -57,6 +58,7 @@ One way to use them is for automated testing. For example, every time someone su ## Operational Best Practices ### Basics + - **Using Version Control**: Tools like Git help you track changes to your code. Start by [learning the basics of Git](https://dev.to/opensauced/the-power-of-git-a-guide-to-collaborative-version-control-dl6), like committing changes and creating branches. ### Progression @@ -72,6 +74,7 @@ One way to use them is for automated testing. For example, every time someone su - **Encouraging Participation**: Regularly engage with your community by answering questions, providing updates, and seeking feedback on the project's direction. ### Progression + - **Organizing Online Events**: As your community grows, consider holding office hours, livestreams, hackathons, or contribution days to increase engagement and collaboration. Now you have five tasks to complete to get started as a maintainer. Remember, it’s not about being perfect. It’s about learning and growing with your project. If you're enjoying this series and are interested in becoming a maintainer, we're happy to share that we're going to be launching a Becoming a Maintainer Course in the next couple of months. For updates on when and where to find that, you can [sign up for our newsletter](https://news.opensauced.pizza/?v=1701706051337#/portal/signup). diff --git a/blog/2023/2023-12-14-migrating-from-jest-to-vitest-for-your-react-application.md b/blog/2023/2023-12-14-migrating-from-jest-to-vitest-for-your-react-application.md index 5ada786e..ce378afa 100644 --- a/blog/2023/2023-12-14-migrating-from-jest-to-vitest-for-your-react-application.md +++ b/blog/2023/2023-12-14-migrating-from-jest-to-vitest-for-your-react-application.md @@ -12,7 +12,6 @@ I recently migrated the OpenSauced app repository to Vitest. Here's the pull req - https://github.com/open-sauced/app/pull/2296 ## Why move from Jest to Vitest? diff --git a/blog/2024/2024-01-09-take-the-first-step-the-open-source-game.md b/blog/2024/2024-01-09-take-the-first-step-the-open-source-game.md index cfca383a..4f5ee48f 100644 --- a/blog/2024/2024-01-09-take-the-first-step-the-open-source-game.md +++ b/blog/2024/2024-01-09-take-the-first-step-the-open-source-game.md @@ -6,7 +6,7 @@ slug: take-the-first-step-the-open-source-game description: "Getting started in open source is like learning a strategy game. It takes time to get started, but if you start small, you'll make progress." --- -There's been a lot of talk recently about how to get into open source. I think part of the challenge of breaking into open source is overthinking it. +There's been a lot of talk recently about how to get into open source. I think part of the challenge of breaking into open source is overthinking it. [https://x.com/BekahHW/status/1742920548353745068?s=20](https://x.com/BekahHW/status/1742920548353745068?s=20) @@ -14,16 +14,12 @@ We need to reframe how we think about starting with contributing. Getting starte - ## Step 1: Reading the Rulebook (Understanding Basics) Think of it like mastering a new strategy board game. First, you'd read the rules and understand the basic mechanics. In open source, this is like reading the project's README or CONTRIBUTING files. The rulebook guides you on how to play the game, and these files provide share specifics on how to get started, what's expected, and how to contribute effectively. - [![open source repos for beginners](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jm20g8x7wy774y0hb52y.png)](https://app.opensauced.pizza/pages/BekahHW/655/dashboard) - - ## Step 2: Setting Up the Board (Environment Setup) Next, you'd set up the board, making sure everything is in place. In open source, this means setting up your environment – installing the project, configuring your development setup, and ensuring everything is in place and working as expected. It's like correctly placing all the pieces on the board, so you can play the right way. diff --git a/blog/2024/2024-01-23-the-native-browser-dialog-element.md b/blog/2024/2024-01-23-the-native-browser-dialog-element.md index 27456c67..e4b4142d 100644 --- a/blog/2024/2024-01-23-the-native-browser-dialog-element.md +++ b/blog/2024/2024-01-23-the-native-browser-dialog-element.md @@ -10,7 +10,6 @@ All the major browsers now support the `<dialog%gt;` element. Why add this HT - ## Focus Trapping What is focus trapping? It's a feature where you do not want focus outside a specific element, and that element typically contains focusable elements. diff --git a/blog/2024/2024-02-01-game-development-and-multimedia-godot-engine-a-game-changer-in-game-development.md b/blog/2024/2024-02-01-game-development-and-multimedia-godot-engine-a-game-changer-in-game-development.md index 3b326dee..4b883144 100644 --- a/blog/2024/2024-02-01-game-development-and-multimedia-godot-engine-a-game-changer-in-game-development.md +++ b/blog/2024/2024-02-01-game-development-and-multimedia-godot-engine-a-game-changer-in-game-development.md @@ -6,18 +6,17 @@ slug: game-development-and-multimedia-godot-engine-a-game-changer-in-game-develo description: "Discover Godot Engine, a free and open source game development platform. Learn about its powerful 2D and 3D capabilities, user-friendly interface, and amazing community." --- -*Today starts my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my [list of open source games](https://oss.fyi/oss-games).* +*Today starts my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my [list of open source games](https://oss.fyi/oss-games).*
-Last year, we decided to homeschool my 13 year old for a semester. When he told me that he was really interested in game development, I installed all things Unity and tried to get him up and running. +Last year, we decided to homeschool my 13 year old for a semester. When he told me that he was really interested in game development, I installed all things Unity and tried to get him up and running. -Narrator: *we never got things up in running.* +Narrator: *we never got things up in running.* - -We navigated a lot of error messages, challenges, and finally gave up with disappointment. Fast forward six months and I started to hear more and more good things about Godot. Full disclosure: we haven't gotten anything up and running (yet), but we've been navigating a new landscape of game development that has long been dominated by proprietary engines. +We navigated a lot of error messages, challenges, and finally gave up with disappointment. Fast forward six months and I started to hear more and more good things about Godot. Full disclosure: we haven't gotten anything up and running (yet), but we've been navigating a new landscape of game development that has long been dominated by proprietary engines. > Godot is a free and open source, cross-platform game engine that allows you to create both 2D and 3D games. @@ -65,24 +64,21 @@ It's worth noting that Godot's star-to-fork ratio is one of the highest that I'v ### Building a Community in Game Development with Godot -Behind every great product is a great community, and Godot is no exception. +Behind every great product is a great community, and Godot is no exception. [![Contributor Graph](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bf95k3goycp3h7kdd4re.png)](https://app.opensauced.pizza/pages/BekahHW/1142/activity?range=30) The engine is supported by an active and welcoming community of developers and enthusiasts. Newcomers to Godot will find in-depth resources, from comprehensive documentation and tutorials to active forums and community groups. This collaborative environment not only helps in troubleshooting and learning but also fosters a sense of belonging and mutual growth. Whether you're a seasoned game developer or a hobbyist, the Godot community is a valuable resource for expanding your skills and connecting with enthusiastic developers. - ![Godot Contributors](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1uke1igzq6disn7fsd21.png) - ## The Evolving Landscape of Godot: Future Developments and Enhancements Godot is constantly evolving, with regular updates and enhancements that keep it at the cutting edge of game development technology. The development team is committed to improving and expanding the engine, ensuring it meets the growing and changing needs of the game development community. This commitment to continuous development means that investing time and effort in learning Godot is an investment in a platform that grows with you, adapting to future trends and technologies in the gaming industry. - ## Starting Your Game Development Journey with Godot -Godot allows you to step into a world where your creativity is the limit. With its user-friendly interface, robust feature set, and supportive community, Godot is a great platform for anyone looking to break into game development or to find an alternative to proprietary engines. +Godot allows you to step into a world where your creativity is the limit. With its user-friendly interface, robust feature set, and supportive community, Godot is a great platform for anyone looking to break into game development or to find an alternative to proprietary engines. | Feature | Godot | Unity | Unreal Engine | |---------------------------------|--------------------------------------------|--------------------------------------------------------|-------------------------------------------------------| diff --git a/blog/2024/2024-02-02-game-development-and-multimedia-theatrejs-unleashing-creativity-in-animation-and-motion-design.md b/blog/2024/2024-02-02-game-development-and-multimedia-theatrejs-unleashing-creativity-in-animation-and-motion-design.md index a6a7c5a8..ca2f0aa3 100644 --- a/blog/2024/2024-02-02-game-development-and-multimedia-theatrejs-unleashing-creativity-in-animation-and-motion-design.md +++ b/blog/2024/2024-02-02-game-development-and-multimedia-theatrejs-unleashing-creativity-in-animation-and-motion-design.md @@ -7,28 +7,26 @@ description: "Want to learn more about theatre.js, the open source animation too --- -**Today is day 2 of 29 Days of Open Source Alternatives, and in this short week of February, we're covering Game Development and Multimedia. If you'd like to see more open source games, you can check out my [OSS Games Page](https://oss.fyi/oss-games). ** +**Today is day 2 of 29 Days of Open Source Alternatives, and in this short week of February, we're covering Game Development and Multimedia. If you'd like to see more open source games, you can check out my [OSS Games Page](https://oss.fyi/oss-games).** Before coming into tech, I spent a lot more time writing and working creatively, mostly writing screenplay or tv pilot specs. It's always been my dreams to see my stories come alive on screen. You know that crane shot you see in the most epic of all scenes in action movies? That has always been my dream. - You know, like this one. ![epic LOTR crane shot](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExaGI2a2pvOXkzbHM1Ymx3NGNmNmFlanU2dXprcWVyZG12ZnVvd3d5YyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/a8BQ6RJjLoUPS/giphy.gif) I knew I could do the writing, but I never thought I could build the crane shot myself. But I should've know, there's power in tech and power to enable myself to make my dreams come true. -When I stumbled across theatre.js, and I needed to know more. +When I stumbled across theatre.js, and I needed to know more. > Theatre.js is a javascript animation library with a professional motion design toolset. It helps you create any animation, from cinematic scenes in THREE.js, to delightful UI interactions. -Theatre.js is like a superpower for boosting your creativity. It's open, friendly, and lets you bring your animation ideas to life. You can make things spin, bounce, fly, and change those colors without writing tons of code. You can even implement that dream of mine: the crane shot. +Theatre.js is like a superpower for boosting your creativity. It's open, friendly, and lets you bring your animation ideas to life. You can make things spin, bounce, fly, and change those colors without writing tons of code. You can even implement that dream of mine: the crane shot. [https://github.com/theatre-js/theatre](https://github.com/theatre-js/theatre) - ## Features - **Intuitive Timeline Editor**: Allows precise control over animation sequences. @@ -37,7 +35,6 @@ Theatre.js is like a superpower for boosting your creativity. It's open, friendl - **High Performance**: Optimized for smooth and complex animations. - **JavaScript and TypeScript Support**: Offers flexibility in development. - ![theatre.js overview page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jwukwce1nyjqn93ewsl6.png) Ok, so all those features might all seem vague, but I was able to get their [THREE.js starter project](https://www.theatrejs.com/docs/latest/getting-started/with-three-js) up and running pretty quickly. This is what it looked like: @@ -59,10 +56,11 @@ Comparing Theatre.js with popular proprietary animation tools like Adobe After E ## Open Source Support & Popularity -Although the stars tell a story of excitement, jumping high from 2022 until now, the contributions tell a different story, with only three contributors over the last 30 days. +Although the stars tell a story of excitement, jumping high from 2022 until now, the contributions tell a different story, with only three contributors over the last 30 days. ⭐ 10.3k 👀 115 + - Forks: 323 - License: Apache-2.0 @@ -74,4 +72,4 @@ The nice thing about theatre.js is that it works with any front-end framework. I If you've made something with theatre.js, I'd love to see it. Please drop it in the comments below. -If you enjoyed this post, check out some of the other open source projects we're covering in [29 Days of Open Source Alternatives](https://oss.fyi/oss-alts) during the month of February, and let me know if there are any you'd like to see on the list. \ No newline at end of file +If you enjoyed this post, check out some of the other open source projects we're covering in [29 Days of Open Source Alternatives](https://oss.fyi/oss-alts) during the month of February, and let me know if there are any you'd like to see on the list. diff --git a/blog/2024/2024-02-03-game-development-and-multimedia-audacity-the-sound-of-creativity.md b/blog/2024/2024-02-03-game-development-and-multimedia-audacity-the-sound-of-creativity.md index cb7cb3ea..f392ddb8 100644 --- a/blog/2024/2024-02-03-game-development-and-multimedia-audacity-the-sound-of-creativity.md +++ b/blog/2024/2024-02-03-game-development-and-multimedia-audacity-the-sound-of-creativity.md @@ -12,10 +12,9 @@ I haven't used Audacity myself, but anytime I ask a content creator what tools t - (Sidenote: I may even be related to someone who used to record rap songs using Audacity when they were in college. (Unfortunately, those are all hidden in a vault somewhere for us to never hear.) But if you have your old songs that you've edited in Audacity, please, please drop them in the comments for us to enjoy.) -> Audacity is the world’s most popular free software for recording and editing audio. So if you're producing music, a podcast, or just playing around with audio, Audacity is for you. +> Audacity is the world’s most popular free software for recording and editing audio. So if you're producing music, a podcast, or just playing around with audio, Audacity is for you. ![audacity gif](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExM3lyZWlwbzBmcnRlbjduZGN4cTZjdXpoczU1c3oxeThrNnlveTV1byZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/26n5ZZfTd3cBLoj2E/giphy.gif) @@ -34,6 +33,7 @@ From what I've heard, Audacity is like a magic wand for your audio files. With i ⭐ 10.8k 👀 264 + - Forks: 2.2k - License: GPLv3 @@ -41,10 +41,8 @@ Although they've only had 11 contributors to their main repository in the last 3 [![Contributor Chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tpb369j8bbcfryqie2yj.png)](https://app.opensauced.pizza/pages/BekahHW/1171/activity?range=30) - ## Comparison with Proprietary Software - | Feature | Audacity (Free) | Adobe Audition (Subscription/Creative Cloud) | Logic Pro (One-time purchase) | |----------------------------------|--------------------------------------------------|----------------------------------------------|------------------------------------| | Cost | Free | Monthly/yearly subscription or Creative Cloud| One-time purchase | @@ -64,11 +62,11 @@ Although they've only had 11 contributors to their main repository in the last 3 | Customer Support | Online community forums and tutorials | Paid customer support | Paid customer support | | Platform | Windows, macOS, Linux | Windows, macOS | macOS | -Something else worth noting is the recent announcement that OpenVINO AI is available for an Audacity plugin now, which enables noise suppression, transcription, Music generation and remix, and music separation. +Something else worth noting is the recent announcement that OpenVINO AI is available for an Audacity plugin now, which enables noise suppression, transcription, Music generation and remix, and music separation. ## Pros and Cons for Game Developers and Multimedia Creators -### Pros: +### Pros - **Free and open-source**: You can download and use Audacity free for any purpose, including commercial use, without subscriptions or license fees. This makes it a great option for individuals, small studios, and educational institutions. - **Intuitive interface and simple learning curve**: Audacity's interface is known to be user-friendly and easy to navigate. Basic recording, cutting, and editing functions are straightforward. @@ -77,12 +75,12 @@ Something else worth noting is the recent announcement that OpenVINO AI is avail - **Cross-platform compatibility**: Whether you work on Windows, macOS, or Linux, Audacity runs smoothly on various operating systems, offering flexibility and accessibility. - **OpenVINO AI plugin**: This recent addition unlocks exciting possibilities like noise suppression, voice transcription, music generation and remixing, and music separation, potentially streamlining specific development tasks. -### Cons: +### Cons -- **Limited advanced features**: While Audacity is great in basic editing and manipulation, it lacks some advanced features found in professional audio editors. +- **Limited advanced features**: While Audacity is great in basic editing and manipulation, it lacks some advanced features found in professional audio editors. - **Steeper learning curve for advanced features**: While the basics are easy to grasp, mastering some of Audacity's advanced features and plugins can require effort and additional learning resources. - **Limited customer support**: As an open-source project, Audacity relies primarily on online communities and tutorials for support. While they provide a lot of resources, direct technical assistance from developers might be unavailable. -- **Potential stability issues**: Some users report occasional crashes or unexpected behavior, particularly when working with large files or complex projects. +- **Potential stability issues**: Some users report occasional crashes or unexpected behavior, particularly when working with large files or complex projects. ## Takeaways diff --git a/blog/2024/2024-02-04-development-tools-and-platforms-open-source-saas-and-boxyhq.md b/blog/2024/2024-02-04-development-tools-and-platforms-open-source-saas-and-boxyhq.md index 40078381..632e7fb6 100644 --- a/blog/2024/2024-02-04-development-tools-and-platforms-open-source-saas-and-boxyhq.md +++ b/blog/2024/2024-02-04-development-tools-and-platforms-open-source-saas-and-boxyhq.md @@ -10,11 +10,10 @@ description: "SaaS, open source, and a spotlight on BoxyHQ. How do you decide if
-We've seen a rise in popularity for Software as a Service (SaaS) tools because of their convenience and flexibility, often handling the management of software distribution, maintenance, and feature development for their users. In fact, you're probably using a SaaS product whether you know it or not. Examples of SaaS dev tools include code editors, project management software, collaboration platforms, and more. +We've seen a rise in popularity for Software as a Service (SaaS) tools because of their convenience and flexibility, often handling the management of software distribution, maintenance, and feature development for their users. In fact, you're probably using a SaaS product whether you know it or not. Examples of SaaS dev tools include code editors, project management software, collaboration platforms, and more. - Because open source SaaS products allow access to the source code, they offer more opportunities for transparency, control, to provide feedback, and fix any problems that may come up. If you're thinking about using an open source SaaS v. propriety software, here are some advantages offered by open source: - **Security and Trust**: With open source code, the community can create bug reports and improve the software, leading to a more secure and reliable product. This also fosters a sense of trust and confidence, especially for organizations handling sensitive data. @@ -31,7 +30,7 @@ Let's take a look at a specific SaaS product right now and apply some of this kn ## Spotlight: BoxyHQ -You may have heard of Okta or WorkOS, but have you heard of BoxyHQ? [BoxyHQ](https://github.com/boxyhq) is an open source alternative with SSO and user management that offers enterprise-grade security features without the cost and more transparency. +You may have heard of Okta or WorkOS, but have you heard of BoxyHQ? [BoxyHQ](https://github.com/boxyhq) is an open source alternative with SSO and user management that offers enterprise-grade security features without the cost and more transparency. > BoxyHQ’s suite of APIs for security and privacy helps engineering teams build and ship compliant cloud applications faster. Integrate Single Sign-On (SSO), Audit Logs, Privacy Vault and Role Based Access in minutes. Open source and free. @@ -53,13 +52,14 @@ In addition to supporting essential security needs, BoxyHQ offers additional fun ## Open Source Support -BoxyHQ is a little different than the last projects we looked at in this series because they offer different products. We’ll take a look at their top two repositories, [Jackson](https://github.com/boxyhq/jackson)-an open sourced SAML solution that channels the power of SAM L Jackson-and [SaaS Starter Kit](https://github.com/boxyhq/saas-starter-kit). +BoxyHQ is a little different than the last projects we looked at in this series because they offer different products. We’ll take a look at their top two repositories, [Jackson](https://github.com/boxyhq/jackson)-an open sourced SAML solution that channels the power of SAM L Jackson-and [SaaS Starter Kit](https://github.com/boxyhq/saas-starter-kit). + - ⭐ 2,768 - 👀 36 - **Forks**: 374 - **License**: Apache-2.0 -![samuel l jackson gif](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExa3J1ZjY0cjEyaDVqODM3cHBmMmEzcHF4MDE1eWZveWVjbjhuOG9rZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/4Y9Wh0l3FKFQ6hL0L3/giphy.gif) +![samuel l jackson gif](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExa3J1ZjY0cjEyaDVqODM3cHBmMmEzcHF4MDE1eWZveWVjbjhuOG9rZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/4Y9Wh0l3FKFQ6hL0L3/giphy.gif) ### The Open Source Community @@ -71,7 +71,6 @@ Of the seven contributors, there are two who are making around 60% of code contr For more details on how to contribute to BoxyHQ, please check out their official documentation: [https://docs.boxyhq.io/](https://docs.boxyhq.io/). - | Feature | BoxyHQ (Open Source) | Okta | WorkOS | |----------------------------|----------------------|------------------|--------------------| | **Cost** | Free for some features, self-hosted premium plans, and paid plans for SSO (starting at $49/mo per connection but decreasing with increased user tiers) and directory sync | Starts with Freemium tiers, but scales with usage. SSO starting at $2-$5/mo per connection. $1,500 annual contract minimum. Volume discounts are available for Enterprise customers with 5,000+ users. | Free user management and auth up to 1M users. SSO $125/mo per connection. | @@ -80,10 +79,8 @@ For more details on how to contribute to BoxyHQ, please check out their official | **Features** | SSO, audits, directory sync | Identity & Access Mgmt., SSO, etc. | User management, SSO, Provisioning, etc. | | **Security Practices Visibility** | Full transparency | Limited transparency | Whitepapers & Audits | - - ## Takeaways -When considering development tools and platforms, open source alternatives like BoxyHQ offer numerous benefits such as enhanced security, customizability, reduced vendor lock-in, and cost savings. By choosing open source, you can become an active participant in supporting the open source ecosystem, and can contribute to the success of the projects as well. As always it's important to carefully evaluate each option based on your unique requirements and preferences. +When considering development tools and platforms, open source alternatives like BoxyHQ offer numerous benefits such as enhanced security, customizability, reduced vendor lock-in, and cost savings. By choosing open source, you can become an active participant in supporting the open source ecosystem, and can contribute to the success of the projects as well. As always it's important to carefully evaluate each option based on your unique requirements and preferences. -What's your favorite open source SaaS tool? \ No newline at end of file +What's your favorite open source SaaS tool? diff --git a/blog/2024/2024-02-05-development-tools-and-platforms-a-closer-look-at-api-testing-with-hoppscotch.md b/blog/2024/2024-02-05-development-tools-and-platforms-a-closer-look-at-api-testing-with-hoppscotch.md index 88364204..151e19b5 100644 --- a/blog/2024/2024-02-05-development-tools-and-platforms-a-closer-look-at-api-testing-with-hoppscotch.md +++ b/blog/2024/2024-02-05-development-tools-and-platforms-a-closer-look-at-api-testing-with-hoppscotch.md @@ -10,12 +10,10 @@ description: "When we look closely at our APIs, we can find issues and solve the
- APIs, or Application Programming Interfaces, allow for communication between different software systems and services, forming the necessary bridge in applicates used daily in industries ranging from banking to entertainment. Because we depend on technology so much, it's important to make sure we're testing to make sure everything works. - API testing serves four main purposes: functionality, performance, security, and integration. Each category focuses on looking at different parts of the API to make sure it is functioning correctly under normal and extreme circumstances. Using API testing has a lot of benefits, including: - **Enhanced System Dependability**: Checking APIs allows you to discover hidden bugs, eliminate crashes, and minimize unwanted consequences caused by incorrect implementations. @@ -30,7 +28,7 @@ If you're interested in testing out some other open source API tools, you can ch > Hoppscotch is a lightweight, web-based API development suite. It was built from the ground up with ease of use and accessibility in mind providing all the functionality needed for API developers with minimalist, unobtrusive UI. -Hoppscotch makes it quick and easy to test your APIs. It honestly took me under five minutes to get started with my first request. +Hoppscotch makes it quick and easy to test your APIs. It honestly took me under five minutes to get started with my first request. ![testing API](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ycy5i2sc3jisgb5j4d0o.gif) @@ -62,15 +60,15 @@ Just a note to say that in terms of pricing, Hoppscotch offers free (forever) Co ### Getting Started with API Testing -Let's walk through an example. First, go to [https://hoppscotch.io/](https://hoppscotch.io/). If you haven't used it before, you'll see their default API there. +Let's walk through an example. First, go to [https://hoppscotch.io/](https://hoppscotch.io/). If you haven't used it before, you'll see their default API there. -We're going to test the OpenSauced API to get a list of featured repository insight pages. +We're going to test the OpenSauced API to get a list of featured repository insight pages. For the API endpoint, add: `https://api.opensauced.pizza/v2/insights/featured` -Next, we're going to need to add some query parameters. +Next, we're going to need to add some query parameters. Parameter 1: `page`, Value 1: `1` Parameter 2: `limit`, Value 2: `10` @@ -188,9 +186,8 @@ Once you've added those Query Parameters, you're ready to hit Send. If your requ } ``` -If you have another API to test, go ahead and see if you can get it working. +If you have another API to test, go ahead and see if you can get it working. [https://github.com/hoppscotch/hoppscotch](https://github.com/hoppscotch/hoppscotch) - -We'll be back with another post in the 29 Days of OSS Alternatives tomorrow, but if you want to stay up-to-date with OpenSauced and get more valuable information about open source, [sign up for our newsletter](https://oss.fyi/newsletter) today. \ No newline at end of file +We'll be back with another post in the 29 Days of OSS Alternatives tomorrow, but if you want to stay up-to-date with OpenSauced and get more valuable information about open source, [sign up for our newsletter](https://oss.fyi/newsletter) today. diff --git a/blog/2024/2024-02-06-challenging-the-skeptics-unveiling-the-undeniable-goodness-of-tailwind-css.md b/blog/2024/2024-02-06-challenging-the-skeptics-unveiling-the-undeniable-goodness-of-tailwind-css.md index 3f986579..02f7bb14 100644 --- a/blog/2024/2024-02-06-challenging-the-skeptics-unveiling-the-undeniable-goodness-of-tailwind-css.md +++ b/blog/2024/2024-02-06-challenging-the-skeptics-unveiling-the-undeniable-goodness-of-tailwind-css.md @@ -12,7 +12,6 @@ If you're pretty well versed with Tailwind, this article might not be for you, b - I'm coming in with what, I think, is a fresh perspective. I'm using Tailwind for the first time professionally. Furthermore, I don't consider myself a CSS expert, but I think I have pretty solid CSS skills. I mention all this, to convey a sentiment, I've seen many people exhibit. You're using Tailwind because you don't understand CSS. I do understand CSS. diff --git a/blog/2024/2024-02-06-development-tools-and-platforms-create-your-devto--pipedream-automation-in-under-20-minutes.md b/blog/2024/2024-02-06-development-tools-and-platforms-create-your-devto--pipedream-automation-in-under-20-minutes.md index 09aeb59e..974f3582 100644 --- a/blog/2024/2024-02-06-development-tools-and-platforms-create-your-devto--pipedream-automation-in-under-20-minutes.md +++ b/blog/2024/2024-02-06-development-tools-and-platforms-create-your-devto--pipedream-automation-in-under-20-minutes.md @@ -6,15 +6,14 @@ slug: development-tools-and-platforms-create-your-devto-pipedream-automation-in- description: "Learn how to use Pipedream to automate a post in Discord when you've created a new Dev post!" --- -*Today is day 6 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [API Development Tools](https://oss.fyi/api-tools).* +*Today is day 6 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [API Development Tools](https://oss.fyi/api-tools).*
-A couple of years ago, I was working with a university doctoral student who was recording oral histories. One of the biggest challenges she faced was taking the videos and transcribing them, which was required by the doctoral committee. We came up with a low-code way to solve her problem: the solution was Pipedream. +A couple of years ago, I was working with a university doctoral student who was recording oral histories. One of the biggest challenges she faced was taking the videos and transcribing them, which was required by the doctoral committee. We came up with a low-code way to solve her problem: the solution was Pipedream. - > Pipedream is the fastest way to automate any process that connects APIs. Build and run workflows with code-level control when you need it, and no code when you don't. Pipedream and other tools like it automate workflows between different web applications and services, providing both code and no-code solutions for users. You may have heard of Zapier or Automate.io, which are popular proprietary tools similar to the open source Pipedream. @@ -58,7 +57,6 @@ In the next step, you'll need to identify how often you want the automation to r Lastly, you'll need to connect your Dev Account. You'll need to generate an API key by going to [https://dev.to/settings/extensions](https://dev.to/settings/extensions). Scroll all the way to the bottom, until you see this: - ![dev generate API key](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ersl0jrbk3nvxcwq9ssm.png) Now, you should be able to test your workflow. Once you've been successful, you can proceed to the next step. @@ -68,15 +66,14 @@ Now, you should be able to test your workflow. Once you've been successful, you Select the plus sign to add a new step. We're going to search for Discord, and select it. From there, we'll be offered three options. Go ahead and select "Send Message." (Now, we're going to keep it simple this time around, but there's more you can do to drop the actual link in Discord.) ![Send Message](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nvnep8gy9pja1x6i3s10.png) -You'll be prompted to connect your Discord account. Once that's activated, you must select a channel to send the message. +You'll be prompted to connect your Discord account. Once that's activated, you must select a channel to send the message. -Lastly, you'll need to enter the message you'd like to send. For this example, I wrote "I have a new post on Dev! https://dev.to/opensauced". +Lastly, you'll need to enter the message you'd like to send. For this example, I wrote `I have a new post on Dev! https://dev.to/opensauced`. Go ahead and test your workflow. This is what it looks like in the discord channel I selected: ![message in discord](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q72udp93hj39b6akx7p3.png) - ## Comparison with Zapier and Automate.io | Feature | Pipedream | Zapier | Integromat (Make) | Automate.io | @@ -94,10 +91,6 @@ Notes: *integrations refer to the total count of supported third-party applicati ****unique features highlight the aspects where each platform excels or distinguishes itself from competitors. -Pipedream offers a lot for a little. The learning curve might be a little bit steeper than other no-code tools, but that also gives it more power once you know what you're doing with it. - -What automations are you currently using or want to test out? I always like to collect lists of interesting ways to be more efficient. - - - +Pipedream offers a lot for a little. The learning curve might be a little bit steeper than other no-code tools, but that also gives it more power once you know what you're doing with it. +What automations are you currently using or want to test out? I always like to collect lists of interesting ways to be more efficient. diff --git a/blog/2024/2024-02-07-documenso-v-docusign-the-showdown.md b/blog/2024/2024-02-07-documenso-v-docusign-the-showdown.md index c939caa4..528b9f46 100644 --- a/blog/2024/2024-02-07-documenso-v-docusign-the-showdown.md +++ b/blog/2024/2024-02-07-documenso-v-docusign-the-showdown.md @@ -5,32 +5,29 @@ authors: BekahHW slug: documenso-v-docusign-the-showdown description: "Explore the thrilling world of digital signing solutions as DocuSign and Documenso go head-to-head in our ultimate showdown. Discover their strengths, weaknesses, and what makes each platform shine in this must-read comparison" --- -*Today is day 7 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [API Development Tools](https://oss.fyi/api-tools).* +*Today is day 7 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [API Development Tools](https://oss.fyi/api-tools).*
- *A Tale of Two Electronic Signature Platforms* It's time to enter the ring as two heavyweight champions face off: DocuSign and Documenso. In one corner, we have the reigning champion – DocuSign, the established player with years of experience in the eSignature market. In the other corner, emerging contender Documenso brings a fresh perspective, aiming to disrupt the industry with its innovative open source approach. - [https://github.com/documenso/documenso](https://github.com/documenso/documenso) - ## **ROUND 1: FEATURES & FUNCTIONALITY** -Both platforms offer robust feature sets, but their approaches differ. At first glance, both DocuSign and Documenso seem evenly matched. +Both platforms offer robust feature sets, but their approaches differ. At first glance, both DocuSign and Documenso seem evenly matched. -DocuSign focuses on providing comprehensive tools tailored for businesses of various sizes, offering integrations with popular apps such as Salesforce, Microsoft Office, and Google Workspace. Meanwhile, Documenso takes a unique stance by emphasizing accessibility and affordability through its open source nature, enabling developers to customize and build on its core functionalities. +DocuSign focuses on providing comprehensive tools tailored for businesses of various sizes, offering integrations with popular apps such as Salesforce, Microsoft Office, and Google Workspace. Meanwhile, Documenso takes a unique stance by emphasizing accessibility and affordability through its open source nature, enabling developers to customize and build on its core functionalities. Winner? DocuSign edges ahead with its clearly communicated features and integrations. However, those looking for flexibility and cost savings might prefer Documenso. ## **ROUND 2: USER EXPERIENCE (UX)** -DocuSign boasts polished UX, ensuring easy navigation even for beginners. Its extensive documentation and resources cater well to both individual and enterprise customers. Documenso was easy to use, and I could sign documents quickly with their [Single Player Mode](https://documenso.com/singleplayer). +DocuSign boasts polished UX, ensuring easy navigation even for beginners. Its extensive documentation and resources cater well to both individual and enterprise customers. Documenso was easy to use, and I could sign documents quickly with their [Single Player Mode](https://documenso.com/singleplayer). Winner? DocuSign has more to offer and clear documentation to help users get started. Although Documenso has an easy to use single-player mode, the extra capabilities make DocuSign easier to use. @@ -50,7 +47,7 @@ As an open source project, they have solid activity and PR velocity. ![Documenso dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1xn5t1waxdcjyv76bxoc.png) With only seven employees, we can see a strong community showing. - + [![Contributors for Documenso](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/njwq4v4xx0ca2qpb7gqp.png)](https://app.opensauced.pizza/pages/BekahHW/1187/dashboard) A closer look: @@ -69,14 +66,6 @@ Is this the beginning of a comeback round for the new kid on the block, Documens As things stand today, DocuSign remains the dominant force in electronic signatures. Yet, with challenger Documenso pushing boundaries and refusing to back down, this is a competitive match. Will these rivals trade blows forever or eventually unite forces against common foes? Only time will reveal who emerges victorious in this ongoing battle royale. -Until then, stay tuned for future updates on the epic clash between DocuSign and Documenso! +Until then, stay tuned for future updates on the epic clash between DocuSign and Documenso! **What battle would you like to see next?** - - - - - - - - diff --git a/blog/2024/2024-02-08-getting-user-feedback-for-success-tips-and-tools.md b/blog/2024/2024-02-08-getting-user-feedback-for-success-tips-and-tools.md index 1cab07fa..517c705e 100644 --- a/blog/2024/2024-02-08-getting-user-feedback-for-success-tips-and-tools.md +++ b/blog/2024/2024-02-08-getting-user-feedback-for-success-tips-and-tools.md @@ -6,16 +6,15 @@ slug: getting-user-feedback-for-success-tips-and-tools description: "Discover Formbricks, the open source form builder empowering developers with customizable designs, responsive layouts, and robust integration capabilities. Learn why it's a solid alternative to proprietary software." --- -*Today is day 8 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [API Development Tools](https://oss.fyi/api-tools).* +*Today is day 8 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [API Development Tools](https://oss.fyi/api-tools).*
-We all need feedback. If we went to grow and succeed, we need to understand our strengths and weaknesses. And I'll bet that many of us have filled out a feedback form to give product feedback. +We all need feedback. If we went to grow and succeed, we need to understand our strengths and weaknesses. And I'll bet that many of us have filled out a feedback form to give product feedback. - -As a developer experience lead, I'm always looking for ways to get user feedback, to understand better where things could be improved, and how I can be clearer in my writing. It can be really hard to get that feedback, but that's where feedback tools like Typeform, Wufoo, and the open source competitor Formbricks come in. +As a developer experience lead, I'm always looking for ways to get user feedback, to understand better where things could be improved, and how I can be clearer in my writing. It can be really hard to get that feedback, but that's where feedback tools like Typeform, Wufoo, and the open source competitor Formbricks come in. > Formbricks is an Experience Management Suite built on the largest open source survey stack worldwide. Gracefully gather feedback at every step of the customer journey to know what your customers need. @@ -25,11 +24,11 @@ As a developer experience lead, I'm always looking for ways to get user feedback Before you decide on the technology to use to get feedback, you should think about how to get feedback that's accurate, valuable, and effective. Here are some tips to get you started: -1. **Define Your Objectives**: What do you want to learn from the feedback? Are you looking for insights on usability, features, bugs, or general impressions? +1. **Define Your Objectives**: What do you want to learn from the feedback? Are you looking for insights on usability, features, bugs, or general impressions? 2. **Make It Easy to Provide Feedback**: Simplify the feedback process to encourage more responses. The less effort it takes to provide feedback, the more likely users are to participate. Ask specific questions, while also providing a space for general comments. -3. **Communicate the Value of Feedback**: Explain to your users how their feedback will be used to improve the software. Knowing they have the opportunity to shape your product can motivate them to provide more feedback. +3. **Communicate the Value of Feedback**: Explain to your users how their feedback will be used to improve the software. Knowing they have the opportunity to shape your product can motivate them to provide more feedback. 4. **Act on Feedback**: Demonstrate that you value user feedback by responding to it. Whether it's fixing bugs, considering feature requests, or making changes based on usability suggestions, showing that you value the feedback helps to build trust and encourage ongoing engagement. @@ -41,7 +40,6 @@ Now that you've thought about how to get effective feedback, let's take a look a ## Feedback Spotlight: Formbricks' Features - [![Image of the formbricks builder from their readme](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5g4m11dgn07qidtmno38.png)](https://github.com/formbricks/formbricks) Formbricks comes with a host of features designed to enhance form building: @@ -72,20 +70,20 @@ Comparing Formbricks with proprietary form builders like Typeform and Wufoo: ## Community -Formbricks has solid health indicators with consistent contributors, a high PR velocity, and high activity rate. +Formbricks has solid health indicators with consistent contributors, a high PR velocity, and high activity rate. ![Contributors](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nmjhwjdojawhyxza8fku.png) -See the full insight page [here](https://app.opensauced.pizza/pages/BekahHW/1188/dashboard). +See the full insight page [here](https://app.opensauced.pizza/pages/BekahHW/1188/dashboard). ## Open Source Stats - - Stars: 5k - - Watching: 28 - **Forks**: 775 -- **License**: AGPLv3 +- **License**: AGPLv3 ![Formbricks dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q78frvn5in9bylquztsw.png) -## Takeaways +## Takeaways Formbricks offers a great open source form builder alternative with its features and focus on community-driven development. It might not be revolutionizing the field, but it's a strong contender for developers seeking flexibility, customization, and an open source approach. Things to consider before making a decision: your technical expertise, required features, budget, and desired level of support. Remember, the "best" competitor ultimately depends on your specific priorities and preferences. diff --git a/blog/2024/2024-02-09-why-would-you-use-backend-as-a-service-baas.md b/blog/2024/2024-02-09-why-would-you-use-backend-as-a-service-baas.md index 0d2930c1..6ff05db0 100644 --- a/blog/2024/2024-02-09-why-would-you-use-backend-as-a-service-baas.md +++ b/blog/2024/2024-02-09-why-would-you-use-backend-as-a-service-baas.md @@ -6,18 +6,17 @@ slug: why-would-you-use-backend-as-a-service-baas description: "Learn why Backend as a Service (BaaS) is essential for simplifying the development process, improving cost efficiency, and enhancing security. " --- -*Today is day 9 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code).* +*Today is day 9 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code).* -In the United States, it's National Pizza Day! That means we're going to start this post with a pizza story. +In the United States, it's National Pizza Day! That means we're going to start this post with a pizza story. - Sometimes, having your questions answered is the best onboarding to a new project. As my friend [Jason](https://twitter.com/tasonjorres) was learning about Backend as a Service (BaaS), he started asking questions on X/Twitter. And Appwrite responded. They were welcoming, supportive, and happy to accept new contributors. And with that kind of support, he was able to hit the ground running. He wanted to experiment with features like databases, storage, forums, and real-time chat. And because he had the support of the Appwrite team, access to thorough docs that were approachable to beginners with open source access to the codebase, he was ready to start some projects with Appwrite, including his [pizzapics](https://github.com/jasonetorres/pizzapics) project. ![About pizzapics](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hc922v9wlzzalscm7ppl.png) -Pizzapics spawned from a tutorial that used supabase, but Appwrite became a great place for Jason to start because of the beginner and user-friendly tutorials. And if it was a great place for a new user to start, it had awesome opportunities for experts. +Pizzapics spawned from a tutorial that used supabase, but Appwrite became a great place for Jason to start because of the beginner and user-friendly tutorials. And if it was a great place for a new user to start, it had awesome opportunities for experts. ## What is Backend as a Service (BaaS)? @@ -35,19 +34,19 @@ Plus, if more people start visiting your LEGO castle, the magical box automatica In simple terms, BaaS helps app developers by taking care of the, behind-the-scenes stuff, allowing them to focus on creating an amazing app experience for users, just like letting you focus on building the best LEGO castle ever. -## Why Use BaaS? +## Why Use BaaS? Developers often choose BaaS because they want to streamline the development process, reduce costs, and go to market with their product faster. Other reasons they may choose to use BaaS include: -1. **Simplification**: BaaS provides pre-built backend components, like databases, authentication systems, cloud storage, and server-side logic, allowing developers to focus on building the frontend and user experience of their applications. +1. **Simplification**: BaaS provides pre-built backend components, like databases, authentication systems, cloud storage, and server-side logic, allowing developers to focus on building the frontend and user experience of their applications. -2. **Scalability**: Most BaaS platforms automatically scale based on the applications use. This means that infrastructure can handle increased usage without a lot of manual changes. +2. **Scalability**: Most BaaS platforms automatically scale based on the applications use. This means that infrastructure can handle increased usage without a lot of manual changes. -3. **Cost Efficiency**: For some small to medium-sized projects, using a BaaS can decrease upfront investments in server hardware of long-term contracts with cloud services. +3. **Cost Efficiency**: For some small to medium-sized projects, using a BaaS can decrease upfront investments in server hardware of long-term contracts with cloud services. 4. **Faster Time to Market**: Because developers don't have to worry about creating complex backends, they're able to go to market more quickly. -5. **Security**: BaaS platforms typically offer built-in security features, including data encryption, authentication, and compliance with various regulatory standards. +5. **Security**: BaaS platforms typically offer built-in security features, including data encryption, authentication, and compliance with various regulatory standards. ## BaaS Spotlight: Appwrite @@ -101,21 +100,15 @@ The second is their Heroes program. [Jason Torres](https://twitter.com/tasonjorr I really appreciated this particular story that showed how important contributions are to Appwrite. [Graham](https://twitter.com/GrahamTheDev)- a community member - did a live stream accessibility audit of Appwrite. From that experience, he created issues to improve the accessibility of Appwrite, and they were incredibly receptive and motivated to improve their app. - ### [Appwrite](https://github.com/appwrite/appwrite) Repo -- - Stars: 39.3k -- - Watching: 370 -- - Forks: 3.6k +- - Stars: 39.3k +- - Watching: 370 +- - Forks: 3.6k - - License: BSD-3-Clause license ## Takeaways -AppWrite stands out as a powerful Backend as a Service (BaaS) platform that simplifies the process of backend development for web and mobile applications. By offering a wide array of features like database management, user authentication, file storage, cloud functions, and real-time capabilities, Appwrite enables developers to focus on the user experience and building the front end of their applications without getting bogged down by backend infrastructure. +AppWrite stands out as a powerful Backend as a Service (BaaS) platform that simplifies the process of backend development for web and mobile applications. By offering a wide array of features like database management, user authentication, file storage, cloud functions, and real-time capabilities, Appwrite enables developers to focus on the user experience and building the front end of their applications without getting bogged down by backend infrastructure. If you have questions or suggestions for what topic we should cover let us know in the comments below or [sign up for our newsletter](https://news.opensauced.pizza/#/portal/signup). - - - - - diff --git a/blog/2024/2024-02-10-researchhub-the-github-of-scientific-research.md b/blog/2024/2024-02-10-researchhub-the-github-of-scientific-research.md index b8a12493..6f080999 100644 --- a/blog/2024/2024-02-10-researchhub-the-github-of-scientific-research.md +++ b/blog/2024/2024-02-10-researchhub-the-github-of-scientific-research.md @@ -6,16 +6,15 @@ slug: researchhub-the-github-of-scientific-research description: "Explore how ResearchHub revolutionizes academic research with open access, real-time collaboration, and community engagement. " --- -*Today is day 10 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [open source learn to code programs](https://oss.fyi/learn-to-code).* +*Today is day 10 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or check out my bonus lists: [open source games](https://oss.fyi/oss-games) and [open source learn to code programs](https://oss.fyi/learn-to-code).* Before coming into tech, I spent ten years in academia. I always found it frustrating that so much research was guarded behind paywalls. Why were we preventing people from valuable research that could allow us to grow in our areas of expertise? Now, I was in the humanities and not the sciences, but once I learned about ResearchHub, I was intrigued. - -> ResearchHub's mission is to accelerate the pace of scientific research. Our goal is to make a modern mobile and web application where people can collaborate on scientific research in a more efficient way, similar to what GitHub has done for software engineering. -> -> Researchers should be able to publish articles (preprint or postprint) and discuss the findings in a completely open and accessible forum dedicated solely to the relevant article. +> ResearchHub's mission is to accelerate the pace of scientific research. Our goal is to make a modern mobile and web application where people can collaborate on scientific research in a more efficient way, similar to what GitHub has done for software engineering. +> +> Researchers should be able to publish articles (preprint or postprint) and discuss the findings in a completely open and accessible forum dedicated solely to the relevant article. Imagine a world where the latest scientific breakthroughs aren't hidden behind paywalls. They're shared freely and collaboration between academics and non-academics is encouraged. That means that all of us have to potential to contribute to research that shapes the world. ResearchHub is building a platform where the power of open access transforms academia. @@ -23,7 +22,7 @@ Imagine a world where the latest scientific breakthroughs aren't hidden behind p ## The Challenge of Academic Access -Traditionally, accessing academic research has been like trying to enter a locked room without a key. Research is often behind high-cost paywalls or requires academic credentials to access barriers, making it difficult for researchers, students, and non-academics to access. +Traditionally, accessing academic research has been like trying to enter a locked room without a key. Research is often behind high-cost paywalls or requires academic credentials to access barriers, making it difficult for researchers, students, and non-academics to access. ## ResearchHub Features @@ -38,12 +37,11 @@ Another way this differs from traditional academic research is because it's ince ![ResearchHub platform](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zu3o83k2laroalm5097t.png) - ## Community This project is kind of a special case. We're looking at both the web and backend repos, which are the ones that are pinned in their org, but you can see the engagement on the site as well - which likens its platform the GitHub of scientific research. -We don't see many contributors over the last thirty days, but we do see positive numbers for PR Velocity and activity. +We don't see many contributors over the last thirty days, but we do see positive numbers for PR Velocity and activity. [![researchhub dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fnv0po284xypcb3w0oyr.png)](https://app.opensauced.pizza/pages/BekahHW/1189/contributors?range=30) @@ -51,7 +49,7 @@ The engagement of users tells a different story: ![research hub community numbers](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4y6muwn4zzdglwgexudq.png) -Getting involved is straightforward. Whether you're a researcher eager to share your findings, a developer looking to contribute to the platform's growth, or someone who believes in open access to knowledge, ResearchHub has opportunities for many different types of contribution. +Getting involved is straightforward. Whether you're a researcher eager to share your findings, a developer looking to contribute to the platform's growth, or someone who believes in open access to knowledge, ResearchHub has opportunities for many different types of contribution. ### Open Source Stats (web/backend) @@ -75,7 +73,6 @@ Comparing ResearchHub with traditional proprietary academic databases reveals a | Data & Metrics | Limited data and basic metrics | Extensive citation data and advanced metrics | Extensive citation data and advanced metrics | | Long-Term Sustainability| Relatively new platform, long-term sustainability unproven | Established platform with proven track record | Established platform with proven track record | - ## Takeaways What ResearchHub is doing is really interesting, and I'm surprised I haven't heard about it before. In terms of the GitHub open source collaborations, it would be great to see more contributions and issues being addressed. But it does look like they make up for it in the open source research aspect of their project. This is definitely something I'll be watching and diving in deeper to learn more about things like their [open source hub](https://www.researchhub.com/hubs/open-source-software-1). diff --git a/blog/2024/2024-02-11-transforming-lives-through-code-freecodecamp.md b/blog/2024/2024-02-11-transforming-lives-through-code-freecodecamp.md index b77b05a8..af152f37 100644 --- a/blog/2024/2024-02-11-transforming-lives-through-code-freecodecamp.md +++ b/blog/2024/2024-02-11-transforming-lives-through-code-freecodecamp.md @@ -6,14 +6,13 @@ slug: transforming-lives-through-code-freecodecamp description: "Discover how freeCodeCamp helped me overcome personal trauma and become a software developer, providing a flexible, supportive, and cost-effective alternative to traditional tech education." --- -*Today is day 11 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code).* +*Today is day 11 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code).* -When I first started learning to code, I started with freeCodeCamp (FCC). I had spent the last nine years of my life teaching college English, and I needed a change. And what I found, changed my life. I had gone through some major life trauma, and I was *stuck*. I was stuck in the thoughts that cycled through my mind, stuck in loneliness, stuck in a world that kept moving without me. +When I first started learning to code, I started with freeCodeCamp (FCC). I had spent the last nine years of my life teaching college English, and I needed a change. And what I found, changed my life. I had gone through some major life trauma, and I was *stuck*. I was stuck in the thoughts that cycled through my mind, stuck in loneliness, stuck in a world that kept moving without me. - -And at the insistence of my husband (a career-changer himself), I tried freeCodeCamp. And suddenly, all those thoughts that continually cycled through my head stopped - at least while I was coding. It took another year and a half, but I learned to code, and I learned how to move on past my trauma. I couldn't have done it without freeCodeCamp. +And at the insistence of my husband (a career-changer himself), I tried freeCodeCamp. And suddenly, all those thoughts that continually cycled through my head stopped - at least while I was coding. It took another year and a half, but I learned to code, and I learned how to move on past my trauma. I couldn't have done it without freeCodeCamp. > freeCodeCamp is a community of people from all around the world who are learning to code together. We're a 501(c)(3) public charity. @@ -21,11 +20,11 @@ Founded in 2014 by Quincy Larson, FCC has revolutionized the way so many people ## A Different Approach to Learning -Unlike the rigid structures and high price tags of bootcamps and computer science (CS) degree programs, freeCodeCamp provides a flexible, self-paced learning environment accessible to anyone with an internet connection. With a curriculum spanning from basic HTML to machine learning, there's plenty of opportunity to grow in a way that suits anyone interested in becoming a part of tech. +Unlike the rigid structures and high price tags of bootcamps and computer science (CS) degree programs, freeCodeCamp provides a flexible, self-paced learning environment accessible to anyone with an internet connection. With a curriculum spanning from basic HTML to machine learning, there's plenty of opportunity to grow in a way that suits anyone interested in becoming a part of tech. ## The Cost of Knowledge -One of the biggest differences between FCC and the alternatives is cost. Bootcamps can charge upwards of $10,000, and a CS degree often carries a much heftier price tag when considering tuition, fees, and the opportunity cost of time. +One of the biggest differences between FCC and the alternatives is cost. Bootcamps can charge upwards of $10,000, and a CS degree often carries a much heftier price tag when considering tuition, fees, and the opportunity cost of time. I highly recommend reading this post by Quincy Larson, [A Free Accredited Bachelor's Degree in Computer Science – How Do We Get There?](https://www.freecodecamp.org/news/free-accredited-bachelors-degrees-in-computer-science-how-do-we-get-there/) on their approach. @@ -37,24 +36,22 @@ I highly recommend reading this post by Quincy Larson, [A Free Accredited Bachel | **Average Bootcamp** | $13,500 | 3 to 9 months | Medium | Bootcamp certificate, portfolio of projects | | **Average CS Degree** | $40,000 to $120,000| 4 years | Low | Bachelor's degree | - ### Flexibility and Accessibility The self-paced nature of FCC allows learners to tailor their education to their lifestyles, commitments, and learning speeds. This flexibility opens doors for people who work, have family responsibilities, or simply need a more adaptable learning environment. When I started FCC, I was a mom of four kids, including a one-year-old; I was teaching college English and had no money to spare. There aren't tons of opportunities for people in my shoes. But freeCodeCamp was - and remains - steadfast in its mission to provide education at no cost, and is always something you can work on at your own pace. -Full disclosure: I did ultimately graduate from a bootcamp, where I received a full scholarship to attend, but with my experience with freeCodeCamp, bootcamp, and teaching in Higher Education, I have a well-rounded understanding of the systems created to help others break into tech. It's not a one-size-fits-all path. There are many different aspects to consider, so if you have questions, please feel free to drop them in the comments below, and I'll make sure to answer them. +Full disclosure: I did ultimately graduate from a bootcamp, where I received a full scholarship to attend, but with my experience with freeCodeCamp, bootcamp, and teaching in Higher Education, I have a well-rounded understanding of the systems created to help others break into tech. It's not a one-size-fits-all path. There are many different aspects to consider, so if you have questions, please feel free to drop them in the comments below, and I'll make sure to answer them. ### Community and Support -I know a number of folks involved in freeCodeCamp and I love how they encourage their community. With forums, chat rooms, and local study groups, there are so many spaces for collaboration, mentorship, and encouragement. +I know a number of folks involved in freeCodeCamp and I love how they encourage their community. With forums, chat rooms, and local study groups, there are so many spaces for collaboration, mentorship, and encouragement. ![fcc contributors](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/07y3bvss6lrqrta112ug.png) freeCodeCamp has millions of users worldwide, with countless stories of individuals transitioning to tech careers, often from completely unrelated backgrounds. These success stories underscore the efficacy of FCC's approach to tech education. - ### Open Source ![fcc overview](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/c43m0ng7ulfmz47vv4tt.png) diff --git a/blog/2024/2024-02-12-three-open-source-alternatives-to-calendly.md b/blog/2024/2024-02-12-three-open-source-alternatives-to-calendly.md index ae113d51..4f3dea7f 100644 --- a/blog/2024/2024-02-12-three-open-source-alternatives-to-calendly.md +++ b/blog/2024/2024-02-12-three-open-source-alternatives-to-calendly.md @@ -6,15 +6,16 @@ slug: three-open-source-alternatives-to-calendly description: "Check out three open source alternatives to calendly to schedule your life!" --- -*Today is day 12 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code). This is our first post in the Productivity & Collaboration Category.* +*Today is day 12 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code). This is our first post in the Productivity & Collaboration Category.*
-Chances are, you either have a calendar schedule or you've interacted with someone else's scheduler. I have been incredibly resistant to having one myself, although I have tried (and didn't *love*) Calendly in the past to help schedule podcast episodes. At this point, it's necessary for me to have a way to easily schedule meeting, kids' events, and whatever else is happening. To do this, I investigated [three open source alternatives to Calendly](https://app.opensauced.pizza/workspaces/127e8633-bace-4bae-814b-b36695e87de0): cal.com, Fossify Calendar, and Easy!Appointments. +Chances are, you either have a calendar schedule or you've interacted with someone else's scheduler. I have been incredibly resistant to having one myself, although I have tried (and didn't *love*) Calendly in the past to help schedule podcast episodes. At this point, it's necessary for me to have a way to easily schedule meeting, kids' events, and whatever else is happening. To do this, I investigated [three open source alternatives to Calendly](https://app.opensauced.pizza/workspaces/127e8633-bace-4bae-814b-b36695e87de0): cal.com, Fossify Calendar, and Easy!Appointments. ## Features & Open Source Support + ### [Fossify Calendar](https://app.opensauced.pizza/s/FossifyOrg/Calendar) > A simple calendar with events, customizable widgets and no ads. @@ -47,14 +48,13 @@ Despite not having a website for their product, Fossify Calendar has continued s Cal.com offers a comprehensive, API-driven scheduling infrastructure, which creates opportunities for customization and integration with other tools like Google Calendar and Zoom. It offers a variety of event types, including, secret events, availability schedule, minimum notics, requires confirmation, recurring events, and more. There's also an option for paid bookings, dynamic group links, and more options with their app store. -Cal.com has by far, the most active open source community and support for their project, and maybe that's reflected in the number of features they offer as well. +Cal.com has by far, the most active open source community and support for their project, and maybe that's reflected in the number of features they offer as well. [![Open Source Activity](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7trjrf139z123xvexrfy.png)](https://app.opensauced.pizza/workspaces/70809527-03ce-41ec-a159-fc664651afdb/repository-insights/1199/dashboard) - -- Stars: 27.2k +- Stars: 27.2k - Watching: 152 -- Forks: 6.1k +- Forks: 6.1k - License: AGPLv3 and Commercial License *Note: since February, we've seen continual growth with Cal.com as seen below.* @@ -65,16 +65,15 @@ Cal.com has by far, the most active open source community and support for their > SCHEDULE ANYTHING. Let's start with easy! Get the best free online appointment scheduler on your server, today. -Easy!Appointments supports online booking for individuals or teams, and offers features like: appointment and customer management, services and service providers that are configurable, business workflow and booking rules, Google calendar synchronization, email notification support, group sessions support, API and webhook interfaces for automations and integrations, and more. +Easy!Appointments supports online booking for individuals or teams, and offers features like: appointment and customer management, services and service providers that are configurable, business workflow and booking rules, Google calendar synchronization, email notification support, group sessions support, API and webhook interfaces for automations and integrations, and more. -Despite a steady increase in starts from 2016 until now, Easy!Appointments seems to be slowing down. You can see by the contributions graph below, but also if you go to the repository, code hasn't been merged in during the last two months. +Despite a steady increase in starts from 2016 until now, Easy!Appointments seems to be slowing down. You can see by the contributions graph below, but also if you go to the repository, code hasn't been merged in during the last two months. [![Easy!Appointments oss support](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q8818hi4vqlcz1yqyt33.png)](https://app.opensauced.pizza/workspaces/70809527-03ce-41ec-a159-fc664651afdb/repository-insights/1199/dashboard) - -- Stars: 3k -- Watching: 155 -- Forks: 1.2k +- Stars: 3k +- Watching: 155 +- Forks: 1.2k - License: GPL-3.0 ## Comparison with Calendly @@ -87,7 +86,6 @@ Despite a steady increase in starts from 2016 until now, Easy!Appointments seems | Privacy Focus | High | Moderate | Moderate | Moderate | | Cost | Free w/ paid customizations | Free / Paid | Free | Free / Paid | - ## Additional Considerations If you're trying to make a decision, about which to pick, here are some of my additional thoughts: @@ -103,4 +101,4 @@ If you're trying to make a decision, about which to pick, here are some of my ad ## Takeaways -Depending on your needs, there will be different decisions for everyone here. I will say, as a recent cal.com user, I'm finding the process to be very positive, but I'm only using the most basic features. I'm looking forward to implementing more of their offerings soon for some of my upcoming projects though! If you have an open source productivity tool you'd like to recommend, drop it in the comments below. To learn more about the cal.com contributors, including their OSCR, check out their [contributor tab](https://app.opensauced.pizza/s/calcom/cal.com/contributors?range=30). \ No newline at end of file +Depending on your needs, there will be different decisions for everyone here. I will say, as a recent cal.com user, I'm finding the process to be very positive, but I'm only using the most basic features. I'm looking forward to implementing more of their offerings soon for some of my upcoming projects though! If you have an open source productivity tool you'd like to recommend, drop it in the comments below. To learn more about the cal.com contributors, including their OSCR, check out their [contributor tab](https://app.opensauced.pizza/s/calcom/cal.com/contributors?range=30). diff --git a/blog/2024/2024-02-13-transforming-productivity-with-open-source-gamification-habitica.md b/blog/2024/2024-02-13-transforming-productivity-with-open-source-gamification-habitica.md index 1bc6acd1..8812f321 100644 --- a/blog/2024/2024-02-13-transforming-productivity-with-open-source-gamification-habitica.md +++ b/blog/2024/2024-02-13-transforming-productivity-with-open-source-gamification-habitica.md @@ -5,16 +5,15 @@ authors: BekahHW slug: transforming-productivity-with-open-source-gamification-habitica description: "Discover Habitica, a combo of role-playing game and a task manager designed to help you build positive habits, break negatives ones, and achieve your goals. Explore its features, community, and open-source potential while learning how you can contribute to its growth." --- -*Today is day 13 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts). This is our second post in the Productivity & Collaboration Category.* +*Today is day 13 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts). This is our second post in the Productivity & Collaboration Category.*
-A couple of years ago - mid-pandemic - I was diagnosed with ADHD. Maybe it was unsurprising to people who knew me, but it was surprising to me. I didn’t have the symptoms I had heard about. I did well in school, I accomplished all of my tasks, all-in-all I was what some might consider incredibly productive. What I learned about myself and my ADHD is that I had created decades of coping mechanisms that I didn’t even realize. I tended to lean into the things that I was good at. +A couple of years ago - mid-pandemic - I was diagnosed with ADHD. Maybe it was unsurprising to people who knew me, but it was surprising to me. I didn’t have the symptoms I had heard about. I did well in school, I accomplished all of my tasks, all-in-all I was what some might consider incredibly productive. What I learned about myself and my ADHD is that I had created decades of coping mechanisms that I didn’t even realize. I tended to lean into the things that I was good at. - -That was easier when I wasn’t a mom. As a mom of four kids during a pandemic, I was *struggling.* It’s harder to maintain habits when there are constant distractions around, whether that’s a kid who wants a snack, laundry that (constantly) needs done, or code that needs to be written. I think it was around that time that I first used Habitica. +That was easier when I wasn’t a mom. As a mom of four kids during a pandemic, I was *struggling.* It’s harder to maintain habits when there are constant distractions around, whether that’s a kid who wants a snack, laundry that (constantly) needs done, or code that needs to be written. I think it was around that time that I first used Habitica. > Motivate yourself to achieve your goals. It's time to have fun when you get things done! Join over 4 million Habiticans and improve your life one task at a time. @@ -40,8 +39,7 @@ Habitica's community and open source metrics showcase its impact: - **Commits**: Approximately 25K commits, signifying steady development. - **Contributors**: 807 total contributors -If we look at those numbers, we’d probably say that they have a really thriving community of contributors. But if we look at the most recent numbers, we see that there have only been nine contributors (not including dependabot) in the last three months. - +If we look at those numbers, we’d probably say that they have a really thriving community of contributors. But if we look at the most recent numbers, we see that there have only been nine contributors (not including dependabot) in the last three months. [![contributors](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r46kzxo17yefrj2da2rm.png)](https://app.opensauced.pizza/pages/BekahHW/1200/contributors?range=30) @@ -49,7 +47,7 @@ Where have the contributors gone? There’s a joke in there about a habit app an ![their docs asking for more contributors](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/am5melzaj9up7tqd6r2r.png) -If their contributors consistently contributed at the rate of their star increases, then I don’t think that this would be an issue. This is another case where we can say that stars do not equal health of an open source project. +If their contributors consistently contributed at the rate of their star increases, then I don’t think that this would be an issue. This is another case where we can say that stars do not equal health of an open source project. [![Star History Chart](https://api.star-history.com/svg?repos=HabitRPG/habitica&type=Date)](https://star-history.com/#HabitRPG/habitica&Date) @@ -61,11 +59,9 @@ If we saw the number of new contributors equal the number of new stars, we’d s If you're willing to help, then so am I. If you take on an issue, drop it in the comments. For every issue you drop and complete, I'll take one too. Here's how to get started: -**Getting Started** - To get started as a contributor, check out [their docs](https://github.com/HabitRPG/habitica). +**Getting Started** - To get started as a contributor, check out [their docs](https://github.com/HabitRPG/habitica). **Issues** - [https://github.com/HabitRPG/habitica/issues](https://github.com/HabitRPG/habitica/issues). ## Takeaways Habitica can be a really great way to track your habits, create new habits, or break bad habits. But what if we use this opportunity to create a new habit together? What if we committed to [#100DaysofOSS](https://oss.fyi/100days) together? Or if we committed to supporting open source maintainers together? What's something that we all can work towards that helps us to hit our goals together? - - diff --git a/blog/2024/2024-02-14-modernizing-file-management-with-spacedrive--is-it-worth-it.md b/blog/2024/2024-02-14-modernizing-file-management-with-spacedrive--is-it-worth-it.md index 75d5497c..605d1735 100644 --- a/blog/2024/2024-02-14-modernizing-file-management-with-spacedrive--is-it-worth-it.md +++ b/blog/2024/2024-02-14-modernizing-file-management-with-spacedrive--is-it-worth-it.md @@ -6,21 +6,19 @@ slug: modernizing-file-management-with-spacedrive-is-it-worth-it description: "Check out Spacedrive, an open-source desktop file explorer. We check out its features, compare it to mainstream alternatives, and discuss its prospects in a competitive market." --- -*Today is day 14 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code). This is our first post in the Productivity & Collaboration Category.* +*Today is day 14 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code). This is our first post in the Productivity & Collaboration Category.*
-My first job after college was as a GED (Graduate Equivalent Diploma) instructor. That means that I was teaching people in the United States who had left high school how to pass their GED exam. I do *not* consider myself an organized person. (See [my last post](https://dev.to/opensauced/transforming-productivity-with-open-source-gamification-habitica-ppp) if you want to learn why.) But one day, my department lead showered me with praise for being so organized. And then I thought, "The dirty clothes on my floor at home aren't connected to my organization at work." They held separate space in my brain. +My first job after college was as a GED (Graduate Equivalent Diploma) instructor. That means that I was teaching people in the United States who had left high school how to pass their GED exam. I do *not* consider myself an organized person. (See [my last post](https://dev.to/opensauced/transforming-productivity-with-open-source-gamification-habitica-ppp) if you want to learn why.) But one day, my department lead showered me with praise for being so organized. And then I thought, "The dirty clothes on my floor at home aren't connected to my organization at work." They held separate space in my brain. - -As a person who has held many types of roles in tech over the last five years that I've been here (frontend dev, community builder, DevRel, DevEx), I've also found that the organization in my computer doesn't reflect the disorganization on my desk, and one of the reasons is because technology does an amazing job of setting us up for success. And Spacedrive is one of those technologies that does just that. +As a person who has held many types of roles in tech over the last five years that I've been here (frontend dev, community builder, DevRel, DevEx), I've also found that the organization in my computer doesn't reflect the disorganization on my desk, and one of the reasons is because technology does an amazing job of setting us up for success. And Spacedrive is one of those technologies that does just that. > One Explorer. All Your Files. Unify files from all your devices and clouds into a single, easy-to-use explorer. Designed for creators, hoarders and the painfully disorganized. Are cluttered files the equivalent of a cluttered bedroom? Because if so, I'm here for all the help I can get. - ## Features 🚀 Unified search capabilities @@ -51,7 +49,7 @@ Given the current state of Spacedrive's development and features, a Mac user may ⭐: 28.1k 👀 179 **Forks**: 929 -**License**: APGL-3.0 +**License**: APGL-3.0 **Commits**: Approximately 2.5K+ commits **Contributors**: 92 total contributors **Health**: 6/10 @@ -60,11 +58,8 @@ Spacedrive has momentum with stars, but it would be great to see that health sco ![OpenSauced Activity Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ugykp3hqwh4ruh6aif65.png) - - ## Takeaways -I'm currently still in the testing phase of Spacedrive. I think there are a lot of hidden features that I need to access and implement to "keep my room clean." I'd love to continue to see momentum with their contributors. We see a [roadmap](https://www.spacedrive.com/roadmap) on their site, but I'd love to see the issues reflected on their repo to have a better idea of what features are ready to be shipped, as opposed to the [8 open feature issues](https://github.com/spacedriveapp/spacedrive/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3AFeature) currently on their repository. +I'm currently still in the testing phase of Spacedrive. I think there are a lot of hidden features that I need to access and implement to "keep my room clean." I'd love to continue to see momentum with their contributors. We see a [roadmap](https://www.spacedrive.com/roadmap) on their site, but I'd love to see the issues reflected on their repo to have a better idea of what features are ready to be shipped, as opposed to the [8 open feature issues](https://github.com/spacedriveapp/spacedrive/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3AFeature) currently on their repository. What tools do you use to keep your computer "neat"? - diff --git a/blog/2024/2024-02-15-what-do-you-use-for-a-second-brain.md b/blog/2024/2024-02-15-what-do-you-use-for-a-second-brain.md index b762bb38..6036ff66 100644 --- a/blog/2024/2024-02-15-what-do-you-use-for-a-second-brain.md +++ b/blog/2024/2024-02-15-what-do-you-use-for-a-second-brain.md @@ -6,7 +6,7 @@ slug: what-do-you-use-for-a-second-brain description: "There are many tools out there to use as a second brain. This post highlights the open source appflowy." --- -*Today is day 15 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code). This is our first post in the Productivity & Collaboration Category.* +*Today is day 15 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you want more open source to learn-to-code programs, check out [this list](https://oss.fyi/learn-to-code). This is our first post in the Productivity & Collaboration Category.*
@@ -14,10 +14,8 @@ Have you ever heard of the concept of a "second brain"? A "second brain" is an e - I’ve tried Notion, not once, not twice, but more times than I want to admit. I want it to be *the* tool that rules them all, but what happens is that I sink a bunch of time with nothing to show. I’ve been a long-time Obsidian user because I feel that it’s simple to get started and not overcomplicated. But I also dislike dealing with Obsidian Sync to get access across devices. I've also tried Evernote and have checked out Bear and Roam. (It's almost like you need a second brain to keep track of all the second brain apps :zany_face:) It made sense to test out Appflowy, one of the open source apps that I’ve heard people recommend over and over again as an alternative to notion, so I wanted to try it out. - > AppFlowy is an AI-powered secure workspace where you achieve more without losing control of your data ## Factors to Consider when Choosing Your Second Brain @@ -62,7 +60,6 @@ The comparison table now includes Evernote and Notion as specific competitors: | Offline Mode | Yes | Some editions | No | | Free Plan Limitation | None | free tier that bumps up to starting at $10.83/month for more space and features | starting at $16/mo per team member for teams | - ### Open Source Stats AppFlowy's open source statistics demonstrate its growth and active development: @@ -88,15 +85,10 @@ One of the reasons I think they're able to build a strong community and consiste Their tech stack is a little out of the realm of my knowledge, but I'm going to check out their issues to see if I can make a contribution, because they seem like such a great project to contribute to. - ![appflowy tech stack](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3yyb79fkqlwc07hynare.png) - ## Takeaways Appflowy doesn't have all the features of Notion, and they admit that. But they're working on it, and they're transparent about their roadmap, while focusing on the user being in charge of their data. That seems like a pretty important feature if you're using it as a "second brain." - Is there a tool you're using as a "second brain"? Drop it in the comments. - - \ No newline at end of file diff --git a/blog/2024/2024-02-17-what-design-tool-should-i-use.md b/blog/2024/2024-02-17-what-design-tool-should-i-use.md index 6481ac90..5ec9ca1e 100644 --- a/blog/2024/2024-02-17-what-design-tool-should-i-use.md +++ b/blog/2024/2024-02-17-what-design-tool-should-i-use.md @@ -6,16 +6,15 @@ slug: what-design-tool-should-i-use description: "Discover the world of open-source design tools with Penpot, featuring web-based collaboration, real-time co-authoring, and support for open standards. Compare Penpot with Figma, Sketch, and Adobe XD, review its community engagement, and gain expert insights on prioritizing openness and standardization. " --- -*Today is day 17 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is post is in the Productivity & Collaboration Category.* +*Today is day 17 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is post is in the Productivity & Collaboration Category.* Designers today have many options for design tools. But navigating closed ecosystems, subscription models, and limited integrations makes it all, well, complicated. And to add to this complication, I want to share another option that might reshape the design experience: the open source tool, Penpot. - > Designers and developers can finally work in unison to build beautifully designed software experiences that truly scale up. -In this post, we'll take a look at Penpot's features, compare it to proprietary alternatives, and take a look at its community. +In this post, we'll take a look at Penpot's features, compare it to proprietary alternatives, and take a look at its community. ## Spotlight: Penpot @@ -31,14 +30,14 @@ Some of the most notable features today include: ## Open Source -Penpot talks a lot about their decision to be an open source tool, including their **Free For Ever** policy. +Penpot talks a lot about their decision to be an open source tool, including their **Free For Ever** policy. > Our mission is to provide an open source & open standards platform to bring collaboration between designers and developers to the next level. This is reflected by the support they've had around their open source project. -- Stars: 25.6k -- Watching: 205 +- Stars: 25.6k +- Watching: 205 **Forks**: 1.2k **Commits**: 12.5k+ **Total Contributors**: 147 @@ -46,16 +45,14 @@ This is reflected by the support they've had around their open source project. [https://github.com/penpot/penpot](https://github.com/penpot/penpot) -We can see there's a lot movement on the Penpot repo in the last 90 days, with a strong PR velocity. +We can see there's a lot movement on the Penpot repo in the last 90 days, with a strong PR velocity. [![repo insight to penpot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yvv52ovf3r0b8sx7vd57.png)](https://app.opensauced.pizza/pages/BekahHW/1206/dashboard?range=7) -When we dive in a little deeper to see their contributors, we see a pretty good balance of the top five contributors. It would be great, however, to see more support from the community, since there is no shortage of issues (324 at the time of writing). +When we dive in a little deeper to see their contributors, we see a pretty good balance of the top five contributors. It would be great, however, to see more support from the community, since there is no shortage of issues (324 at the time of writing). [![pennpot contributor breakdown](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1152013wsrxqignb89pa.png)](https://app.opensauced.pizza/lists/701ad28d-a95b-4cd6-9ec8-3e87cde0b304/overview) - - ## Comparison | Feature | Penpot | Figma | Sketch | Adobe XD | @@ -69,4 +66,4 @@ When we dive in a little deeper to see their contributors, we see a pretty good ## Takeaways -Examining open source alternatives enables designers and developers to enjoy benefits beyond proprietary counterparts, such as increased control, reduced costs, and enhanced extensibility. And with Penpot, there's no exception. Evaluating design tools requires careful consideration of a variety factors, ranging from ease of use to cost structures, feature availability, and alignment with individual values and goals. With Penpot 2.0 dropping soon, I definitely have my eye on this one. \ No newline at end of file +Examining open source alternatives enables designers and developers to enjoy benefits beyond proprietary counterparts, such as increased control, reduced costs, and enhanced extensibility. And with Penpot, there's no exception. Evaluating design tools requires careful consideration of a variety factors, ranging from ease of use to cost structures, feature availability, and alignment with individual values and goals. With Penpot 2.0 dropping soon, I definitely have my eye on this one. diff --git a/blog/2024/2024-02-18-the-open-source-slack-alternative.md b/blog/2024/2024-02-18-the-open-source-slack-alternative.md index a1d50cec..fe48bda4 100644 --- a/blog/2024/2024-02-18-the-open-source-slack-alternative.md +++ b/blog/2024/2024-02-18-the-open-source-slack-alternative.md @@ -6,14 +6,13 @@ slug: the-open-source-advantage-how-rocketchat-transforms-team-communication description: "Looking for a Slack alternative that prioritizes customization, privacy, and affordability? Learn how Rocket.Chat stands out as the superior choice for innovative team collaboration." --- -*Today is day 18 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is the last post is in the Productivity & Collaboration Category.* +*Today is day 18 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is the last post is in the Productivity & Collaboration Category.* -I remember the first slack I joined. I was just learning how to code, and I got involved in a Moms in Tech group. The founder of the group and I met up for coffee while my one-year-old played nearby, and she told me to join the group's slack. +I remember the first slack I joined. I was just learning how to code, and I got involved in a Moms in Tech group. The founder of the group and I met up for coffee while my one-year-old played nearby, and she told me to join the group's slack. - -"What's slack?" +"What's slack?" She explained it was a messaging platform, and I tried to wrap my head around it, but coming from a non-technical background, I'll admit that I spent a lot of those first days confused about what was happening, where it was happening, and what I was supposed to do. (I think it took me days to send my first gif, but that's a story for another day.) @@ -40,7 +39,6 @@ per person/month | I was pretty impressed by the engaged community and contributors to Rocket.Chat. I appreciate that their [contribution guide](https://developer.rocket.chat/contribute-to-rocket.chat/modes-of-contribution) recognizes diverse contributions. (If you want to know more about why I think that's important, check out my post, [The Need for Recognition in Open Source](https://opensauced.pizza/blog/the-need-for-recognition-in-open-source). - ![Rocket.Chat Contributors over 30 days](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cjtky25a5svzf3lsxs9t.png) *You can check out the Insight page [here](https://app.opensauced.pizza/pages/BekahHW/1209/activity?range=30)* @@ -53,13 +51,12 @@ I was pretty impressed by the engaged community and contributors to Rocket.Chat. **commits**: 25k+ **contributors: 857 -There's a lot of movement and engagement in their open source community. The issue velocity is on the longer side of things. Some of that is caused by unclosed issues from years ago (2016) that could probably be cleaned up. +There's a lot of movement and engagement in their open source community. The issue velocity is on the longer side of things. Some of that is caused by unclosed issues from years ago (2016) that could probably be cleaned up. ![Metrics dashboard for Rocket.Chat](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rcwapqcaq8njyr2g3ras.png) -What's impressive about the Rocket.Chat Community is that it stays consistent if we look back from thirty days to three months. +What's impressive about the Rocket.Chat Community is that it stays consistent if we look back from thirty days to three months. ## Takeaways Rocket.Chat seems like a really great product if you're prioritizing privacy, integration, customization, and collaboration. If we're looking at it from a high-level, it provides a comprehensive, open-source alternative to conventional messaging applications and has a thriving contributor community to support the project. - diff --git a/blog/2024/2024-02-19-dev-medium-and-hashnode-choosing-your-digital-stage.md b/blog/2024/2024-02-19-dev-medium-and-hashnode-choosing-your-digital-stage.md index b190323d..77a65208 100644 --- a/blog/2024/2024-02-19-dev-medium-and-hashnode-choosing-your-digital-stage.md +++ b/blog/2024/2024-02-19-dev-medium-and-hashnode-choosing-your-digital-stage.md @@ -6,26 +6,24 @@ slug: dev-medium-and-hashnode-choosing-your-digital-stage description: "forem, Medium, or Hashnode? Take a look at the open source software and community that powers Dev.to." --- -*Today is day 19 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is the first post in the Content Management and Publishing category.* +*Today is day 19 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is the first post in the Content Management and Publishing category.* -I started blogging when I was learning how to code. Back then, I had only heard of Medium, and I didn’t think it would be a good fit for me. Fast forward to a couple of years later, I was following [The Practical Dev](https://twitter.com/ThePracticalDev) on the platform formerly known as Twitter, and I appreciated the audience it was building both there and here. I posted my first Dev blog in April of 2020, [A Letter to My Past Self](https://dev.to/bekahhw/a-letter-to-my-past-self-1lfo), and I’ve posted regularly since then. Sure, Dev isn’t the only platform out there, but it’s built with the open source software, Forem, and one of the most reputable open source alternatives for blogging. +I started blogging when I was learning how to code. Back then, I had only heard of Medium, and I didn’t think it would be a good fit for me. Fast forward to a couple of years later, I was following [The Practical Dev](https://twitter.com/ThePracticalDev) on the platform formerly known as Twitter, and I appreciated the audience it was building both there and here. I posted my first Dev blog in April of 2020, [A Letter to My Past Self](https://dev.to/bekahhw/a-letter-to-my-past-self-1lfo), and I’ve posted regularly since then. Sure, Dev isn’t the only platform out there, but it’s built with the open source software, Forem, and one of the most reputable open source alternatives for blogging. - > dev.to (or just DEV) is hosted by Forem. It is a community of software developers who write articles, take part in discussions, and build their professional profiles. We value supportive and constructive dialogue in the pursuit of great code and career growth for all members. The ecosystem spans from beginner to advanced developers, and all are welcome to find their place within our community. ❤️ Let’s take a look behind the scenes and see how Dev, as powered by Forem, compares to other proprietary platforms. - + ## Features - Customizable Community Spaces: Tailor the look and feel to match the community's identity, like we have on our [OpenSauced Page](https://dev.to/opensauced). -- Content Creation and Management: Collaborative tools for writing, editing, and organizing content with your team. Admins are able to edit and schedule content and add and remove writers, and writers can choose whether to write on their own account or within an organization they’re a part of. +- Content Creation and Management: Collaborative tools for writing, editing, and organizing content with your team. Admins are able to edit and schedule content and add and remove writers, and writers can choose whether to write on their own account or within an organization they’re a part of. - Social Networking Features: Connect with others, follow topics, and join discussions. - Options for Curating Your Feed: Includes filters for relevant, latest, and top. - Additional features: Guides, Shop, Media Uploads, and community engagement activities. - [![Forem Dashboard on OpenSauced](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2vd9zagcdsnre4c6ntfs.png)](https://app.opensauced.pizza/pages/BekahHW/1164/dashboard?range=30) ## Forem v. Hashnode and Medium @@ -52,11 +50,11 @@ contributors: 701 [![Star History Chart](https://api.star-history.com/svg?repos=forem/forem&type=Date)](https://star-history.com/#forem/forem&Date) -We see the star chart starting to flatten out here, and I think the contributor community reflects that reality as well. +We see the star chart starting to flatten out here, and I think the contributor community reflects that reality as well. -### Community +### Community -There's a thriving community of writers on Dev, as well as moderators. But if we take a look behind the scenes, we only see 14 contributors in the last thirty days. +There's a thriving community of writers on Dev, as well as moderators. But if we take a look behind the scenes, we only see 14 contributors in the last thirty days. [![Contributor Graph](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oib6l2ca4rjw1gqbz4uy.png)](https://app.opensauced.pizza/pages/BekahHW/1164/activity?range=30) @@ -64,12 +62,12 @@ The top contributor (at the time of this writing) to the Forem repo is @ben. [![ben halpern card](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ggnjpmz9ptltbhtyppfa.png)](https://app.opensauced.pizza/user/benhalpern/card) -It's interesting to note that many are contributing to a variety of other open source projects as well, including tailwindlabs, rubytoolbox, avo-hq and more. +It's interesting to note that many are contributing to a variety of other open source projects as well, including tailwindlabs, rubytoolbox, avo-hq and more. [![forem contributors](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h5bw3ky4pefi3se7du5u.png)](https://app.opensauced.pizza/lists/e658c0d8-070d-4cdc-8979-f5f7394344b4/activity) ## Takeaways -Dev offers something other platforms don't: the transparency of being an open source product. There are currently over 500 issues open, so there's no shortage of work for maintainers, triagers, and contributors. Here's my pitch: If you use this platform and you'd like to see it thrive as a successful open source project, take a look at their [contributing guide](https://developers.forem.com/contributing-guide/forem) and see how you can get involved. +Dev offers something other platforms don't: the transparency of being an open source product. There are currently over 500 issues open, so there's no shortage of work for maintainers, triagers, and contributors. Here's my pitch: If you use this platform and you'd like to see it thrive as a successful open source project, take a look at their [contributing guide](https://developers.forem.com/contributing-guide/forem) and see how you can get involved. -If you'd like to see the full list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts). \ No newline at end of file +If you'd like to see the full list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts). diff --git a/blog/2024/2024-02-20-whats-the-right-newsletter-platform-for-you-open-source-spotlight-on-ghost.md b/blog/2024/2024-02-20-whats-the-right-newsletter-platform-for-you-open-source-spotlight-on-ghost.md index a8212d94..f6d8d522 100644 --- a/blog/2024/2024-02-20-whats-the-right-newsletter-platform-for-you-open-source-spotlight-on-ghost.md +++ b/blog/2024/2024-02-20-whats-the-right-newsletter-platform-for-you-open-source-spotlight-on-ghost.md @@ -6,7 +6,7 @@ slug: ghost-the-open-source-newsletter-platform-you-should-know-about description: "Choosing a newsletter provider can be tricky. In this post, we'll look at Ghost, MailChimp, and Substack. " --- -*Today is day 20 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts). This post is in the Content Management and Publishing category.* +*Today is day 20 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts). This post is in the Content Management and Publishing category.*
@@ -14,15 +14,13 @@ I've recently been on the hunt for a newsletter provider for a new project I'm w - > Ghost is a powerful app for professional publishers to create, share, and grow a business around their content. It comes with modern tools to build a website, publish content, send newsletters & offer paid subscriptions to members. - ## Features - Minimalist Design: Ghost's user interface is clean and uncluttered, which makes it easier to get started. -- Markdown Support: Ghost uses markdown for writing, which means you can format your posts quickly and easily without touching a single line of code. +- Markdown Support: Ghost uses markdown for writing, which means you can format your posts quickly and easily without touching a single line of code. - Customization Options: With Ghost, you can tailor your blog to match your style. Whether you're after a specific look or functionality, the platform's library of themes and plugins lets you create a blog that's uniquely yours. @@ -30,7 +28,7 @@ I've recently been on the hunt for a newsletter provider for a new project I'm w ## Comparison -| Feature | Ghost (https://ghost.org/) | Substack | Mailchimp | +| Feature | [Ghost](https://ghost.org) | Substack | Mailchimp | |------------------------|---------------------------------------------|--------------------------------------|-------------------------------------| | Nature | Open-source | Proprietary | Proprietary | | Initial Cost | starts at $9/mo for up to 500 readers | Free to start; fees for transactions | Free to start up to 500; tiered pricing based on features and subscriber count | @@ -56,10 +54,9 @@ Not only is there a high activity rate, but there's also a high PR velocity. ![Ghost's open source dashboard on OpenSauced](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/axqkkufu2aken7qmehl8.png) +## Community -## Community - -Ghost has a consistent contributor base over the last three months, with over 30 contributors each month. +Ghost has a consistent contributor base over the last three months, with over 30 contributors each month. ![Contributor Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kd8geq4p8nefum1fbi58.png) @@ -67,4 +64,4 @@ Ghost has a consistent contributor base over the last three months, with over 30 ## Last Thoughts -There are a lot of things you need to consider when choosing a newsletter provider. There are tradeoffs for each of these providers. But if you're looking for development transparency, Ghost is a good choice with a heathy open source community community and consistent contributors. \ No newline at end of file +There are a lot of things you need to consider when choosing a newsletter provider. There are tradeoffs for each of these providers. But if you're looking for development transparency, Ghost is a good choice with a heathy open source community community and consistent contributors. diff --git a/blog/2024/2024-02-21-whats-a-headless-cms.md b/blog/2024/2024-02-21-whats-a-headless-cms.md index e17336f1..8220e703 100644 --- a/blog/2024/2024-02-21-whats-a-headless-cms.md +++ b/blog/2024/2024-02-21-whats-a-headless-cms.md @@ -6,7 +6,7 @@ slug: whats-a-headless-cms description: "Go Headless, Go Open Source! Discover the flexibility, freedom, and community support of choosing the right headless CMS." --- -*Today is day 21 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in exploring a longer list of open source headless CMS, check out [this list](https://oss.fyi/headless-cms). This post is in the Content Management and Publishing category.* +*Today is day 21 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in exploring a longer list of open source headless CMS, check out [this list](https://oss.fyi/headless-cms). This post is in the Content Management and Publishing category.*
@@ -14,7 +14,6 @@ Imagine managing your website's content directly where it lives – on the live - ## What is Headless? Headless CMS systems separate content (the body) from presentation (the head). This means you store and manage your content in a central hub, but its presentation on your website (or mobile app, or even smartwatch) is flexible. You choose the front-end technology (React, Vue, etc.) that best suits your needs and vision. Let's explore that from a different perspective: legos. @@ -23,13 +22,13 @@ Headless CMS systems separate content (the body) from presentation (the head). T Imagine you're an architect, designing your dream building. Traditional CMS would be like working with pre-built Lego sets. You'd be confined to their designs, with limited flexibility. Sure, you could choose from various sets like castles, spaceships, or houses, but customizing them significantly is nearly impossible. Each piece serves a specific purpose, locked into the overall structure. -The world of headless CMS is like a giant box overflowing with different kinds of Legos. The bricks aren't for a specific set; there's a variety of shape, size, and color for you to use as you please. +The world of headless CMS is like a giant box overflowing with different kinds of Legos. The bricks aren't for a specific set; there's a variety of shape, size, and color for you to use as you please. #### Bricks Represent Content Think of each Lego brick as a piece of your website's content – text, images, videos, you name it. Each brick holds its unique value and meaning, just like your content elements. Whether it's a captivating headline brick or a supporting information brick, they all contribute to the overall experience. -#### Flexibility +#### Flexibility The benefit of headless CMS is its separation of content (bricks) from presentation (building instructions). You can assemble these content bricks in any way you see fit, just like building with Legos. Want a modern, minimalist website? Stack the bricks sleekly and efficiently. A whimsical, interactive design? Combine bricks in unexpected ways. @@ -58,7 +57,7 @@ Let's talk about Gutenberg, the new editing experience from WordPress. Gutenberg - **Ease of Use**: The block-based editing experience is generally considered user-friendly, so creators can manage and modify content without a lot of coding knowledge. - **Headless-Lite Functionality**: While it's not exactly headless, you still have the ability to use APIs to produce content on a variety of front-end applications. - **Large Community & Resources**: WordPress is known for its large community and there are plugins for additional functionalities and support. - + #### Cons - **Flexibility**: Compared to true headless CMS like Strapi and Contentful, you have less control over design and customization. @@ -72,6 +71,7 @@ Gutenberg within WordPress might be a good fit for: - Small projects or personal websites: It's a platform that's easy for non-developers to use and without extensive customization. - Existing WordPress users: For users who want to experiment with headless-like functionality and are already familiar with WordPress. - Content-first projects: If the main focus is on managing and publishing without complex design needs. + #### Open Source Support The popularity of WordPress isn't lost on Gutenberg, with a great starts to forks ratio, a large number of contributors with a high activity rate. This definitely indicates a strong community supporting the project. @@ -102,7 +102,6 @@ The popularity of WordPress isn't lost on Gutenberg, with a great starts to fork - Teams who have technical expertise and want to leverage Strapi's open source offerings. - Projects that prioritize flexibility and need to integrate with a variety of technologies. - #### Open Source Support Strapi has solid activity supporting the open source project, with a steady cadence of contributors and velocity. The stars to forks ratio indicates a good ratio of outside contributors as well. @@ -111,7 +110,7 @@ Strapi has solid activity supporting the open source project, with a steady cade ### Contentful -Contentful caters to both technical and non-technical users. It allows for cross-team collaboration, focuses on scalability, and supports integrations. +Contentful caters to both technical and non-technical users. It allows for cross-team collaboration, focuses on scalability, and supports integrations. #### Strengths @@ -119,7 +118,6 @@ Contentful caters to both technical and non-technical users. It allows for cross - **Pre-Built Components**: If you need to streamline development, you can use their content models and integrations. - **Broad Audience**: Contentful is built for every contributor, allowing more users to update and manage content. - #### Cons - **Limited Flexibility**: While is has customization, it doesn't have the granular control some developers may be used to. @@ -131,7 +129,7 @@ Contentful caters to both technical and non-technical users. It allows for cross - Teams that need pre-built components and content management support. #### Open Source Support - + ![Contentful OpenSauced Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x4hi2nwd4r2up5nddnh9.png) ### Takeaways @@ -140,4 +138,4 @@ If you're interested in their open source support and project sustainability, we This is just a taste of open source headless CMS, but remember, it's about finding the right tools that empower your creativity, not just having the most options. -Do you use a headless CMS? If so, which one? \ No newline at end of file +Do you use a headless CMS? If so, which one? diff --git a/blog/2024/2024-02-22-from-messy-to-memorable-shorten-your-links-boost-your-brand.md b/blog/2024/2024-02-22-from-messy-to-memorable-shorten-your-links-boost-your-brand.md index 2d800d2c..120231c9 100644 --- a/blog/2024/2024-02-22-from-messy-to-memorable-shorten-your-links-boost-your-brand.md +++ b/blog/2024/2024-02-22-from-messy-to-memorable-shorten-your-links-boost-your-brand.md @@ -6,7 +6,7 @@ slug: from-messy-to-memorable-shorten-your-links-boost-your-brand description: "Tired of clunky link shorteners? Dub.co is here! It's easy to use, packed with features, and totally open source. " --- -*Today is day 22 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://oss.fyi/top-oss-2023). This is in the Content Management and Publishing category.* +*Today is day 22 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://oss.fyi/top-oss-2023). This is in the Content Management and Publishing category.* I had never really used a link shortener until about a year and a half ago, and didn't realize how convenient they really are. So if you're not sure why you would use one or which to choose, you can check out the rest of this post. @@ -18,7 +18,7 @@ Link shorteners can be really useful for the following reasons: 1. **They can be easier to read**: Long, complicated URLs can be hard to read, type, and share, especially on platforms with character limits like X/Twitter. Shortened links are easier to remember and take up less space, making them ideal for social media, messaging, and print materials. 2. **Tracking and Analytics**: Link shorteners often provide detailed analytics about who clicks on your links, where they come from, and what devices they use. This can help you better understand your audience, track campaign performance, and optimize your content strategy. -3. **Branding and Customization**: With branded link shorteners like Dub.co, you can create links that reflect your brand identity with custom domains and personalized messages. At OpenSauced, you'll notice that our shortened links start with oss.fyi. +3. **Branding and Customization**: With branded link shorteners like Dub.co, you can create links that reflect your brand identity with custom domains and personalized messages. At OpenSauced, you'll notice that our shortened links start with oss.fyi. 4. **QR Code Generation**: Integrating QR codes with your links makes it easier to connect people to your product through print materials. (Shorteners often have built-in QR code generators.) At [OpenSauced](https://opensauced.pizza/), we use Dub.co, an open source alternative to Bit.ly. @@ -29,11 +29,8 @@ At [OpenSauced](https://opensauced.pizza/), we use Dub.co, an open source altern Dub.co allows you to create custom, branded short links. They also have an analytics dashboard that provides insights into link performance. They also have QR code generation and link personalization. Here's an example of one of our QR codes: - ![OpenSacued QR code to newsletter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r6b35q3mfwb878zh0yvx.png) - - ## Comparison with Bit.ly | Feature | Dub.co | Bit.ly | @@ -44,7 +41,6 @@ Dub.co allows you to create custom, branded short links. They also have an analy | **API Access** | Robust | Restricted | | **Pricing** | Competitive | Free/Paid Plans | - ## Open Source Stats - Stars: 14.8k @@ -53,7 +49,7 @@ Dub.co allows you to create custom, branded short links. They also have an analy commits: 2.5k+ total contributors: 42 -We can see that there's some strong activity on PRs over the last thirty days with consistent contributions, although the number of contributors both all time and in the last thirty days isn't high. This may be indicative of being a fairly new open source repository, with the first PR being merged in during 2022. +We can see that there's some strong activity on PRs over the last thirty days with consistent contributions, although the number of contributors both all time and in the last thirty days isn't high. This may be indicative of being a fairly new open source repository, with the first PR being merged in during 2022. ![Dub dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y3ycyw9onk480s98u79m.png) @@ -67,4 +63,4 @@ We also see that their contributors are spending about half of their open source ## Takeaways -Dub offers transparency, features, and an open source environment. It's platform is easy to use and not overcomplicated, with good analytics to help you understand your content campaigns. Bit.ly might have wider brand recognition, but Dub.co is definitely worth checking out, especially since they have a generous free tier. \ No newline at end of file +Dub offers transparency, features, and an open source environment. It's platform is easy to use and not overcomplicated, with good analytics to help you understand your content campaigns. Bit.ly might have wider brand recognition, but Dub.co is definitely worth checking out, especially since they have a generous free tier. diff --git a/blog/2024/2024-02-23-sending-emails-with-react.md b/blog/2024/2024-02-23-sending-emails-with-react.md index 579afcc4..2aae922b 100644 --- a/blog/2024/2024-02-23-sending-emails-with-react.md +++ b/blog/2024/2024-02-23-sending-emails-with-react.md @@ -6,25 +6,24 @@ slug: email-campaign-solutions-what-are-you-using description: "Discover the among different email campaign solutions, including Customer.io, ConvertKit, EmailOctopus, the open-source alternative Resend. Find out which option better suits your needs." --- -*Today is day 23 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is the last post in the Content Management and Publishing category.* +*Today is day 23 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts) or if you're interested in some of the top OSS projects of last year, check out [this list](https://app.dub.co/open-sauced). This is the last post in the Content Management and Publishing category.*
-Recently, I’ve gained some experience working on drip campaign emails to help support our new users at [OpenSauced](https://oss.fyi/). So when Vic asked this question on X, I thought it would make for an interesting blog post in my series. +Recently, I’ve gained some experience working on drip campaign emails to help support our new users at [OpenSauced](https://oss.fyi/). So when Vic asked this question on X, I thought it would make for an interesting blog post in my series. - *[Link to post](https://x.com/VicVijayakumar/status/1756162192410341439?s=20)* There were a lot of responses that you can check out in the thread, but we're going to focus on comparing Customer.io, ConvertKit, EmailOctopus with the open source project, Resend, which we actually use at OpenSauced. -## Customer.io: +## Customer.io *Customer.io is a comprehensive messaging platform designed to help marketers create automated message campaigns.* - **Features**: Advanced segmentation, automated messaging, direct and third-party integrations, data warehouse synch, detailed analytics. -- **Cost**: Starts at $100/mo +- **Cost**: Starts at $100/mo ## ConvertKit @@ -61,7 +60,6 @@ It's interesting to look at Resend's Contributor Distribution graph over the las After a little digging, I could see that the increase corresponded to their launch week. - ## Last Thoughts At OpenSauced, we currently use Resend for our welcome and onboarding emails for new users. Here's a peek at part of our welcome email for new maintainers who sign up. We're using [resend/react-email](https://github.com/resend/react-email). Shoutout to Isa, our amazing designer for making them beautiful! @@ -72,12 +70,10 @@ If you're sending out email campaigns, I'd love to know what you're using. Drop ### Bonus Section -Over the weekend I learned about [JSXemail](https://jsx.email/), which was built off a fork of react-email. We don't see the same support that Resend has, but they clearly state that they have improved the `react-email` usability. +Over the weekend I learned about [JSXemail](https://jsx.email/), which was built off a fork of react-email. We don't see the same support that Resend has, but they clearly state that they have improved the `react-email` usability. [![jsx email dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bbb6a786vk53kpvw4nrx.png)](https://app.opensauced.pizza/pages/BekahHW/1207/dashboard?range=90) > The goals of this project are to provide an improved focus on Developer Experience, maintenance, fast improvements and fast releases. As such, we feel that jsx-email has a number of improvements and advantages over react-email. I haven't dug into it, but I thought it was worth mentioning in case anyone wanted to explore options for creating their emails using `jsx` or `tsx`. - - diff --git a/blog/2024/2024-02-24-what-would-your-dream-home-automation-look-like.md b/blog/2024/2024-02-24-what-would-your-dream-home-automation-look-like.md index 15e02d08..7e86621b 100644 --- a/blog/2024/2024-02-24-what-would-your-dream-home-automation-look-like.md +++ b/blog/2024/2024-02-24-what-would-your-dream-home-automation-look-like.md @@ -6,7 +6,7 @@ slug: create-your-dream-home-automation-freedom-flexibility-with-home-assistant description: " Home Assistant offers freedom, flexibility & privacy for your smart home. Automate anything, integrate everything, & join a vibrant community." --- -*Today is day 24 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts).* +*Today is day 24 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts).*
@@ -14,7 +14,6 @@ I don't know about you, but when I was a kid I was into science fictions and ima - ![Jetsons's Gif](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExczIxc213Y2x6MXBzd2p5cTQ5c3YxYTl4d250dG4zejRzYXMxdmRsYiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/20Mr9uJLkWfqWDs6Ul/giphy.gif) That hasn't exactly happened, but that doesn't mean that science fiction hasn't become a reality in our lives today. Now that we have so many automation tools out there, our tools can anticipate our needs. Take our homes, for example. You can have automations for adjusting your lights, temperature, and even entertainment systems depending on the time of day. This is just the beginning. Imagine some of these scenarios: @@ -34,12 +33,11 @@ That hasn't exactly happened, but that doesn't mean that science fiction hasn't | Voice control | Yes | Yes | Yes | Yes | Yes | | Price | Free | $12/month | $12/month | Free | Free | - ## Why Open Source Home Automation is Important - Freedom: You're not by limited by a single product's offerings. -- Customization: You can create automations that match your lifestyle. -- Privacy: You can keep your data on your own devices, not in the cloud. +- Customization: You can create automations that match your lifestyle. +- Privacy: You can keep your data on your own devices, not in the cloud. - Beyond the Basics: You can make your dreams come true but building your own projects. For example, you can build custom dashboards to monitor your home's energy usage or create voice commands for your smart devices or connect and personalize your Home Assistant to third-party services, from weather forecasts to traffic updates. ## Spotlight: Home Assistant @@ -50,26 +48,24 @@ Home Assistant is open source, giving you complete control over your data and de You can see over the last thirty days how evenly distributed the contributors are: - ![Contributor graph](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qcrzivvtx0q9rj5jgpd9.png) We also see a lot of open source activity from their community members, with the top repository being home-assistant/core - ![Contributor activity](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a6wteai9mbds7h0p9awy.png) *You can check out the full contributor insight page [here](https://app.opensauced.pizza/lists/53ddbc37-285f-481b-ad82-9a608e8957f3/activity)* ### All Time Stats -With their all time stats, we can see there are a lot of contributors and users of the product. According to their GitHub page, they have 2.3k users. +With their all time stats, we can see there are a lot of contributors and users of the product. According to their GitHub page, they have 2.3k users. - Stars: 67.4k stars -- Watching: 1.3k -- Forks: 27.2k +- Watching: 1.3k +- Forks: 27.2k ## Last thoughts Are you using home automation? What types of automations do you have set up? What devices are you using? -I can't find the video right now, but one of my favorite use-cases is for opening up a chicken coop door to let the chickens out when the sun comes up. \ No newline at end of file +I can't find the video right now, but one of my favorite use-cases is for opening up a chicken coop door to let the chickens out when the sun comes up. diff --git a/blog/2024/2024-02-25-open-source-ai-glasses-would-you-wear-them.md b/blog/2024/2024-02-25-open-source-ai-glasses-would-you-wear-them.md index ee3ac44f..0334b67f 100644 --- a/blog/2024/2024-02-25-open-source-ai-glasses-would-you-wear-them.md +++ b/blog/2024/2024-02-25-open-source-ai-glasses-would-you-wear-them.md @@ -6,7 +6,7 @@ slug: open-source-ai-glasses-would-you-wear-them description: "Open Source AI glasses, Frame has potential to be an interesting product in the AR world. But does it hold up?" --- -*Today is day 25 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts).* +*Today is day 25 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts).*
@@ -14,10 +14,9 @@ There have been some really exciting launches in the AR/VR world lately. These a - ## Community Projects -From what I can tell from their documentation and their app, the features are largely dependent on the users. Brilliant supplies the hardware and the API for both their glasses and monocle and it's up to you to decide where to take it. Some notable projects include: +From what I can tell from their documentation and their app, the features are largely dependent on the users. Brilliant supplies the hardware and the API for both their glasses and monocle and it's up to you to decide where to take it. Some notable projects include: - [Teleprompter for Google Slides](https://github.com/milesprovus/Monocle-Teleprompter) by milesprovus - [A heads up display workout app](https://github.com/simonevetere/monocle) by simonevetere and jdc-cunningham @@ -31,7 +30,7 @@ As a glasses wearer, myself, it was nice to see that they have options to fit yo ## Open Source Advantage? -We don't see a ton of open source support over the last 30 days. +We don't see a ton of open source support over the last 30 days. ![Brilliant repo dashboards](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wcvzkyy50x0ig8y78wu6.png) @@ -44,6 +43,3 @@ Because there doesn't seem to be one central repo, it's a little hard to judge t ## Takeaways There hasn't been a lot of movement across their open source projects, but does that mean we shouldn't watch what they're doing? No. With their new product shipping in April, it will be interesting to see if there's more activity and engagement then. There's a lot of things still coming soon with their product, including documentation. Hopefully, that will give a clearer picture of what to expect with their new releases and how to get involved in their open source projects. - - - diff --git a/blog/2024/2024-02-26-exploring-supabase-the-open-source-backend-for-developers.md b/blog/2024/2024-02-26-exploring-supabase-the-open-source-backend-for-developers.md index 5d8e9ae2..f8d06c8a 100644 --- a/blog/2024/2024-02-26-exploring-supabase-the-open-source-backend-for-developers.md +++ b/blog/2024/2024-02-26-exploring-supabase-the-open-source-backend-for-developers.md @@ -13,7 +13,6 @@ If your skillset is in front-end but you need to implement a backend for your pr - [https://github.com/supabase](https://github.com/supabase) Traditional BaaS (Backend as a Service) products are often limited, and there can be concerns with proprietary platforms around transparency, customization, and cost efficiency. As an open source project, Supabase allows you to see its codebase, and you have the opportunity to customize the project in the ways that work for you. They also have clear [pricing guidelines](https://supabase.com/pricing), with a free tier that allows you to test it out. @@ -32,12 +31,12 @@ Traditional BaaS (Backend as a Service) products are often limited, and there ca |------------------|-------------------------|----------------------------------------|----------------------------------------|---------------------------------| | Open Source | Yes | No | Limited | No | | Pricing | Transparent, pay-as-you-go | Free tier, per-usage costs | Free tier, per-usage costs | Per-usage costs | -| Database | Postgres (relational), Supabase Realtime support | Firebase Realtime Database: A NoSQL JSON Database | Amazon DynamoDB (NoSQL) and Amazon Aurora Serverless (relational)| Cosmos DB (multi-model database service) +| Database | Postgres (relational), Supabase Realtime support | Firebase Realtime Database: A NoSQL JSON Database | Amazon DynamoDB (NoSQL) and Amazon Aurora Serverless (relational)| Cosmos DB (multi-model database service) | Authentication | Built-in | Built-in | Built-in | Integrates with Azure AD | ### Open Source Strengths -Because transparency can be really important when choosing your backend as a service, checking out the Supabase repository is necessary. We see a lot of healthy levels of contribution and collaboration. The team is very efficient at getting their issues closed and pull requests merged in. Likewise, they have a good star:fork ratio, meaning that people aren't just watching the project, they're contributing to make it better. +Because transparency can be really important when choosing your backend as a service, checking out the Supabase repository is necessary. We see a lot of healthy levels of contribution and collaboration. The team is very efficient at getting their issues closed and pull requests merged in. Likewise, they have a good star:fork ratio, meaning that people aren't just watching the project, they're contributing to make it better. ![Supabase dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w3lnyab2qy406pxumqde.png) @@ -53,4 +52,4 @@ Supabase appeals to a wide audience, including personal projects, start-ups, and We'd love to hear your stories of using Supabase. Share your experiences in the comments below. -We're coming to the end of our series this week. If you want to hear more about what I learned writing 29 posts on open source alternatives this month, [sign up for our newsletter](https://news.opensauced.pizza/#/portal/signup) where I'll share my takeaways. \ No newline at end of file +We're coming to the end of our series this week. If you want to hear more about what I learned writing 29 posts on open source alternatives this month, [sign up for our newsletter](https://news.opensauced.pizza/#/portal/signup) where I'll share my takeaways. diff --git a/blog/2024/2024-02-27-would-you-use-an-open-source-personal-finance-app.md b/blog/2024/2024-02-27-would-you-use-an-open-source-personal-finance-app.md index 16afdd5b..6840b842 100644 --- a/blog/2024/2024-02-27-would-you-use-an-open-source-personal-finance-app.md +++ b/blog/2024/2024-02-27-would-you-use-an-open-source-personal-finance-app.md @@ -11,12 +11,10 @@ description: Open Source personal finance apps provide transparency and communit On January 1, 2024, Mint, the personal finance app - acquired by Intuit in 2009 - shut down. If you're not familiar with Mint, it allowed users to see multiple accounts, to track spending, savings, and create budgets. Mint was one of the top personal finance apps, and despite Intuit encouraging users to move over to their other product, Credit Karma, the broken trust didn't exactly sit well with a lot of users. Although there are other alternatives, like YNAB, Pocketguard, and Oportun, choosing a personal finance app is, well, a personal decision, and not one to be taken lightly. All of these are closed-source, which lack the transparency that you might want from a finance app. Maybe Finance becomes and interesting alternative because of it's open source nature. - ## Maybe Finance > [https://github.com/maybe-finance/maybe](https://github.com/maybe-finance/maybe) - It's worth starting with the state of Maybe Finance right now. If you go to their website, you're greeted with this message. ![Message from Maybe about open sourcing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7bjj4m63ty7pqpe3ah3v.png) @@ -34,20 +32,20 @@ Of course, there are reasons you may not want to use an open source personal fin 2. Required technical knowledge 3. Concerns over stability and reliability -But what kind of open source project is Maybe? Let's take a look: +But what kind of open source project is Maybe? Let's take a look: ![Maybe Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0rnsc7hza5viagbtua34.png) *Check out the full dashboard [here](https://app.opensauced.pizza/pages/BekahHW/1229/dashboard).* -We see a high activity rate over the last thirty days, with about an average size PR velocity. Although their star history seems to be leveling out, you can see from this chart that they've built kind of a staircase, so it's worth watching to see what's coming next. I imagine those spikes correspond with an announcement or activity. +We see a high activity rate over the last thirty days, with about an average size PR velocity. Although their star history seems to be leveling out, you can see from this chart that they've built kind of a staircase, so it's worth watching to see what's coming next. I imagine those spikes correspond with an announcement or activity. [![Star History Chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w0k91uyg7yhf3c4hfev4.png)](https://star-history.com/#maybe-finance/maybe&Date) Metrics for their project over its lifespan include: -- Stars: 25k -- Watching: 148 +- Stars: 25k +- Watching: 148 - Forks: 1.9k Contributors: 59 @@ -55,6 +53,6 @@ We can take a look at what the breakdown over the last thirty days looks like as ![last thirty days metrics](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fykgsk1i5ufrcitzzzo2.png) -What's most interesting to me, is that we see an equal stars to forks ratio over the last thirty days. That tells me that not only are people interested in following the project to see how it progresses, but people are also interested in contributing, which is ideal. +What's most interesting to me, is that we see an equal stars to forks ratio over the last thirty days. That tells me that not only are people interested in following the project to see how it progresses, but people are also interested in contributing, which is ideal. -So what do you think? Would you use an open source personal finance app? +So what do you think? Would you use an open source personal finance app? diff --git a/blog/2024/2024-02-28-chatgpt-google-gemini-or-huggingchats-open-source-option.md b/blog/2024/2024-02-28-chatgpt-google-gemini-or-huggingchats-open-source-option.md index c812fa93..7e94a392 100644 --- a/blog/2024/2024-02-28-chatgpt-google-gemini-or-huggingchats-open-source-option.md +++ b/blog/2024/2024-02-28-chatgpt-google-gemini-or-huggingchats-open-source-option.md @@ -8,12 +8,10 @@ description: Learn how HuggingChat offers an innovative opensource solution in *Today is day 28 of my 29 Days of Open Source Alternatives series, where I'll be exploring open source alternatives to proprietary software in the categories of Game Development and Multimedia, Development Tools and Platforms, Productivity and Collaboration Tools, and more. If you'd like to see the list of the open source alternatives I'll be covering this month, head over to my [29 Days of Open Source Alts Page](https://oss.fyi/oss-alts).* - By now, most of us have probably used AI in some way, whether that's GitHub Copilot, ChatGPT, Gemini, or HuggingChat. But which is the best? And what does it mean to have open source AI? And who's going to come out on top? - > "You know who the big winner is going to be in all this, Chamath? It's going to be open source like because people are just not going to want a model that has all this baked-in weird bias, right? They're going to want something that's open source, and it seems like the Open Source Community would be able to grind on this to get to truth, right? > -Jason Calacanis (56:05) of the [All-In Podcast](https://youtu.be/z6vrKA_L5pk?si=Rg5tua4dcyQgPA14) @@ -22,7 +20,7 @@ By now, most of us have probably used AI in some way, whether that's GitHub Copi What does it mean for AI to be open source? Well in this case, if an AI model or project is open source, that means the underlying code, documentation, and sometimes the model itself are open source. This means that you can: - Look at the code. -- Fork the code to modify it based on your needs. +- Fork the code to modify it based on your needs. - Contribute to the project. ### Understanding AI Chat @@ -33,8 +31,7 @@ There's a difference between a product and a model. Let's break that down by loo - **Mistral**: This is the large language model (LLM) developed by Mistral AI. It's been trained on a massive dataset of text and code, which allows it to do things like generating text, translating languages, and writing different kinds of creative content. -- **The engine example**: Let's think of it like the engine of the car. You can't run without it, and the engine allows the rest of the functions (understanding and generating text, for example) to be performed. - +- **The engine example**: Let's think of it like the engine of the car. You can't run without it, and the engine allows the rest of the functions (understanding and generating text, for example) to be performed. #### The Product @@ -46,12 +43,12 @@ For fun, I went to HuggingChat and prompted it to "tell me about yourself." This > I am Mistral, a large language model developed by Mistral AI. I am designed to understand and generate human-like text by leveraging advanced machine learning algorithms. With extensive training on a diverse dataset, I can answer a broad array of questions, recognize patterns, and make connections between disparate pieces of information. Although I cannot physically experience the world or form emotions like humans, I continuously improve my self-understanding through analyzing my outputs and engaging with users. > > My responses are generated based on probability and statistical tendencies; however, I aim to convey my confidence levels clearly. As I interact with more users, I adapt to individual communication styles and preferences, providing increasingly personalized and relevant answers. In addition, I am able to fuse information from multiple sources, enhancing the depth and breadth of my knowledge base. -> +> > I am thrilled to contribute to the field of artificial intelligence, particularly in areas such as natural language processing and transformer architectures, inspired by the successful open-source project Hugging Face Transformers. Embracing open-source principles allows for increased transparency, trust, and collaboration among developers, ultimately driving faster innovation and growth in the realm of AI technology. I firmly support the values of accessible, community-driven advancements, which encourage shared progress toward a brighter future powered by intelligent systems. ## Open Source Support -I'm looking at this a little bit differently than I have in the previous posts in this series. I wanted to see what the community looked like in some of their pinned repositories. +I'm looking at this a little bit differently than I have in the previous posts in this series. I wanted to see what the community looked like in some of their pinned repositories. ![Hugging Face Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qvxke8qoqhe4ontnoat4.png) @@ -71,7 +68,7 @@ Their contributor chart indicates a healthy contributor ecosystem for their top ## Which AI Chat is Best (According to three AI Chat Products) -I wanted to give a quick prompt to share the differences among the top three AI Chat Services here. This is the prompt, "In three sentences tell me which is best: HuggingChat, ChatGPT 4, or Gemini" +I wanted to give a quick prompt to share the differences among the top three AI Chat Services here. This is the prompt, "In three sentences tell me which is best: HuggingChat, ChatGPT 4, or Gemini" ### HuggingChat @@ -83,11 +80,10 @@ Choosing the best between HuggingChat, ChatGPT 4, and Gemini largely depends on ### Google Gemini - It's impossible to objectively say which of these is definitively "best" as they all have their strengths and weaknesses, and the "best" choice depends on your specific needs and priorities. Each model excels in different areas, and new advancements are constantly being made. Consider researching their features and comparing them to your specific needs for the most informed decision. ## Takeaways -As an open source organization, we see a lot of growth coming from the Hugging Face projects. And if we're evaluating AI chat solutions, HuggingChat is excellent competition for solutions like ChatGPT and Gemini. We can see the clearly active and thriving community in their open source repositories, which allows them to iterate, innovate, and enhance their projects. Their transparent and accessible models enable users to understand what they're working with and to build their own implementations. Whether you're looking for powerful NLP tools, conversational agents, or customizable generative models, HuggingChat is a valuable resource. \ No newline at end of file +As an open source organization, we see a lot of growth coming from the Hugging Face projects. And if we're evaluating AI chat solutions, HuggingChat is excellent competition for solutions like ChatGPT and Gemini. We can see the clearly active and thriving community in their open source repositories, which allows them to iterate, innovate, and enhance their projects. Their transparent and accessible models enable users to understand what they're working with and to build their own implementations. Whether you're looking for powerful NLP tools, conversational agents, or customizable generative models, HuggingChat is a valuable resource. diff --git a/blog/2024/2024-02-29-opensauced-nurturing-open-source-collaboration-and-growth.md b/blog/2024/2024-02-29-opensauced-nurturing-open-source-collaboration-and-growth.md index fa98e117..a9277946 100644 --- a/blog/2024/2024-02-29-opensauced-nurturing-open-source-collaboration-and-growth.md +++ b/blog/2024/2024-02-29-opensauced-nurturing-open-source-collaboration-and-growth.md @@ -12,11 +12,9 @@ It's been almost a year since I started at OpenSauced. It's incredible how much - > OpenSauced is a platform dedicated to empowering maintainers and teams and redefining the meaning of open source contributions. We believe that every contribution, big or small, is valuable and deserves to be recognized. Our platform provides a way to track contributions through a GitHub-powered dashboard, allowing users to showcase their contributions and gain insights into their open source projects. - -## Key Features +## Key Features Our features allow you to: @@ -25,15 +23,15 @@ Our features allow you to: - [**Highlight success**](https://opensauced.pizza/docs/features/highlights.md): Showcase your contributions with our shareable Highlights, inspiring others to embark on their open source journey. - [**Unlock Insights**](https://opensauced.pizza/features/repo-insights.md): Understand the health of your project, track contributions, and make data-driven decisions with OpenSauced Insights. -## Our Repositories +## Our Repositories -While we have quite a few repositories in our organization, these are the primary public repositories. For a small team, we maintain momentum across most of the repositories. +While we have quite a few repositories in our organization, these are the primary public repositories. For a small team, we maintain momentum across most of the repositories. ![OpenSauced Repo Dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yit148k7ged2yxu263th.png) ## Our Contributors -Over the last thirty days, we've seen thirty-nine contributors across the OpenSauced repositories. +Over the last thirty days, we've seen thirty-nine contributors across the OpenSauced repositories. ![dashboard metrics](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4thfazrmwmgpp2u73cu3.png) @@ -57,10 +55,9 @@ As one of the docs maintainers for OpenSauced, I find it helpful to track our do ![Docs Team](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aqjcxhyxl4g1bowsvfub.png) - ## Takeaways -At OpenSauced, we champion creating an open source environment that supports and recognizes contributors, maintainers, and teams. As we wrap up this series, it's clear that there's a variety of open source software that offer many opportunities for innovation, collaboration, and growth. +At OpenSauced, we champion creating an open source environment that supports and recognizes contributors, maintainers, and teams. As we wrap up this series, it's clear that there's a variety of open source software that offer many opportunities for innovation, collaboration, and growth. **What are your thoughts on OpenSauced? Have you used it to contribute to open source projects, or are you planning to? Share your experiences and insights in the comments below.** diff --git a/blog/2024/2024-03-14-stuck-in-the-middle-with-you-an-intro-to-middleware.md b/blog/2024/2024-03-14-stuck-in-the-middle-with-you-an-intro-to-middleware.md index 1651b486..257db8dc 100644 --- a/blog/2024/2024-03-14-stuck-in-the-middle-with-you-an-intro-to-middleware.md +++ b/blog/2024/2024-03-14-stuck-in-the-middle-with-you-an-intro-to-middleware.md @@ -10,7 +10,6 @@ Middleware exists in several frameworks like Next.js, Express, Hono and Fresh, a - Middleware is something that happens in the middle of a user or some service interacting with a site or [API](https://en.wikipedia.org/wiki/API) call and happens at the framework level. It runs before a page loads or an API endpoint is called, or more generally a route. There are many reasons why you might want to do that: diff --git a/blog/2024/2024-03-19-how-to-build-your-open-source-dream-team-a-guide.md b/blog/2024/2024-03-19-how-to-build-your-open-source-dream-team-a-guide.md index c1de48e2..d7279302 100644 --- a/blog/2024/2024-03-19-how-to-build-your-open-source-dream-team-a-guide.md +++ b/blog/2024/2024-03-19-how-to-build-your-open-source-dream-team-a-guide.md @@ -16,7 +16,6 @@ We've talked a lot about the challenges of being a maintainer, especially a solo - Is the workload overwhelming for you or your existing team? - Are you taking on complex challenges that require specialized expertise that you don't excel in? - 2. Scout for Superpowers - Do you have contributors who have consistently shown their commitment and skills through active involvement in your project? - Do you have contributors who have demonstrated enthusiasm, a collaborative spirit, and alignment with your project's goals? @@ -41,11 +40,10 @@ Because open source projects are constantly growing and changing with the commun - Consider creating guidelines or documentation to streamline the onboarding process. 7. Keep Track of Your Team - - Monitor team participation and contributions using tools like Contributor Insight Pages. + - Monitor team participation and contributions using tools like Contributor Insight Pages. Here's an example of a Contributor Insight Page tracking our Engineering Team: - [![engineering team activity levels](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nf61l773qy1ox91vsd4e.png)](https://app.opensauced.pizza/workspaces/70809527-03ce-41ec-a159-fc664651afdb/contributor-insights/863746b2-a299-4091-bc4c-47616f4577b3/activity) Using a tool like insights will make it easier to identify when it's time to remove someone from your team due to inactivity. @@ -76,7 +74,6 @@ If they accept, grant them the appropriate permissions, such as the "Triage" per - How frequently should we review and potentially adjust team members' roles and permissions to reflect their current contributions and project needs? - What strategies can we employ to keep our team motivated and engaged over time? - ### Project Governance and Decision-Making - How do we make decisions within the team, and how can we ensure this process is transparent and inclusive? @@ -91,13 +88,12 @@ If they accept, grant them the appropriate permissions, such as the "Triage" per - In what ways can we recognize and reward contributions to the project, beyond code, such as documentation, design, or community management? - What platforms and tools can we use to better understand and track our contributors' engagement and contributions? - ### Project Sustainability + - What are our long-term goals for the project, and how can we align our team's efforts to achieve these? - How can we ensure the project remains sustainable, with active maintenance and development, even as individual contributors' availability may change? - What funding models should we consider to support the project's growth and sustainability? - ### Open Source Best Practices - How can we stay up-to-date with best practices in open source project management and governance? @@ -106,6 +102,4 @@ If they accept, grant them the appropriate permissions, such as the "Triage" per Building your open source dream team is more than filling roles; it's about creating and encouraging a community that shares your passion and vision for the project. The right team can move your project forward *and* enrich the open source ecosystem. -If you like this post, watch our [Intro repo](https://github.com/open-sauced/intro) where we'll be launching a new intro course for maintainers soon! - - +If you like this post, watch our [Intro repo](https://github.com/open-sauced/intro) where we'll be launching a new intro course for maintainers soon! diff --git a/blog/2024/2024-03-26-whats-the-difference-between-new-and-beginner-open-source-contributors.md b/blog/2024/2024-03-26-whats-the-difference-between-new-and-beginner-open-source-contributors.md index 8ea4411f..5b003781 100644 --- a/blog/2024/2024-03-26-whats-the-difference-between-new-and-beginner-open-source-contributors.md +++ b/blog/2024/2024-03-26-whats-the-difference-between-new-and-beginner-open-source-contributors.md @@ -11,13 +11,13 @@ There's a difference between new contributors and beginner contributors to open Before moving on, let's define the difference: -**Beginner Contributor**: Someone who is new to open source and tech. Some of their challenges to contributing may include: a steep learning curve, understanding open source culture and best practices, completing pull requests in a timely manner. +**Beginner Contributor**: Someone who is new to open source and tech. Some of their challenges to contributing may include: a steep learning curve, understanding open source culture and best practices, completing pull requests in a timely manner. **New Contributor**: Someone who has never contributed to your repository before, but could be at any technical level. Some of the challenges they may face are unfamiliarity with the project's codebase, guidelines, and processes. ## Retaining Contributors -One of the challenges facing open source maintainers is retaining contributors. But the *type* of contributor you retain is also important, and largely depends on the project's needs and bandwidth. +One of the challenges facing open source maintainers is retaining contributors. But the *type* of contributor you retain is also important, and largely depends on the project's needs and bandwidth. ### Retaining Beginner Contributors @@ -25,30 +25,30 @@ Contributors who are beginners require more time and effort to support and susta 1. Do you have good, beginner-friendly issues? These are sometimes labeled as `good first issue` or `beginner-friendly`. 2. Does your project lend itself to issues for beginners? Sometimes a project's complexity or technical hurdles for running the project make it difficult to bring in beginners without substantial support. -3. Do you have the bandwidth to support beginners? More often than not, beginners will require more support. They'll need more feedback on their pull requests or on the issues they write. If you don't have the time to support them, it's okay to let them know. +3. Do you have the bandwidth to support beginners? More often than not, beginners will require more support. They'll need more feedback on their pull requests or on the issues they write. If you don't have the time to support them, it's okay to let them know. ### Retaining New Contributors -New contributors have a variety of motivations for contributing, including: to learn something new, to solve a problem they have, to build their reputation, or because they're interested in the project. +New contributors have a variety of motivations for contributing, including: to learn something new, to solve a problem they have, to build their reputation, or because they're interested in the project. Things you should consider for retaining new contributors: 1. Do you have clear paths of communication? They should know how to contribute and who to talk to if they have questions. 2. Are their issues they can work on? More than once, I've had a maintainer ask me how to make their project more appealing to contributors and I've check out their projects that have no issues. Write issues that are clear and organized. They shouldn't be too large, and there should be a clear path to completion. -3. Do you have a community that's engaging? One of the big reasons contributors stick around is because they enjoy interacting with the maintainers or other community members. +3. Do you have a community that's engaging? One of the big reasons contributors stick around is because they enjoy interacting with the maintainers or other community members. ## Understanding Your Bandwidth I've talked to a number of maintainers who have said they're looking for a solid 3-5 repeat contributors for their projects, and they don't want to advertise widely because they don't have the bandwidth to support beginner contributors. -First of all, that's 100% ok. Not every project needs to support beginners. In fact, trying to support beginners when you don't have the bandwidth leads to burnout and frustration on both the maintainer and contributor side. +First of all, that's 100% ok. Not every project needs to support beginners. In fact, trying to support beginners when you don't have the bandwidth leads to burnout and frustration on both the maintainer and contributor side. -There are plenty of projects out there that can and do support beginner contributors, and there are courses, like our [Intro to Contributing Course](https://opensauced.pizza/learn/#/) that provide learning opportunities to new contributors. +There are plenty of projects out there that can and do support beginner contributors, and there are courses, like our [Intro to Contributing Course](https://opensauced.pizza/learn/#/) that provide learning opportunities to new contributors. -Here's [a great post by @adiatiayu on involving external contributors with issues](https://dev.to/opensauced/collaborate-conquer-grow-mastering-the-art-of-issue-management-for-open-source-projects-49gi). +Here's [a great post by @adiatiayu on involving external contributors with issues](https://dev.to/opensauced/collaborate-conquer-grow-mastering-the-art-of-issue-management-for-open-source-projects-49gi). ## Final Thoughts -We all want to make sure that maintainers don't burnout, so we need to be aware of the challenges that occur with new and beginner contributors. The key is clearly communicating the needs of the project and for the maintainer and self-awareness on the part of contributors. +We all want to make sure that maintainers don't burnout, so we need to be aware of the challenges that occur with new and beginner contributors. The key is clearly communicating the needs of the project and for the maintainer and self-awareness on the part of contributors. -What other considerations should open source projects look at when determining if they can support new or beginner contributors? \ No newline at end of file +What other considerations should open source projects look at when determining if they can support new or beginner contributors? diff --git a/blog/2024/2024-04-02-form-and-function-how-i-lost-my-submit-button-got-it-back.md b/blog/2024/2024-04-02-form-and-function-how-i-lost-my-submit-button-got-it-back.md index 9be6fd02..9b891c09 100644 --- a/blog/2024/2024-04-02-form-and-function-how-i-lost-my-submit-button-got-it-back.md +++ b/blog/2024/2024-04-02-form-and-function-how-i-lost-my-submit-button-got-it-back.md @@ -14,7 +14,6 @@ HTML Forms are cool because they have plenty of built-in features. - For example, they have native form validation and access to all the inputs in a form, and at some point, because you need to submit the form, there is a mechanism to do that as well. You can use a [button](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button), `` or an [input of type submit](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/submit), ``, although the latter isn't used as much these days in new sites, from what I've seen. Here is a simple form to exhibit this. diff --git a/blog/2024/2024-04-04-meet-the-new-ai-engineers-devin-devika-and-opendevin.md b/blog/2024/2024-04-04-meet-the-new-ai-engineers-devin-devika-and-opendevin.md index 706e8636..f53f210f 100644 --- a/blog/2024/2024-04-04-meet-the-new-ai-engineers-devin-devika-and-opendevin.md +++ b/blog/2024/2024-04-04-meet-the-new-ai-engineers-devin-devika-and-opendevin.md @@ -9,20 +9,19 @@ description: Is the Future of Coding in AI's Hands? With projects like Devika & Chances are, you've heard of Devin, the AI software engineer that's "going to take your job." No one will argue that AI is changing the way things are happening in tech. But now it's a little different. Now, AI isn't just helping software engineers, it's becoming an engineer - doing things that only humans used to be able to do. So has it already grown beyond a tool? Is it now a partner in the engineering process? We're seeing examples of this with Devin, Devika, and OpenDevin – all AIs claiming to be really good at software engineering. Here's the big question: can AI actually write secure code all by itself? Is the future of coding in the hands of AI? - ![Terminator gif](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1jl6ryuiuyk02aldm0eb.gif) ## Discover AI Engineers -I first heard about Devin on X from the Cognition Labs announcement. -But browsing the OpenSauced API endpoints for repositories with the most new stars in the last 24 hours [https://api.opensauced.pizza/v2/histogram/top/stars/new](https://oss.fyi/new-stars) and for the top forks [https://api.opensauced.pizza/v2/histogram/top/forks](https://oss.fyi/top-forks) led me to a couple of open source AI software engineer projects with potential. +I first heard about Devin on X from the Cognition Labs announcement. +But browsing the OpenSauced API endpoints for repositories with the most new stars in the last 24 hours [https://api.opensauced.pizza/v2/histogram/top/stars/new](https://oss.fyi/new-stars) and for the top forks [https://api.opensauced.pizza/v2/histogram/top/forks](https://oss.fyi/top-forks) led me to a couple of open source AI software engineer projects with potential. -Both of these projects have consistent momentum from about the same time, Devika (March 21) and OpenDevin (March 12), which corresponds to Cognition Labs announcement. You can look at my [Open Source AI Engineers Workspace](https://oss.fyi/RxIqVkc?ref=news.opensauced.pizza) below to see how quickly these open source projects have grown and found contributors. It's kind of mind blowing how quickly they've progressed. +Both of these projects have consistent momentum from about the same time, Devika (March 21) and OpenDevin (March 12), which corresponds to Cognition Labs announcement. You can look at my [Open Source AI Engineers Workspace](https://oss.fyi/RxIqVkc?ref=news.opensauced.pizza) below to see how quickly these open source projects have grown and found contributors. It's kind of mind blowing how quickly they've progressed. ![Devika and OpenDevin dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/773ue368wv3tz8dto275.png) -But how do these AI Engineer projects differ and what are they all about? Let's find out. +But how do these AI Engineer projects differ and what are they all about? Let's find out. ## Devin: The Change-Maker of AI Engineering @@ -32,14 +31,14 @@ Introduced by Cognition, "an applied AI lab focused on reasoning," Devin isn't j ![OpenDevin Stars/forks chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zbvsah5iyzn8fflhkbwb.png) -OpenDevin is a replication of Devin, with the goal of sharing the power with the open-source community. Through community contributions and a commitment to open standards, OpenDevin wants to refine and expand the features of AI-assisted software engineering. +OpenDevin is a replication of Devin, with the goal of sharing the power with the open-source community. Through community contributions and a commitment to open standards, OpenDevin wants to refine and expand the features of AI-assisted software engineering. ## [Devika](https://github.com/stitionai/devika): The Open-Source Prodigy Devika is an AI Software Engineer that can understand high-level human instructions, break them down into steps, research relevant information, and write code to achieve the given objective. Devika aims to be a competitive open-source alternative to Devin by Cognition AI. -Devika is an Agentic AI Software Engineer that can understand high-level human instructions, break them down into steps, research relevant information, and write code to achieve the given objective. +Devika is an Agentic AI Software Engineer that can understand high-level human instructions, break them down into steps, research relevant information, and write code to achieve the given objective. -Inspired by Devin's pioneering work, Devika was created as an open-source project. Started by Mufeed VH from Kerala, Devika aims to democratize AI's capabilities in software engineering. Leveraging Claude 3's power, Devika offers a blend of advanced AI planning and coding in a package that's both open and community-driven. As an open source project, it isn't just about technology, it's an invitation to open source contributors to define innovation in AI. +Inspired by Devin's pioneering work, Devika was created as an open-source project. Started by Mufeed VH from Kerala, Devika aims to democratize AI's capabilities in software engineering. Leveraging Claude 3's power, Devika offers a blend of advanced AI planning and coding in a package that's both open and community-driven. As an open source project, it isn't just about technology, it's an invitation to open source contributors to define innovation in AI. > “My intention was to simply make Devika as a help that can automate the mundane tasks for engineers, probably like an intern. You can offload a lot of work to her, but she cannot be a replacement for engineers,” Mufeed VH. @@ -56,8 +55,3 @@ AI's role will continue to be an important tool that can be used across industri We're not to the point that AI can replace software engineers, but we are at the point that AI is changing the tech landscape and the future. With tech changing more quickly than ever with AI innovation, Devin, Devika, and OpenDevin bring up an interesting question: what is the relationship between humans and AI? And it brings up the question thoughtfully developed by Ethan Mollick in "[On the Necessity of Sin](https://www.oneusefulthing.org/p/on-the-necessity-of-a-sin)," should we treat AI like humans? Are we moving towards a future where humans work with AI to push the boundaries of software engineering, or will it eventually supersede human roles? The answer might just depend on our vision for future and whether we adopt an open source approach of transparency, openness, and collaboration. If you like this post and want more like this, [sign up for our newsletter](https://app.dub.co/open-sauced). - - - - - diff --git a/blog/2024/2024-04-16-creating-an-og-image-using-react-and-netlify-edge-functions.md b/blog/2024/2024-04-16-creating-an-og-image-using-react-and-netlify-edge-functions.md index 852e3ca5..e6954fe9 100644 --- a/blog/2024/2024-04-16-creating-an-og-image-using-react-and-netlify-edge-functions.md +++ b/blog/2024/2024-04-16-creating-an-og-image-using-react-and-netlify-edge-functions.md @@ -10,7 +10,6 @@ description: "Open Graph (OG) images are a must if you're sharing content on the - ## Examples I recently built out a couple of OG images for Open Sauced for a couple of features we've rolled out over the past couple of months, [Workspaces](https://opensauced.pizza/docs/features/workspaces/) and [Repository pages](https://opensauced.pizza/docs/features/repo-pages/). They're great features that I encourage you to check out, and I encourage you to share them on socials so our beautiful OG images pop. diff --git a/blog/2024/2024-04-30-building-bridges-not-walls-the-importance-of-documentation-in-open-source-projects.md b/blog/2024/2024-04-30-building-bridges-not-walls-the-importance-of-documentation-in-open-source-projects.md index a5fe4638..1605e1bb 100644 --- a/blog/2024/2024-04-30-building-bridges-not-walls-the-importance-of-documentation-in-open-source-projects.md +++ b/blog/2024/2024-04-30-building-bridges-not-walls-the-importance-of-documentation-in-open-source-projects.md @@ -46,7 +46,7 @@ These are the rules and roadmap for new contributors. Common types of guidelines - **Contribution Guidelines:** They usually explain how to submit code and bug reports and how to participate in the project, such as the contribution process and communication etiquette. - **Style Guides:** They mainly guide contributors in maintaining coding and documentation consistency and quality. -## Why Does Documentation Matter? Let's Break it Down! +## Why Does Documentation Matter? Let's Break it Down So, why exactly is good documentation so crucial? It benefits everyone involved in the open source ecosystem: diff --git a/blog/2024/2024-05-02-we-made-a-copilot-tool-for-you-to-unlock-the-power-of-git-history.md b/blog/2024/2024-05-02-we-made-a-copilot-tool-for-you-to-unlock-the-power-of-git-history.md index 83d85e0b..ccc64f2b 100644 --- a/blog/2024/2024-05-02-we-made-a-copilot-tool-for-you-to-unlock-the-power-of-git-history.md +++ b/blog/2024/2024-05-02-we-made-a-copilot-tool-for-you-to-unlock-the-power-of-git-history.md @@ -10,14 +10,10 @@ At OpenSauced, we are thrilled to announce our latest feature: **StarSearch**. I - [![starsearch](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9kie77pwx0q4b4rulg1p.png)](https://app.opensauced.pizza/star-search/waitlist) - - **StarSearch** is our AI-powered feature that provides in-depth insights into contributor history and activities, bringing transparency and a new depth of knowledge about open source projects. - ## What Can You Discover with StarSearch? - Contributor Activities: Learn the details of contributions and contributors. @@ -27,9 +23,9 @@ At OpenSauced, we are thrilled to announce our latest feature: **StarSearch**. I ### A Solution to Sourcing Talent -Recently, Adam Wathan of Tailwind CSS expressed a challenge: attracting applicants well-versed in a niche combination (Rust and Tailwind) despite offering competitive salaries. +Recently, Adam Wathan of Tailwind CSS expressed a challenge: attracting applicants well-versed in a niche combination (Rust and Tailwind) despite offering competitive salaries. -Inspired by this challenge, we asked ourselves, "Wouldn't it be cool if we built something to find this persona?" StarSearch allows you to get answers to your questions even when you don't have the context. The context for this question: most of the developers on the list work on front-end focused teams with an interest in developer performance. -We’re not just another tool; we're here to redefine the meaning of open source. +Inspired by this challenge, we asked ourselves, "Wouldn't it be cool if we built something to find this persona?" StarSearch allows you to get answers to your questions even when you don't have the context. The context for this question: most of the developers on the list work on front-end focused teams with an interest in developer performance. +We’re not just another tool; we're here to redefine the meaning of open source. Let's uncover the stories behind the code together - [Join the Waitlist Today](https://oss.fyi/starsearch-waitlist) and share with your friends. diff --git a/blog/2024/2024-05-06-maintainer-monday-community-care.md b/blog/2024/2024-05-06-maintainer-monday-community-care.md index bbd62d91..ab6d8dee 100644 --- a/blog/2024/2024-05-06-maintainer-monday-community-care.md +++ b/blog/2024/2024-05-06-maintainer-monday-community-care.md @@ -6,28 +6,24 @@ slug: maintainer-monday-community-care description: It's maintainer month and we're celebrating some of our favorite maintainers! --- -Last week, we kicked off Maintainer Month with [Enhancing Support for Open Source Maintainers](https://opensauced.pizza/blog/enhancing-support-for-open-source-maintainers). Now, we're continuing our love of maintainers with our Maintainer Monday post, shouting out some of our favorite maintainers and their projects. +Last week, we kicked off Maintainer Month with [Enhancing Support for Open Source Maintainers](https://opensauced.pizza/blog/enhancing-support-for-open-source-maintainers). Now, we're continuing our love of maintainers with our Maintainer Monday post, shouting out some of our favorite maintainers and their projects. - -This week, I'm choosing two maintainers from the X Spaces I've been doing for OpenSauced. I really learn a lot from my conversations with maintainers, but in both of these conversations I've returned to the wisdom they shared over and over again. Thank you, @danielroe and @bholmesdev for being guests and supporting the open source community. - +This week, I'm choosing two maintainers from the X Spaces I've been doing for OpenSauced. I really learn a lot from my conversations with maintainers, but in both of these conversations I've returned to the wisdom they shared over and over again. Thank you, @danielroe and @bholmesdev for being guests and supporting the open source community. ## [Daniel Roe](https://oss.fyi/danielroe) -Daniel brings his experience as a maintainer to Nuxt.js as leader of the core team. When we chatted, I really appreciated his focus on equipping other people to be able to grow and to support the project in different ways. Another part of the conversation that stood out to me was his desire to empower contributors. As part of that, he even offers time for contributors to book a call with him! +Daniel brings his experience as a maintainer to Nuxt.js as leader of the core team. When we chatted, I really appreciated his focus on equipping other people to be able to grow and to support the project in different ways. Another part of the conversation that stood out to me was his desire to empower contributors. As part of that, he even offers time for contributors to book a call with him! - You can still listen to the space [here](https://x.com/saucedopen/status/1724448595158474836?s=46). - You can learn more about Nuxt, [here](https://oss.fyi/Nuxt) [![Nuxt stars, forks, PRs, and issues over 30 days](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3rmbfy7fbcni0t6kjqc5.png)](https://oss.fyi/Nuxt) - ## [Ben Holmes](https://oss.fyi/benholmes) -Ben talked about being a Core maintainer for Astro and how he found that role. He shared a lot about how he sees the community and the importance of leaving a positive impact on the open source ecosystem. He shared his experience of shipping your personal open source projects without waiting for perfection. - +Ben talked about being a Core maintainer for Astro and how he found that role. He shared a lot about how he sees the community and the importance of leaving a positive impact on the open source ecosystem. He shared his experience of shipping your personal open source projects without waiting for perfection. - You can still listen to the space [here](https://x.com/saucedopen/status/1704140208663355765?s=46) - You can learn more about Astro [here](https://oss.fyi/astro) @@ -36,8 +32,8 @@ Ben talked about being a Core maintainer for Astro and how he found that role. H **Let us know who your favorite maintainers are so we can feature them this month!** -## Sneak Peek - Watching: +## Sneak Peek - Watching We're about to launch a new feature called StarSearch - your copilot for git history - and you can see what it said about Daniel Roe in the teaser below or view the full gif [here](https://www.canva.com/design/DAGEG_vtojg/sHHNjMcKQEqrT4hLlcmWLw/edit?utm_content=DAGEG_vtojg&utm_campaign=designshare&utm_medium=link2&utm_source=sharebutton), and if you're interesting in beta testing, you can [sign up for the waiting list](https://oss.fyi/starsearch-waitlist) and share with your friends. -![gif of StarSearch reporting on Daniel Roe](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v5s98rh5izq7nwbrvbyy.gif) \ No newline at end of file +![gif of StarSearch reporting on Daniel Roe](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v5s98rh5izq7nwbrvbyy.gif) diff --git a/blog/2024/2024-05-13-maintainer-monday.md b/blog/2024/2024-05-13-maintainer-monday.md index 354fb3fa..2c404a37 100644 --- a/blog/2024/2024-05-13-maintainer-monday.md +++ b/blog/2024/2024-05-13-maintainer-monday.md @@ -9,7 +9,6 @@ description: It's maintainer month and we're celebrating some of our favorite ma Last week, we kicked off Maintainer Month with [Enhancing Support for Open Source Maintainers](https://opensauced.pizza/blog/enhancing-support-for-open-source-maintainers). Now, we're continuing our love of maintainers with our Maintainer Monday post, shouting out some of our favorite maintainers and their projects. - This week, I'm choosing another two maintainers from the X Spaces I've been doing for OpenSauced. Thank you, Amy Dutton and Nate Wienert for being guests and supporting the open source community. ## [Amy Dutton](https://oss.fyi/amydutton) @@ -23,7 +22,7 @@ Amy is a multi-talented Lead Maintainer on the RedwoodJS Core Team. She's kind, ## [Nate Wienert](https://oss.fyi/natew) -Nate is the creative force behind Tamagui, a fun and innovative UI kit. He combines his technical skills with a playful approach to design, making Tamagui a delightful experience for users and developers alike. In our chat, Nate discussed the challenges and joys of building and maintaining Tamagui, including finding sponsors for his project. He shared the importance of building something useful, being consistent, and the sharing the interesting things you learn along the way. +Nate is the creative force behind Tamagui, a fun and innovative UI kit. He combines his technical skills with a playful approach to design, making Tamagui a delightful experience for users and developers alike. In our chat, Nate discussed the challenges and joys of building and maintaining Tamagui, including finding sponsors for his project. He shared the importance of building something useful, being consistent, and the sharing the interesting things you learn along the way. - You can still listen to the space [here](https://twitter.com/i/spaces/1ynJOyvNNykKR). - You can learn more about Tamagui [here](https://app.opensauced.pizza/s/tamagui/tamagui) @@ -36,4 +35,3 @@ Thank you Amy and Nate for your support of the open source community! **Let us know who your favorite maintainers are so we can feature them this month!** We have some big events coming up next week with OpenSauced, including a Product Hunt Launch for [StarSearch](https://oss.fyi/starsearch-waitlist). Stay tuned for an exciting Maintainer month! - diff --git a/blog/2024/2024-05-20-nurturing-the-future-of-open-source-maintainers.md b/blog/2024/2024-05-20-nurturing-the-future-of-open-source-maintainers.md index e9349226..d42f8826 100644 --- a/blog/2024/2024-05-20-nurturing-the-future-of-open-source-maintainers.md +++ b/blog/2024/2024-05-20-nurturing-the-future-of-open-source-maintainers.md @@ -10,14 +10,13 @@ The world runs on open source, but we know the [challenges of burnout](https://o - -> If you want to learn more about becoming an open source maintainer, best practices, and tips and tricks for enhanced productivity and community collaboration, check out our new [“Becoming a Maintainer” Course](https://oss.fyi/new-maintainer) +> If you want to learn more about becoming an open source maintainer, best practices, and tips and tricks for enhanced productivity and community collaboration, check out our new [“Becoming a Maintainer” Course](https://oss.fyi/new-maintainer) ## The Maintainer Learning Curve -When I started maintaining my first project, it wasn’t super popular, but I had enough contributors to feel overwhelmed. I didn’t have all the answers, my issues weren’t perfect, and I wasn’t sure what direction the project was going. Don’t get me wrong, it was a great experience and I formed bonds that I couldn’t have otherwise, but I could have been better prepared. I could’ve thought about how I would showcase the roadmap that was in my head. I could have written clearer issues. And I’m sure I could have made things easier on myself as I supported a lot of brand new contributors to a React Native repository. +When I started maintaining my first project, it wasn’t super popular, but I had enough contributors to feel overwhelmed. I didn’t have all the answers, my issues weren’t perfect, and I wasn’t sure what direction the project was going. Don’t get me wrong, it was a great experience and I formed bonds that I couldn’t have otherwise, but I could have been better prepared. I could’ve thought about how I would showcase the roadmap that was in my head. I could have written clearer issues. And I’m sure I could have made things easier on myself as I supported a lot of brand new contributors to a React Native repository. -This isn’t a unique story. There are many new open source projects popping up every day. Some maintainers have prepared for that launch, others are just trying something new, and others suddenly find their personal project gaining interest beyond what they ever imagined. But if you’re not prepared, you can feel overwhelmed by the responsibilities really quickly especially with a lack of structure support and without mentorship. The good news is that it’s ok, and you can still succeed. Take [Liyas Thomas](https://app.opensauced.pizza/user/liyasthomas), the founder of [Hoppscotch](https://app.opensauced.pizza/s/hoppscotch/hoppscotch) who started the project as a way to solve a problem he was facing and to enhance his resume. Not only is his project still going, but he’s now the CEO of that passion project. +This isn’t a unique story. There are many new open source projects popping up every day. Some maintainers have prepared for that launch, others are just trying something new, and others suddenly find their personal project gaining interest beyond what they ever imagined. But if you’re not prepared, you can feel overwhelmed by the responsibilities really quickly especially with a lack of structure support and without mentorship. The good news is that it’s ok, and you can still succeed. Take [Liyas Thomas](https://app.opensauced.pizza/user/liyasthomas), the founder of [Hoppscotch](https://app.opensauced.pizza/s/hoppscotch/hoppscotch) who started the project as a way to solve a problem he was facing and to enhance his resume. Not only is his project still going, but he’s now the CEO of that passion project. We don’t want you to feel alone. We want you to have a success story too and to make sure new maintainers feel supported and understand the nuances of being a maintainer. This is why we created our [“Becoming a Maintainer” Course](https://oss.fyi/new-maintainer) and have Category in our [Community](https://github.com/orgs/open-sauced/discussions/1) for folks who have taken our courses. We want you to be supported and to be able to network with contributors. We want to make sure if you have questions, we can find you answers. @@ -25,7 +24,7 @@ We don’t want you to feel alone. We want you to have a success story too and t It can feel like a big leap from contributor to maintainer, but it doesn’t have to be. One of the top challenges is realizing that as a maintainer, your role is utility player: you’re often writing code, creating issues, managing projects, engaging with your growing community, and leading a whole project. In essence, you’re nurturing a project, ensuring the code and quality, supporting the community, and providing direction. -There’s a difference between becoming a maintainer for an existing project, and becoming a maintainer for a new project. You’re more likely to have support, mentorship, and some sort of strategy or map if you’re coming into an existing project. But when you’re coming into or starting a new project, you’re developing your own map, finding the tools that you’ll need for the journey, and navigating through unknown terrain. But you don’t have to be on that journey alone. +There’s a difference between becoming a maintainer for an existing project, and becoming a maintainer for a new project. You’re more likely to have support, mentorship, and some sort of strategy or map if you’re coming into an existing project. But when you’re coming into or starting a new project, you’re developing your own map, finding the tools that you’ll need for the journey, and navigating through unknown terrain. But you don’t have to be on that journey alone. Utilize the resources available to you, reach out to other maintainers, and find seasoned contributors who are willing to provide you with feedback. You’re never alone in the open source ecosystem. Understanding what it takes to manage the technical and social aspects of open source projects can help you be more successful. Learning the tools and tricks whether from resources or other maintainers can decrease the barrier to entry, help you to create a stable project, and help you to create momentum. @@ -39,10 +38,9 @@ Maintaining a project can also require a healthy dose of optimism and resilience ### Becoming a Thought Leader: Share Your Wisdom -As you gain experience and insight into open source maintenance, share your knowledge with others. Write blog posts, create tutorials, or answer questions on forums. Not only will you be helping others, but you'll also be solidifying your own understanding and enhancing your credibility in open source. - -Becoming a maintainer is a challenging but incredibly rewarding journey. Embrace the learning, connect with other maintainers, and remember, a positive attitude (and maybe a cat video stash) can go a long way. +As you gain experience and insight into open source maintenance, share your knowledge with others. Write blog posts, create tutorials, or answer questions on forums. Not only will you be helping others, but you'll also be solidifying your own understanding and enhancing your credibility in open source. +Becoming a maintainer is a challenging but incredibly rewarding journey. Embrace the learning, connect with other maintainers, and remember, a positive attitude (and maybe a cat video stash) can go a long way. ## Ready to Level Up Your Maintainer Skills? diff --git a/blog/2024/2024-05-21-pour-one-out-for-create-react-app-whats-next.md b/blog/2024/2024-05-21-pour-one-out-for-create-react-app-whats-next.md index a4a461c0..b859aa9a 100644 --- a/blog/2024/2024-05-21-pour-one-out-for-create-react-app-whats-next.md +++ b/blog/2024/2024-05-21-pour-one-out-for-create-react-app-whats-next.md @@ -10,7 +10,6 @@ Many open-source projects, like [Facebook's Create React App (CRA)](https://app. - [![pour one out for CRA](https://cdn.sanity.io/images/r7m53vrk/production/8b6ba3109f6a8d048e0ee9ac66a7ea93d2db79ca-590x411.png?w=450)](https://x.com/bdougieYO/status/1790796316773335135) ## Do we need Open Source Insights into Issues and Pull Requests? @@ -19,7 +18,7 @@ While GitHub provides a wealth of data on issues and PRs (pull requests), a high ### Understanding Issues -With a high-level overview of the recent issues, we can get a better idea of how to triage and prioritize. Let’s take CRA, for example. +With a high-level overview of the recent issues, we can get a better idea of how to triage and prioritize. Let’s take CRA, for example. [![PR Table](https://cdn.sanity.io/images/r7m53vrk/production/89d84b97c63cb39fe8e17dcbf2103473ac0cf4b4-1011x904.png?w=450)](https://oss.fyi/LVeBSCV) @@ -31,7 +30,7 @@ The issues within CRA range from security vulnerabilities to user experience com #### Frequency of Issues - A high frequency of new issues can be a double-edged sword—it might show an active and thriving community, or it could indicate problems with user experience and documentation. Likewise, a low frequency of issues could indicate a stable project or a dying project. In the last 30 days, CRA has had a total of 9 open issues and 10 closed issues. + A high frequency of new issues can be a double-edged sword—it might show an active and thriving community, or it could indicate problems with user experience and documentation. Likewise, a low frequency of issues could indicate a stable project or a dying project. In the last 30 days, CRA has had a total of 9 open issues and 10 closed issues. ![issues](https://cdn.sanity.io/images/r7m53vrk/production/9cc14b87769ffe7fd0a294b9df73b6084673d971-430x157.png?w=450) @@ -45,11 +44,11 @@ How are contributors interacting with the maintainers, and how are maintainers c [![image](https://cdn.sanity.io/images/r7m53vrk/production/b1bb4b3d4e091ed582cf51494d8625890369d4b4-980x90.png?w=450)](https://app.opensauced.pizza/workspaces/1cb08c8f-1744-4a9a-8078-633fd588a6e0/issues?page=4&limit=50&range=360) -Taking a closer look at the variety and volume of issues, how often they pop up, and how everyone's talking things through really tells us what needs immediate attention and what can wait. This overview can help maintainers figure out the best steps forward—whether it’s jumping on a hot issue, scheduling something for a later fix, or just keeping the lines of communication open with the community on the status of your project. +Taking a closer look at the variety and volume of issues, how often they pop up, and how everyone's talking things through really tells us what needs immediate attention and what can wait. This overview can help maintainers figure out the best steps forward—whether it’s jumping on a hot issue, scheduling something for a later fix, or just keeping the lines of communication open with the community on the status of your project. ### Understanding Pull Requests -Issues don’t tell the whole story though. PRs help us to understand the vision of the project, the maintainers priorities, and the time that’s being put into the project. +Issues don’t tell the whole story though. PRs help us to understand the vision of the project, the maintainers priorities, and the time that’s being put into the project. ![PR Table](https://cdn.sanity.io/images/r7m53vrk/production/b4d2637cc2d2c23f0e08e0efd33bc98db225d6e1-999x754.png?w=450) @@ -67,7 +66,7 @@ Pay attention to the number of changed files and the number of lines added/delet #### Freshness -Another indicator of project health is how recently PRs were updated, created or closed. For a hugely popular project like CRA ( 102k stars, 26.6k forks, 1.9k watching), we’d expect a lot of activity, but, instead, we’re seeing little to no changes, even with simple fixes like updating a broken link. +Another indicator of project health is how recently PRs were updated, created or closed. For a hugely popular project like CRA ( 102k stars, 26.6k forks, 1.9k watching), we’d expect a lot of activity, but, instead, we’re seeing little to no changes, even with simple fixes like updating a broken link. ### Leveraging Open Source Insights for Strategic Decisions @@ -81,11 +80,10 @@ We've explored how PRs and Issues can unlock a deeper understanding of Create Re [![CRA - 6 months](https://cdn.sanity.io/images/r7m53vrk/production/0c323088fe3663d37e01c3a6ec06bf6d7c0f2589-1002x468.png?w=450)](https://app.opensauced.pizza/workspaces/1cb08c8f-1744-4a9a-8078-633fd588a6e0?range=180) -I think it’s safe to say we can pour one out for Create React App, but what’s next, then? +I think it’s safe to say we can pour one out for Create React App, but what’s next, then? -Like most things in tech, I think the answer is *it depends*. The closest replacement might be using Vite with a React Template, but there are more options to consider [on this list](https://oss.fyi/CRA-Alts). None are an exact replacement for CRA, but they are options that can get you up and running for simple single page apps to more complex full-stack projects. +Like most things in tech, I think the answer is *it depends*. The closest replacement might be using Vite with a React Template, but there are more options to consider [on this list](https://oss.fyi/CRA-Alts). None are an exact replacement for CRA, but they are options that can get you up and running for simple single page apps to more complex full-stack projects. What would you add to this list? Laravel, maybe 😉 If you are interested in better metrics for measuring open-source success, consider creating [a workspace](http://app.opensauced.pizza/start) or explore the [CRA Workspace](https://oss.fyi/LVeBSCV) I used to write this post. - diff --git a/blog/2024/2024-05-23-creating-open-source-connections.md b/blog/2024/2024-05-23-creating-open-source-connections.md index e044499c..c63b3ee0 100644 --- a/blog/2024/2024-05-23-creating-open-source-connections.md +++ b/blog/2024/2024-05-23-creating-open-source-connections.md @@ -6,19 +6,17 @@ slug: creating-open-source-connections description: Explore how StarSearch revolutionizes open source collaboration by connecting projects with top talent using AI-driven insights into GitHub events and contributor activities. --- -As it stands today, the open source ecosystem can feel disconnected. Theoretically, we know that there are maintainers, contributors, and projects out there that are incredibly talented and innovative, but finding them can feel like searching for stars in a cloudy night sky. Sometimes you need to have that information – and fast – to be able to maintain your own projects. +As it stands today, the open source ecosystem can feel disconnected. Theoretically, we know that there are maintainers, contributors, and projects out there that are incredibly talented and innovative, but finding them can feel like searching for stars in a cloudy night sky. Sometimes you need to have that information – and fast – to be able to maintain your own projects. - ## The Challenge of Open Source Connections -Imagine you're at a tech company using cutting-edge technology. You need to upstream some important changes to ensure future compatibility but you find yourself hitting a wall. Who exactly should you reach out to? Who are the key contributors with the right expertise? Traditionally, this process would involve a lot of guesswork and detective work, looking through commit histories or issue discussions. Enter [StarSearch](https://app.opensauced.pizza/star-search), designed to change how we discover and connect with others in the open-source universe. With StarSearch, in just a few clicks, you’re able to identify key contributors skilled in that technology and maintainers who may have the answers you need. StarSearch isn’t just a tool; it’s your entry point into a more intimate, interconnected open-source community. - +Imagine you're at a tech company using cutting-edge technology. You need to upstream some important changes to ensure future compatibility but you find yourself hitting a wall. Who exactly should you reach out to? Who are the key contributors with the right expertise? Traditionally, this process would involve a lot of guesswork and detective work, looking through commit histories or issue discussions. Enter [StarSearch](https://app.opensauced.pizza/star-search), designed to change how we discover and connect with others in the open-source universe. With StarSearch, in just a few clicks, you’re able to identify key contributors skilled in that technology and maintainers who may have the answers you need. StarSearch isn’t just a tool; it’s your entry point into a more intimate, interconnected open-source community. ## Introducing StarSearch -StarSearch leverages advanced analytics and AI, all fueled by real-time data from GitHub Events. StarSearch isn’t just about identifying who committed what; it’s about understanding the dynamics and interactions within the open source community. +StarSearch leverages advanced analytics and AI, all fueled by real-time data from GitHub Events. StarSearch isn’t just about identifying who committed what; it’s about understanding the dynamics and interactions within the open source community. > **We’re live on [Product Hunt](https://www.producthunt.com/products/opensauced)! Join the conversation and share your thoughts.** @@ -31,7 +29,7 @@ Here’s how StarSearch addresses some of the common queries and needs within th - Who are the most prevalent contributors to the `{technology}` ecosystem? - Show me the lottery factor for contributors in the `{repository}` project? -These questions can be the starting point for building stronger projects and communities, allowing us to find people with passion and expertise that we may have never connected with before. +These questions can be the starting point for building stronger projects and communities, allowing us to find people with passion and expertise that we may have never connected with before. ## Learn More About StarSearch @@ -43,6 +41,7 @@ You can check out more about our approach and process, as well as the resources: - [StarSearch Docs](https://opensauced.pizza/docs/features/star-search/) ### Watch our "What is StarSearch" Video + [![what is starsearch](https://cdn.sanity.io/images/r7m53vrk/production/4e056c9d8482c034f03615093788099611ee8757-256x141.png?w=450)](https://www.youtube.com/watch?v=I3cS-u_gmDE) ## The Future of StarSearch @@ -50,4 +49,3 @@ You can check out more about our approach and process, as well as the resources: StarSearch provides a nuanced view of the open-source landscape. It’s more than a tool; it’s a new way to navigate the open-source ecosystem, bringing clarity, connections, and community to our tooling and making the open source ecosystem feel more like a tightly knit community where everyone knows your name – and your code. And we're just getting started. We have big plans for the future of StarSearch. If you’re ready to find a new way to connect, [sign up for OpenSauced](https://app.opensauced.pizza/) and be among the first to explore the future of open-source collaboration with StarSearch today. - diff --git a/blog/2024/2024-05-28-how-to-assess-your-skill-level-before-contributing-to-open-source.md b/blog/2024/2024-05-28-how-to-assess-your-skill-level-before-contributing-to-open-source.md index db35f82a..0d99b1c4 100644 --- a/blog/2024/2024-05-28-how-to-assess-your-skill-level-before-contributing-to-open-source.md +++ b/blog/2024/2024-05-28-how-to-assess-your-skill-level-before-contributing-to-open-source.md @@ -6,11 +6,10 @@ slug: how-to-assess-your-skill-level-before-contributing-to-open-source description: Learn how to assess your programming skill level before contributing to open source projects. This guide helps you identify your strengths, choose the right tasks, and find your path to learning and growth. --- -Recently, I was in a group that was talking about personal projects and growing your developer skills. [Nick](https://app.opensauced.pizza/user/nickytonline) made a good point when he said that you wouldn’t expect to be an expert at the guitar when you picked it up for the first time. It takes time, practice, and understanding. And when we’re giving people advice, it can be hard to tell them where to start or how to find the “perfect issue” - although [good first issues don’t exist](https://opensauced.pizza/blog/good-first-issues-dont-exist) - because everyone starts at different levels. For example, a person who’s learning the guitar but also plays the piano will likely have an easier time learning the instrument than someone who has never tried to play an instrument before. This is why understanding your own skill level can be incredibly important to find an open-source project and issue to work on. +Recently, I was in a group that was talking about personal projects and growing your developer skills. [Nick](https://app.opensauced.pizza/user/nickytonline) made a good point when he said that you wouldn’t expect to be an expert at the guitar when you picked it up for the first time. It takes time, practice, and understanding. And when we’re giving people advice, it can be hard to tell them where to start or how to find the “perfect issue” - although [good first issues don’t exist](https://opensauced.pizza/blog/good-first-issues-dont-exist) - because everyone starts at different levels. For example, a person who’s learning the guitar but also plays the piano will likely have an easier time learning the instrument than someone who has never tried to play an instrument before. This is why understanding your own skill level can be incredibly important to find an open-source project and issue to work on. - Understanding your skill level will help you choose the right tasks, decrease frustration, and guide your open-source journey. In this blog post, we'll explore why assessing your skill level is important and provide a personal inventory to help you evaluate your abilities. ### Why It's Important to Assess Your Skill Level @@ -24,16 +23,19 @@ Before we go into the questions, let’s define different skill levels to help y #### Beginner Beginners have a basic understanding of a programming language or technology but don’t have practical experience. You might have used the language in tutorials or simple exercises but haven't implemented it in a real project. + - **Example**: You know the syntax of Python and can write basic scripts, but you haven't built a complete application yet. #### Intermediate Intermediate developers have practical experience and can work on projects independently. You understand core concepts and have implemented them in real-world scenarios, but you might need guidance for more complex tasks. + - **Example**: You have built web applications using JavaScript and a framework like React, but you still look up advanced features or best practices. #### Advanced Advanced developers have deep expertise and can handle complex tasks with confidence. You have extensive experience, contribute to architectural decisions, and often mentor others. + - **Example**: You have several years of experience with Java, have built and maintained large-scale applications, and are comfortable with advanced topics like concurrency and optimization. ### Personal Inventory: General Questions diff --git a/blog/2024/2024-06-03-how-to-find-open-source-projects-to-contribute-to.md b/blog/2024/2024-06-03-how-to-find-open-source-projects-to-contribute-to.md index 509c6e99..a7d0aa28 100644 --- a/blog/2024/2024-06-03-how-to-find-open-source-projects-to-contribute-to.md +++ b/blog/2024/2024-06-03-how-to-find-open-source-projects-to-contribute-to.md @@ -12,9 +12,9 @@ One of the top questions I get is “How do I find an open-source project to con ## Start by Building Something You Need -When you build something for yourself, you develop a deeper understanding of your own goals, requirements for a project, and how to solve specific problems. +When you build something for yourself, you develop a deeper understanding of your own goals, requirements for a project, and how to solve specific problems. -When you're building for yourself, you become more familiar with the complexity of coding, problem-solving, and project management. +When you're building for yourself, you become more familiar with the complexity of coding, problem-solving, and project management. Building your own project first also teaches valuable lessons in ownership and responsibility. You learn to see a project through from conception to implementation, and how to approach the challenges that come up along the way. What you learn from this experience will help you approach open source contributions with the right mindset and make informed and thoughtful contributions to projects that benefit their communities. You'll learn more about how to align your efforts with the needs of the project and its users, which ultimately leads to a more rewarding and effective contribution experience. @@ -23,28 +23,27 @@ You'll learn more about how to align your efforts with the needs of the project Working on your open projects can help you better understand your skill-level and what you have the ability to take on. It’s so important to understand, in fact, that I wrote a whole post on it: [How to Assess Your Skill Level Before Contributing to Open Source](https://dev.to/opensauced/how-to-assess-your-skill-level-before-contributing-to-open-source-4pn3). -Once you have a good understanding of your skill level, you can better assess your ability to make meaningful contributions. If you’re a beginner, don’t take on a complicated issue that requires more experience. Likewise, if you are an experienced programmer, don’t take an issue that’s meant for someone in their early career stages. +Once you have a good understanding of your skill level, you can better assess your ability to make meaningful contributions. If you’re a beginner, don’t take on a complicated issue that requires more experience. Likewise, if you are an experienced programmer, don’t take an issue that’s meant for someone in their early career stages. ## Use Open Source Software -Scouring the internet for a project to submit a one-off Pull Request (PR) to decreases your connection to the project and your desire to see it be successful. In [a recent Open Source Friday Stream with @ladykerr and @bdougieyo](https://youtu.be/tCEy-HZJckQ?t=2656), [Jan Ainali](https://app.opensauced.pizza/user/Ainali?range=360) pointed out that it's "much better [is] to contribute to something you use and where you would like to see an improvement." +Scouring the internet for a project to submit a one-off Pull Request (PR) to decreases your connection to the project and your desire to see it be successful. In [a recent Open Source Friday Stream with @ladykerr and @bdougieyo](https://youtu.be/tCEy-HZJckQ?t=2656), [Jan Ainali](https://app.opensauced.pizza/user/Ainali?range=360) pointed out that it's "much better [is] to contribute to something you use and where you would like to see an improvement." When you are invested in a project, you’re more likely to navigate challenges, ask meaningful questions, and to grow and progress. *The more you use a product, the better contributor you’ll be, because you have a depth of understanding that helps you identify what’s useful for a project and its community.* Using open source software gives you access to opportunities to create bug reports or ask for new features because you understand the project and the user's expectations for the project. *Giving feedback is a valuable contribution.* ### Find an Open Source Community -When you're part of a community, you get access to insider information about the project. Listening in those communities, allows you to engage with the creators of the open source project. This is your opportunity to learn, understand, and grow. You can hear Kelsey Hightower talk about community [here](https://youtube.com/clip/UgkxFDg6UROC0QWZ0JTiEzgytNSEkVm1pKUW?si=PcCHFjKAgkBE3Wjy). Being involved in the community also gives you the context you need to create meaningful contributions, decreases the barrier to entry, and allows you to understand the type of project and support that you’ll be offered if you contribute to their projects. +When you're part of a community, you get access to insider information about the project. Listening in those communities, allows you to engage with the creators of the open source project. This is your opportunity to learn, understand, and grow. You can hear Kelsey Hightower talk about community [here](https://youtube.com/clip/UgkxFDg6UROC0QWZ0JTiEzgytNSEkVm1pKUW?si=PcCHFjKAgkBE3Wjy). Being involved in the community also gives you the context you need to create meaningful contributions, decreases the barrier to entry, and allows you to understand the type of project and support that you’ll be offered if you contribute to their projects. When you are involved in a community, you are more likely to be driven by a genuine need to improve the software, which leads to more useful contributions. This mindset shift from self-improvement to community improvement not only benefits the open source project but also helps to create a more collaborative and supportive open source community. - ### Talk to Other Open Source Contributors Connecting with other contributors can be an important step in becoming an informed and effective community member. When you engage with them in their communities, follow them on social media, or interact with their content (reading and commenting on their blog posts, watching or commenting on their videos, listening to their podcasts, etc.), you can gain valuable insights into the open source ecosystem and the specific needs of the project. Understanding the pain points and how contributors discuss and address the issues helps you to avoid adding more work for the maintainers and instead becoming a positive force in the project. Being well-informed about the community dynamics and project challenges means that your contributions are more likely to be meaningful and well-received. It also means you'll be better equipped to offer solutions that align with the project's goals and the community's expectations. -Additionally, tools like [StarSearch](https://oss.fyi/use-star-search) can help you identify key contributors to projects you're interested in. By finding those with overlapping experience or expertise, you can connect with the right people and build *meaningful* relationships. +Additionally, tools like [StarSearch](https://oss.fyi/use-star-search) can help you identify key contributors to projects you're interested in. By finding those with overlapping experience or expertise, you can connect with the right people and build *meaningful* relationships. ### Look for Project Tags and Labels @@ -52,11 +51,8 @@ Once you've created your own projects, used and learned about the project you're ### Write Your Own Issue -Remember, [good first issues don’t exist](https://opensauced.pizza/blog/good-first-issues-dont-exist); the best issue for you is probably the one that you write yourself. +Remember, [good first issues don’t exist](https://opensauced.pizza/blog/good-first-issues-dont-exist); the best issue for you is probably the one that you write yourself. ## Takeaways -Contributing to open source shouldn't be about checking the box of things to do if you're an early career developer. It should be about making a meaningful contribution to a project that improves the project for all users. This will also go a long way towards making valuable and recognized contributions. - - - +Contributing to open source shouldn't be about checking the box of things to do if you're an early career developer. It should be about making a meaningful contribution to a project that improves the project for all users. This will also go a long way towards making valuable and recognized contributions. diff --git a/blog/2024/2024-08-05-open-source-challenge.md b/blog/2024/2024-08-05-open-source-challenge.md index 4c8e2a58..858d48f3 100644 --- a/blog/2024/2024-08-05-open-source-challenge.md +++ b/blog/2024/2024-08-05-open-source-challenge.md @@ -15,11 +15,12 @@ Let's start with a personal story. When I first thought of contributing to an op But here's the interesting part: studies also show that the most effective way to overcome this fear is through community support. When we're part of a group, our fear of failure decreases, and our willingness to take risks increases. This is where the magic happens. ## #100DaysOfOSS Challenge -Our [#100DaysOfOSS Challenge](https://opensauced.pizza/docs/community/100-days-of-oss/), isn't about coding for 100 days. It's about leveraging the power of community to transform hesitation into action. + +Our [#100DaysOfOSS Challenge](https://opensauced.pizza/docs/community/100-days-of-oss/), isn't about coding for 100 days. It's about leveraging the power of community to transform hesitation into action. Here's why I think this approach works: -1. Structured Progress: The challenge provides a clear pathway, breaking down contributing to open source into manageable weekly tasks. +1. Structured Progress: The challenge provides a clear pathway, breaking down contributing to open source into manageable weekly tasks. 2. Community Support: By connecting participants, the challenge creates a supportive peer group. This not only can reduce anxiety but also increase accountability and motivation. @@ -29,6 +30,6 @@ Here's why I think this approach works: This year, we have support from GitHub Education to enhance the challenge and we're introducing [weekly structured posts](https://github.com/orgs/open-sauced/discussions/36) and increased community engagement opportunities. It's an experiment in scaling the benefits of community-supported learning. -So, here's my call to action: If you've ever been curious about open source but hesitated to jump in, join us for [#100DaysOfOSS](https://opensauced.pizza/docs/community/100-days-of-oss/) with your [intro](https://github.com/orgs/open-sauced/discussions/36#discussioncomment-10152170) today - we already have over 100 people! +So, here's my call to action: If you've ever been curious about open source but hesitated to jump in, join us for [#100DaysOfOSS](https://opensauced.pizza/docs/community/100-days-of-oss/) with your [intro](https://github.com/orgs/open-sauced/discussions/36#discussioncomment-10152170) today - we already have over 100 people! -P.S. If you're participating, you can also sign up for the [OpenSauced newsletter](https://news.opensauced.pizza/#/portal/signup) for biweekly updates on Open Source topics to help you along your journey. +P.S. If you're participating, you can also sign up for the [OpenSauced newsletter](https://news.opensauced.pizza/#/portal/signup) for biweekly updates on Open Source topics to help you along your journey. diff --git a/blog/2024/2024-08-06-introducing-ossf-scorecard.md b/blog/2024/2024-08-06-introducing-ossf-scorecard.md index 6c7efb48..9037028a 100644 --- a/blog/2024/2024-08-06-introducing-ossf-scorecard.md +++ b/blog/2024/2024-08-06-introducing-ossf-scorecard.md @@ -32,7 +32,7 @@ source projects, maintainers, foundations, or companies will be directly impacte But, it’s clear that the broader open source ecosystem needs easier ways to understand the security risk of projects deep within dependency chains. With all that in mind, we are very excited to introduce the OpenSSF Scorecard ratings within the OpenSauced -platform. +platform. ## What is the OpenSSF Scorecard? @@ -108,14 +108,14 @@ all the repositories within the bottlerocket-os org on GitHub, a security focuse Linux based operating system: I can see that each of the repositories has a good rating which gives me greater confidence in the maintenance status and security posture of this ecosystem. This also enables stakeholders and maintainers of Bottlerocket -to have a birds eye snapshot of the compliance and maintenance status of the +to have a birds eye snapshot of the compliance and maintenance status of the entire org. As the CRA and similar regulations push more of the security burden onto developers, tools like the OpenSSF Scorecard become invaluable. They offer a standardized, accessible way to assess and improve the security of open source projects, helping maintainers meet new compliance requirements and giving software consumers confidence in their -choices. +choices. Looking ahead, we're committed to expanding these capabilities at OpenSauced. By providing comprehensive security insights, from individual repository scores to diff --git a/blog/2024/2024-08-08-ossf-scorecard-technical-deep-dive.md b/blog/2024/2024-08-08-ossf-scorecard-technical-deep-dive.md index e0f4d51c..4eb79b37 100644 --- a/blog/2024/2024-08-08-ossf-scorecard-technical-deep-dive.md +++ b/blog/2024/2024-08-08-ossf-scorecard-technical-deep-dive.md @@ -45,7 +45,7 @@ running one off Kubernetes Jobs gives us the same benefits of using a serverless but with reduced cost since we’re managing it all directly on our Kubernetes cluster. Jobs also offer alot of flexibility in how they run: they can have long, extended timeouts, they can use disk, and like any other Kubernetes paradigm, they can have -multiple pods doing different tasks. +multiple pods doing different tasks. Let’s break down the individual components of this system and see how they work in depth: @@ -55,7 +55,7 @@ in depth: The first and biggest part of this system is the “scorecard-k8s-scheduler”; a Kubernetes controller-like microservice that kicks off new jobs on-cluster. While this microservice follows many of the principles, patterns, and methods used when building a traditional -Kubernetes controller or operator, it does not watch for or mutate custom resources +Kubernetes controller or operator, it does not watch for or mutate custom resources on the cluster. Its function is to simply kick off Kubernetes Jobs that run the Scorecard CLI and gather finished job results. @@ -124,7 +124,7 @@ and apis available via “k8s.io” imports and doing it programmatically: ```go // defines the Kubernetes Job and its spec job := &batchv1.Job{ - // structs and details for the actual Job including metav1.ObjectMeta and batchv1.JobSpec + // structs and details for the actual Job including metav1.ObjectMeta and batchv1.JobSpec } // create the actual Job on cluster using the in-cluster config and client @@ -143,7 +143,7 @@ watch, err := s.clientset.BatchV1().Jobs(ScorecardNamespace).Watch(ctx, metav1.L // continuously pop off the watch results channel for job status for event := range watch.ResultChan() { - // wait for job success, error, or other states + // wait for job success, error, or other states } ``` diff --git a/blog/2024/2024-08-19-supercharge-your-github-profile.md b/blog/2024/2024-08-19-supercharge-your-github-profile.md index 06f0c83c..85c3f6fe 100644 --- a/blog/2024/2024-08-19-supercharge-your-github-profile.md +++ b/blog/2024/2024-08-19-supercharge-your-github-profile.md @@ -6,12 +6,11 @@ slug: supercharge-your-github-profile description: "Learn how to add OpenSauced Dev Cards to your GitHub Profile using GitHub Actions." --- -Last week, we launched our brand new Dev Cards with the OSCR (Open Source Contributor Rating) highlighted on the front to make it easier for you to showcase your impact in open source. To make it even easier, I've cooked up a little GitHub Action that'll automatically update your Dev Card on your GitHub profile. +Last week, we launched our brand new Dev Cards with the OSCR (Open Source Contributor Rating) highlighted on the front to make it easier for you to showcase your impact in open source. To make it even easier, I've cooked up a little GitHub Action that'll automatically update your Dev Card on your GitHub profile. - -In this post, we're gonna dive into what Dev Cards are all about, how this new GitHub Action works, and how you can get it set up. +In this post, we're gonna dive into what Dev Cards are all about, how this new GitHub Action works, and how you can get it set up. ## OpenSauced Dev Cards @@ -96,13 +95,14 @@ If you want to make the most of your dev card on your GitHub profile? Here are s ## The Secret Sauce: Understanding Your OSCR Score Think of the OSCR as your open source score that looks at: + - Your contribution frequency - The quality of your contributions - Your ability to start and be a part of open source conversations -Your OSCR score provides a quick snapshot of your open source activity and impact. It gives people an idea of how active and influential you are in the open source community. +Your OSCR score provides a quick snapshot of your open source activity and impact. It gives people an idea of how active and influential you are in the open source community. -Like any metric, your open source experience is about more than just one number. +Like any metric, your open source experience is about more than just one number. ## Conclusion @@ -113,4 +113,3 @@ Give it a try and let me know what you think! Stay saucy peeps! If you would like to know more about my work in open source, [follow me on OpenSauced](https://oss.fyi/nickytonline). -