-
Notifications
You must be signed in to change notification settings - Fork 47
contribute
Welcome! Our vision is to make programming accessible to everyone, regardless of language, culture, class, or ability. We're excited to have your help on activities such as:
- Designing and redesigning the language and platform
- Implementing and refining user interface features
- Improving correctness and reliability of current features
- Localizing to one or more of the world's languages<
- Writing automated tests
- Creating Wordplay examples to inspire youth
- Verifying accessibility
- Moderating in our online community
- Teaching peers, including programming, testing, software engineering, and design skills
Anyone in the world, at any level of experience, is welcome to help, as long as they share our mission and follow our [/conduct](code of conduct).
Aside from supporting the project's goals, there are many reasons.
If you're a student:
- You can learn technologies like Typescript, SvelteKit, and Firebase.
- You can gain practical skills in software engineering, including bug triage, Git workflows, code reviews, verification, and programming languages.
- Amy will write you a letter of recommendation about your contributions to the community.
- If you're a student at the University of Washington, you can earn elective credit.
If you're a teacher:
- We need your voice to shape a platform that works for you and your students.
- We'd love to engage your students in directly shaping the platform as well, giving them a chance to guide the community's work and shape platforms that are responsive to their interests, needs, and goals.
If you're a developer:
- Advance a not-for-profit, justice-centered open source project that supports teachers, students, and schools
- Tackle challenging design and engineering challenges at the intersection of programming languages, tools, and learning.
To ensure everyone who contributes understands the project goals, we ask you do a bit of homework.
Fill out the Wordplay application. It is extensive, requiring reading, writing, and reflection, and some careful planning about your time and commitments. We recommend skimming the application first, seeing what's required, and making sure you actually want to commit to volunteering. The effort this application requires is intentional: we want volunteers who are invested in the vision and the project's success, and will be reliable, sustained contributors for at least 3 months, if not much longer.
After you fill out the application, we'll reach out with an email that details how to engage (or with questions, if you didn't do your homework). We review these roughly once a week, but you're welcome to read ahead below to get started.
Note
Winter 2025 meetups are in meets in Odegaard Undergraduate Library 136, Wednesdays 5:30-6:50pm. Our first day January 8th and our last is March 12.
We currently hold meetups once a week on Wednesday evenings on the University of Washington campus. We use the collocated time to build community, make friendships, and help each other. In person gathering is important, because it allows for trust building and learning that's not possible online. If we're doing it right, you should look forward to gathering and when you leave, you should have a sense of being supported, having community, and knowing more than you did before!
The meetups involve:
- Welcoming newcomers
- Updates on the project
- Huddles by contribution role
- Lots of peer learning, peer teaching, and problem solving together on project priorities!
We sometimes have food, depending on project funding.
Our meetups are structured quarterly and we generally expect contributors to complete project commitments at the end of each quarter.
Attendance is not mandatory to be a contributor; you're welcome to contribute asynchronously and remotely or organize your own local meetups. But we do find that collaborating with people, in person, is the best way to contriute.
Discord is where we help each other and coordinate our work. Post questions, resources, and event information in relevant channels in #chat, or more specific channels relevant to your topic.
We encourage you to create dedicated channels for issues (named [issue]-description, in the "Issues" category) to coordinate and collaborate as long as you ensure that critical insights and decisions are captured on GitHub. Archive the channel once the issue is closed.
- Join the Wordplay Discord and make sure you're on the #chat channel.
- In Discord, update your server nickname in "Edit Server Profile" to
"Your Name (GitHub-username)"
(e.g., Amy's is"Amy J. Ko (amyjko)
so people can find you on each platform.
Important
Don't use other platforms (e.g., some other Discord server, Slack, Teams, group chats, etc.) to communicate. Discord is where our community is; if you talk elsewhere, it fragments it. If you have ideas for how to make Discord better support your work, suggest ideas in #chat.
GitHub is where we discuss issues. All new problems, design proposals, and discussions about specific topics should go there, so there's a record of decisions for everyone to review, enabling newcomers to have all the context necessary to contribute to the problem.
It's also where we manage the project. See our project's Kanban board to check what issues are in our backlog, being actively worked on, or finished.
- If you don't have a GitHub account, create one, and make a note of your username.
Important
GitHub Be responsive to GitHub comments, especially if someone tags you; try to reply within a few weekdays, even if it's just to say that you'll reply with more detail soon. Ghosting breaks collaboration.
Now that you're connected, you have some learning to do!
Contributing to this project will require lots of learning. Don't be surprised if you need to pause and spend some time learning a particular aspect of a tool, programming language, or framework. We view learning as a regular part of contributing, and we hope you will, too! There's no shame in taking responsibility for some work and learning as part of it.
Here are some of the things you might need to learn:
- Git and GitHub functionality. (Need to learn? See the GitHub tutorial).
- VS Code functionality. (Need to learn? See the VS Code tutorial.
- Details of JavaScript, HTML, and CSS syntax and semantics. (Need to learn? See the Modern JavaScript tutorial).
- TypeScript and the more general concept of static typing. (Need to learn? See the TypeScript tutorial).
- Svelte and SvelteKit concepts and tools. (Need to learn? See the Svelte tutorial).
- Firebase concepts and functionality (authentication and Firestore in particular). (Need to learn? See Firebase fundamentals).
It is entirely appropriate if most of your time is spent learning. Organize group tutorials, learn with each other.
Before you can contribute, learn the Wordplay programming language.
- Complete the Wordplay tutorial to learn the programming language and the interface. This is an essential step for any contribution, so you know what you're enhancing, fixing, localizing, etc. Alternatively, read its documentation and review the many examples in its galleries.
- Create an account and make a few Wordplay programs. Get used to what's possible to create with it. As you do this, report what you find confusing or wrong as issues, so we know to improve them.
It's okay if you don't feel like you've mastered the language after the tutorial. The important part is that you have a sense of the scope of content, functionality, and possibilities, so you have context for your work.
There are many ways to contribute to the project:
Pick one or more of these, carefully read through the entire document, and ask questions about the role in the appropriate channel in Discord. Once you've chosen a role:
- Add your GitHub username to your server name in Discord. This helps everyone associate you on Discord with your username here on GitHub.
- Read the guidelines for your role(s) the corresponding documents above and get started!
Once you have a role, you should have everything you need to get started!
There are a few ways to gain recognition for your contributions.
If you're a University of Washington student, we can offer you credit. Choose one of the these ways to register before the next quarter begins:
- INFO 494 Research Studio Justice-Centered Programming Languages. Receive 2 credits of elective credit as compensation for 6 hours/week of volunteer effort. Includes some minor additional work for credit.
- CSE 499 Independent Study. If you are a CSE student and do not want to register for INFO 494, you may register for 2-4 credits. Use the [https://www.cs.washington.edu/academics/ugrad/research#registration](CSE registration process] and just refer to the Wordplay application you filled out.
If you've made contributions to the project, follow Amy's recommendation guidelines, and provide some detail about your contributions.
When there's funding available (which is often), Amy hires teachers, doctoral students, masters students, and undergraduates to support the project. See her webpage for current opportunities.
Do you find something confusing on this page? Submit a maintenance issue, so we can improve it.