Skip to content

Commit 61938dd

Browse files
author
Nap Joseph Calub
committed
docs: add contribution guide
1 parent 99d4d30 commit 61938dd

4 files changed

Lines changed: 466 additions & 29 deletions

File tree

CONTRIBUTING.md

Lines changed: 339 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,339 @@
1+
# Contributing to Will Craft Software
2+
3+
First off, thank you for considering contributing to Will Craft Software! It's people like you that make this community amazing.
4+
5+
## 📌 Impostor Syndrome Disclaimer
6+
7+
Before we get started, we want to address something important:
8+
9+
**We want your help. Yes, you. The person reading this right now.**
10+
11+
There's no such thing as a contribution that's too small:
12+
13+
- Found a typo? Send a PR!
14+
- Noticed a broken link? Let us know!
15+
- Have an idea for an event? Open an issue!
16+
- Want to improve documentation? Go for it!
17+
18+
Everyone was a beginner at some point. If you're unsure about anything, just ask – we're here to help, not to judge. The worst that can happen is we'll politely guide you to make your contribution even better.
19+
20+
## 🤝 Code of Conduct
21+
22+
### Our Pledge
23+
24+
We pledge to make participation in our project and community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
25+
26+
### Our Standards
27+
28+
Examples of behavior that contributes to a positive environment:
29+
30+
- Using welcoming and inclusive language
31+
- Being respectful of differing viewpoints and experiences
32+
- Gracefully accepting constructive criticism
33+
- Focusing on what is best for the community
34+
- Showing empathy towards other community members
35+
36+
Examples of unacceptable behavior:
37+
38+
- The use of sexualized language or imagery
39+
- Trolling, insulting/derogatory comments, and personal attacks
40+
- Public or private harassment
41+
- Publishing others' private information without permission
42+
- Other conduct which could reasonably be considered inappropriate
43+
44+
## 🚀 Getting Started
45+
46+
### Prerequisites
47+
48+
- [Deno](https://deno.land/) installed on your machine
49+
- Git for version control
50+
- A text editor (we recommend VS Code with Deno extension)
51+
- Basic knowledge of HTML, CSS, and JavaScript/TypeScript
52+
53+
### Setting Up Your Development Environment
54+
55+
1. **Fork the repository**
56+
57+
```bash
58+
# Click the 'Fork' button on GitHub
59+
```
60+
61+
2. **Clone your fork**
62+
63+
```bash
64+
git clone https://github.com/YOUR-USERNAME/wewillcraft.github.io.git
65+
cd wewillcraft.github.io
66+
```
67+
68+
3. **Add upstream remote**
69+
70+
```bash
71+
git remote add upstream https://github.com/wewillcraft/wewillcraft.github.io.git
72+
```
73+
74+
4. **Install dependencies and run locally**
75+
```bash
76+
deno task serve
77+
```
78+
Your site should now be running at `http://localhost:3000`
79+
80+
## 📝 How to Contribute
81+
82+
### Reporting Bugs
83+
84+
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
85+
86+
- A clear and descriptive title
87+
- Steps to reproduce the behavior
88+
- Expected behavior
89+
- Screenshots (if applicable)
90+
- Your environment (OS, browser, etc.)
91+
92+
### Suggesting Enhancements
93+
94+
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
95+
96+
- A clear and descriptive title
97+
- Step-by-step description of the suggested enhancement
98+
- Explanation of why this enhancement would be useful
99+
- Possible implementation approach (if you have ideas)
100+
101+
### Adding Events
102+
103+
To add a new event to our calendar:
104+
105+
1. Edit `/events/index.yml`
106+
2. Add your event following this format:
107+
108+
```yaml
109+
- name: "Event Name"
110+
start_date: 2025-03-15 # YYYY-MM-DD format
111+
end_date: 2025-03-16 # Optional for multi-day events
112+
city: "Manila City"
113+
website: "https://event-website.com"
114+
by: "org-id" # Must match an organization ID
115+
```
116+
117+
3. If adding a new organization, update the organizations list in the same file
118+
119+
### Writing Blog Posts
120+
121+
1. Create a new markdown file in `/posts/` directory
122+
2. Name it with the format: `YYYY-MM-DD-post-title.md`
123+
3. Add frontmatter:
124+
125+
```markdown
126+
---
127+
title: Your Post Title
128+
date: 2025-01-15
129+
tags:
130+
- community
131+
- technology
132+
excerpt: A brief description of your post
133+
---
134+
135+
Your content here...
136+
```
137+
138+
### Working on the 100-Day Journey Content
139+
140+
The `/journey/` directory contains our educational content. Each week has:
141+
142+
- A main content file
143+
- A CLAUDE.md file with guidelines
144+
145+
When contributing to journey content:
146+
147+
1. Follow the style guide in the respective CLAUDE.md file
148+
2. Keep content beginner-friendly
149+
3. Include practical examples
150+
4. Aim for 20-30 minute read time
151+
152+
## 💻 Development Workflow
153+
154+
### Branch Naming
155+
156+
- `feat/` - New features (e.g., `feat/add-workshop-section`)
157+
- `fix/` - Bug fixes (e.g., `fix/mobile-navigation`)
158+
- `docs/` - Documentation changes (e.g., `docs/update-readme`)
159+
- `style/` - CSS/formatting changes (e.g., `style/improve-card-layout`)
160+
- `refactor/` - Code refactoring (e.g., `refactor/simplify-event-logic`)
161+
- `test/` - Adding tests (e.g., `test/add-event-validation`)
162+
- `chore/` - Maintenance tasks (e.g., `chore/update-dependencies`)
163+
164+
### Commit Messages
165+
166+
We use [Conventional Commits](https://www.conventionalcommits.org/) for clear commit history:
167+
168+
```
169+
<type>(<scope>): <subject>
170+
171+
<body>
172+
173+
<footer>
174+
```
175+
176+
**Types:**
177+
178+
- `feat:` - New feature
179+
- `fix:` - Bug fix
180+
- `docs:` - Documentation only
181+
- `style:` - Formatting, missing semicolons, etc.
182+
- `refactor:` - Code change that neither fixes a bug nor adds a feature
183+
- `test:` - Adding missing tests
184+
- `chore:` - Maintain
185+
186+
**Examples:**
187+
188+
```bash
189+
feat(events): add filtering by organization
190+
fix(calendar): correct date formatting for multi-day events
191+
docs: update contribution guidelines
192+
style: format events page with prettier
193+
```
194+
195+
### Pull Request Process
196+
197+
1. **Keep your fork updated**
198+
199+
```bash
200+
git fetch upstream
201+
git checkout main
202+
git merge upstream/main
203+
```
204+
205+
2. **Create a feature branch**
206+
207+
```bash
208+
git checkout -b feat/your-feature-name
209+
```
210+
211+
3. **Make your changes**
212+
213+
- Write clear, readable code
214+
- Follow existing code style
215+
- Add comments where necessary
216+
- Update documentation if needed
217+
218+
4. **Test your changes**
219+
220+
```bash
221+
deno task build # Build the site
222+
deno task serve # Test locally
223+
```
224+
225+
5. **Format your code**
226+
227+
```bash
228+
dprint fmt
229+
```
230+
231+
6. **Commit your changes**
232+
233+
```bash
234+
git add .
235+
git commit -m "feat: add amazing feature"
236+
```
237+
238+
7. **Push to your fork**
239+
240+
```bash
241+
git push origin feat/your-feature-name
242+
```
243+
244+
8. **Create a Pull Request**
245+
- Go to the original repository
246+
- Click "New Pull Request"
247+
- Select your fork and branch
248+
- Fill in the PR template
249+
- Link any related issues
250+
251+
### PR Review Process
252+
253+
- PRs require at least one review before merging
254+
- Address reviewer feedback constructively
255+
- Keep PRs focused - one feature/fix per PR
256+
- Update your PR rather than creating a new one
257+
- Be patient - reviewers are volunteers too!
258+
259+
## 🎨 Style Guidelines
260+
261+
### Code Style
262+
263+
- Use 2 spaces for indentation
264+
- Use meaningful variable names
265+
- Keep functions small and focused
266+
- Add JSDoc comments for complex functions
267+
- Follow existing patterns in the codebase
268+
269+
### CSS/Tailwind
270+
271+
- Use Tailwind utility classes when possible
272+
- Keep custom CSS minimal
273+
- Follow mobile-first responsive design
274+
- Maintain consistent spacing and sizing
275+
276+
### Content Style
277+
278+
- Write in a friendly, inclusive tone
279+
- Use "we" and "you" to be conversational
280+
- Keep paragraphs short and scannable
281+
- Use headings to organize content
282+
- Include examples and practical applications
283+
284+
## 📚 Resources
285+
286+
### Learning Resources
287+
288+
- [Deno Documentation](https://deno.land/manual)
289+
- [Lume Documentation](https://lume.land)
290+
- [Vento Template Engine](https://vento.js.org)
291+
- [Tailwind CSS](https://tailwindcss.com)
292+
- [Conventional Commits](https://www.conventionalcommits.org)
293+
294+
### Getting Help
295+
296+
- Open an issue for bugs or feature requests
297+
- Start a discussion for questions or ideas
298+
- Join our community events to meet contributors
299+
- Check existing issues and PRs for similar topics
300+
301+
## 🎯 Areas We Need Help
302+
303+
Currently looking for help with:
304+
305+
- Adding more tech events to the calendar
306+
- Writing blog posts about community experiences
307+
- Improving mobile responsiveness
308+
- Adding more educational content to /journey/
309+
- Translating content to Filipino
310+
- Creating graphics and illustrations
311+
- Improving accessibility (ARIA labels, keyboard navigation)
312+
- Writing tests
313+
- Documentation improvements
314+
315+
## 🙏 Recognition
316+
317+
Contributors will be:
318+
319+
- Listed in our Contributors section
320+
- Mentioned in release notes
321+
- Invited to contributor-only events
322+
- Given credit in social media posts
323+
324+
## 📮 Contact
325+
326+
- GitHub Issues: For bugs and features
327+
- GitHub Discussions: For questions and ideas
328+
- Email: [Add contact email if available]
329+
- Social Media: [Add social links if available]
330+
331+
## 📜 License
332+
333+
By contributing, you agree that your contributions will be licensed under the same license as the project (check LICENSE file).
334+
335+
---
336+
337+
**Remember:** The best way to learn is by doing. Don't be afraid to make mistakes – that's how we all learn and grow. We're excited to see what you'll contribute!
338+
339+
Thank you for being part of Will Craft Software! 🚀

0 commit comments

Comments
 (0)