DEV Community

Shannon Crabill
Shannon Crabill

Posted on • Updated on

I created and maintained my first open source project for Hacktoberfest. It got spooky. Ask me Anything.

A skeleton, deep in thought

With Hacktoberfest just around the corner, you may be thinking, what projects can I contribute to?

Last year, I thought the same thing. I had a hard time finding projects that I could contribute to. So, I decided to create my own, a countdown timer to Halloween.

Ask me anything.

👻

Photo by Mathew Schwartz on Unsplash

Top comments (37)

Collapse
 
aliecake profile image
Lauren E

Last year, I wanted to participate in Hacktoberfest, but was really spooked. After completing MWS, I feel much more confident. What advice do you have for someone new (like me last year/this year) who is worried they aren't good enough to contribute to open source?

Collapse
 
scrabill profile image
Shannon Crabill

First up, you are 1000% good enough to contribute to open source!

If you know how to code, great, but there are so many other aspects to open source too. The first few commits I did last Hacktoberfest were documentation updates—like fixing typos—and translating content from German to English (hello Babel Fish). For me, those minor contributions were a boost to my confidence which made me want to take on more. They helped me to get comfortable with git and GitHub again (I used it only a few times before).

Second, try not to be afraid to ask questions or offer new ideas. If you see an issue that looks like something you can handle claim it, or ask if it's ok to get started and go for it. I've yet to meet an open source maintainer that didn't respond to questions or offer feedback to guide you through the process.

Hopefully, you are less spooked this year! What aspect that you've learned in MWS would you like to try out in an open source project?

Collapse
 
aliecake profile image
Lauren E

That's the problem I suppose. I felt quite lost. But after finding a project I committed to it and began just thinking "offline first... Mobile first". I suppose we have learned more than we thought :)

Collapse
 
aliecake profile image
Lauren E

Today I dove in. Fixed a tiny CSS bug then moved onto adding a service worker to a hacktoberfest page. Open source is actually quite fun! Thank you!

Thread Thread
 
scrabill profile image
Shannon Crabill

There ya go! You're 1/5 of the way to getting that t-shirt 👻

Thread Thread
 
aliecake profile image
Lauren E

Shannon, made it to 5/5 today. Certainly is interesting, and helping me understand github better slowly but surely.

Thread Thread
 
scrabill profile image
Shannon Crabill

Wow, that's awesome. Congrats! I need to catch up before all the t-shirts are taken :P

Collapse
 
peter profile image
Peter Kim Frank

Any big Hacktoberfest plans this time around?

Collapse
 
scrabill profile image
Shannon Crabill

No BIG plans this time around.

Right now, I'm debating if I want to continue with the Halloween countdown timer I did last year, or come up with something new or different. Most likely, I'll continue with the countdown timer, but I do need to decide if I want to build on where I left off last year. Or, archive that version, strip it down to the bare bones and open it up for contributions again (restarting it, I guess).

I'm almost done with a Udacity, Mobile Web Specialist nanodegree where I'm learning a lot about progressive web apps. I can see a lot of those technologies being good ideas for issues/improvements to the countdown timer.

What about you Peter? Any big (or spooky) plans for Hacktoberfest this year?

Collapse
 
peter profile image
Peter Kim Frank

We're hosting a Hacktoberfest event in NYC which I'm really excited about. I imagine folks will work on a wide variety fo projects, but hopefully some will make contributions to the DEV codebase itself :)

Thread Thread
 
scrabill profile image
Shannon Crabill

Awesome! If I was local to NYC I'd stop by.

I've yet to do an in-person hackathon. Any tips from a contributor or hosts perspective?

Collapse
 
stargator profile image
Stargator

Did you contribute to any open source projects before Hacktoberfest?

Collapse
 
scrabill profile image
Shannon Crabill

I don't think I had, actually.

It had been something I wanted to explore, but imposter syndrome would set in and I would dismiss the idea. I was following the Wordpress open source forums but didn't make the jump to contribute anything. Luckily, I was my own biggest barrier when it came to getting into open source :)

What about you? What's your open source projects have you contributed to?

Collapse
 
stargator profile image
Stargator

Exercism/dart (Maintainer)

dart-lang/sdk (just a typo fix in the CHANGELOG)

jekyll

Currently, various Dart-based projects because of the recent release of Dart 2.0

Primarily, if it's something I use and I hit a problem or I see something that no one else seems to be working on, I'll look at trying to address it.

Of course for me, it's more of about time management. There's so much I would like to do, but I have other non-programming priorities.

Thread Thread
 
scrabill profile image
Shannon Crabill

I hear ya! I'd love to more of this as part of my day job, but for now, I'm git-hubbing late at night and on weekends.

Documentation was something I was hoping to do more of. Last Hacktoberfest, I found a few open documentation issues, but either I wasn't familiar with the whole project or they were already claimed.

What do you think of jekyll? I tried it once at a workshop and it wasn't pretty cool. I'm curious what else I can do with it.

Thread Thread
 
stargator profile image
Stargator

I like it, but the blog I created with it hasn't been published. Been working on it since 2014 off and on.

I did see a theme I liked, but it was for Python's Pelican site generator.

So I converted it for jekyll

I need to polish it, update it to the recent packages, and just make sure nothing is broken before I publish it. Again, other things come up and seem like higher priorities due to time constraints or blocking issues.

Collapse
 
ashikpaul profile image
Ashik Paul • Edited

Those goodies don't reach India.
Last year I was waiting for 3 whole months hoping it would reach.

I love coding, and I want to shout it loud. But this discouraged me so badly that...

I will try again. Fingers crossed.

Collapse
 
scrabill profile image
Shannon Crabill • Edited

Oh no :( Did your goodies ever arrive?

I hope it doesn't discourage you long term. Open source is pretty awesome. For me, the stickers, etc were a nice plus but not my main motivation. For me, being a part of something (and I had wanted to do more with git/Github anyway) was my main goal.

Collapse
 
ben profile image
Ben Halpern

What's the scariest thing about contributing to open source?

Collapse
 
scrabill profile image
Shannon Crabill

Great first question!

For me, the idea that I might have a bad experience is what made open source scary to me.

I had been interested in contributing to open source for a while, but kept talking myself out of it. Open source seemed like this big, scary thing that only the "cool" kids with all the experience could be a part of. Imposter syndrome hit when I didn't think I had the skills (a lot of repos out there did not seem front-end developer friendly) to be able to add anything of value. And what if—gasp—someone rejected my pull request, or was rude to me, or noticed I was an open source n0ob and kick me out of the treehouse.

Luckily, my anxiety was wrong. I've had nothing but good interactions to date :)

Was there a point where you found open source scary?

Collapse
 
itsdarrylnorris profile image
Darryl Norris

People looking at your bugs? :P

Collapse
 
scrabill profile image
Shannon Crabill

I'd encourage people looking at (and hopefully helping to correct) my bugs.

I can also see how that would be nervewracking. The idea of doing something wrong or breaking ALL of the code has dissuaded me from contributing a few times.

Collapse
 
andy profile image
Andy Zhao (he/him)

How'd you come up with an idea? Any tips you wanna share?

Collapse
 
scrabill profile image
Shannon Crabill

The idea came from when I finally understood how Javascript worked.

"Learn Javascript" was on my to-do list for ages. I tried learning a few times in the past 2-3 years, but I had a hard time grasping the concepts, so it didn't stick. Last summer I stayed in all weekend and went through ALL of the Code School Javascript tracks, then I started to get it.

The fact that I could have Javascript do math was really fun to me. That and if/else statements. I got a little obsessed with the two and ended up making some quick apps like my Is it Payday?. My coworkers are pretty into Halloween (it got to the point where I would mention how many days until, during our daily stand ups) so a countdown clock to Halloween seemed like a good idea :)

I had posted it on Github in September, but I didn't hear about Hacktoberfest until mid-October. I wasn't finding much to contribute to, so I added the appropriate tags, made some Tweets and opened it up to the internet to contribute to. It took off way more than I expected it to, which was cool! I learned a lot, it forced me to get familiar with Git real fast and is easily one of the things I'm most proud of in 2017.

As far as tips, if you are looking to start your own open source project, stick with something that interests you, even if you aren't an expert in it. I'm sure as heck, not a Javascript expert (or Github guru, or open sourcerer, etc) but it was a fun, low-key thing I could spend a few hours each evening working on. I'd also say don't overthink it too much. With some small exceptions, open source/code/etc has a low barrier of entry and there's not much harm that can be done with posting a repo and opening it to the public.

Do you have any project ideas in mind?

Collapse
 
andy profile image
Andy Zhao (he/him)

With some small exceptions, open source/code/etc has a low barrier of entry and there's not much harm that can be done with posting a repo and opening it to the public.

Totally agree. The idea of open sourcing my repos that I cared about always worried me, but it's really not that big of a deal.

I was thinking of making a simple PWA that lets you check your NYC subway times easily. There's an official app for it but it's kind of meh, and doesn't load fast enough for me. 🙃

Another app might be a PWA subway map that's available offline, and is interactive. It'd also be cool to see which lines are changing and what not, since I don't have reliable app that does that well.

Thread Thread
 
scrabill profile image
Shannon Crabill

I love the idea of doing a subway app. Those apps are usually terrible (I used to commute in DC. I don't remember if there was an app, but the mobile site was not responsive) so there's lots of room for improvement.

I recently learned about PWA so now I want to make every website offline friendly.

Collapse
 
hiruthicsha profile image
hiruthicSha

I am creating my repo in GitHub and I want the PR's to the repo to be accepted by the hacktoberfest community. As the guidelines have changed on October 3, I have added "hacktoberfest" label to my repo's topic and added "hactoberfest-accepted" label in some issues. Is that enough or should I make any more changes?
My repo for reference: github.com/hiruthic2002/pLANTEr

Thanks,
Hiruthic.

Collapse
 
dbelyaeff profile image
Dmitriy Belyaev

Do you have 100% tests coverage? 😏

Collapse
 
scrabill profile image
Shannon Crabill

I 100% had to Google what this meant ;)

Nope, I didn't have any unit test or scripts, etc. For me, it was a matter of looking at the pull request, resolving any conflicts if there were any then merging the code.

Did I break things? Yes. More than once. But I could easily roll back the commit and try again.

Do you have any suggested resources for unit tests, etc? It is something I want to learn more about.

Collapse
 
dbelyaeff profile image
Dmitriy Belyaev • Edited

It's very complex topic.

Whether or not we are testing manually whenever we programming.

So why we have to do it by hands if this can be automated?

TDD (Test Driven Development) approach offers reverse approach:

  1. Write a test.
  2. Get test red (failed).
  3. Write a code.
  4. Get test green (succeed).
  5. Refactor code keeping test green.

It helps to keep code in order even when you have large code base in application.

I suggest YouTube (free), docs (of testing software) and some courses (like Frontendmasters — paid).

Tests are almost similar among different programming languages.

Just look up for testing on the platform/language.

I recommend to look at Jest for frontend and backend development with JavaScript.

Take have a look at the movie below:

Thread Thread
 
scrabill profile image
Shannon Crabill

Thanks for sharing! I've flagged the video to watch later.

I take it you do a fair amount of test writing in your day to day?

Collapse
 
stargator profile image
Stargator

Hey I just listened to you on Command Line Heroes! Congratz! I very much appreciate your activity here and your willingness to speak about in on a podcast.

Collapse
 
scrabill profile image
Shannon Crabill

Thank you! :)

Collapse
 
maestromac profile image
Mac Siri

Ever be on the fence about certain PR to your project? How do you deal with those?

Collapse
 
scrabill profile image
Shannon Crabill

Yeah, I had a few of those. Most of them where pull requests that accomplished the same thing / resolved the same issue. So, I had to pick which one to merge. Usually, I went with the one that was submitted first. For the others, I would explain why I was not merging it and encourage them to submit other pull requests.

There was one pull request that wasn't in line with where I wanted to take this project. It was completely rehauling the codebase, which would have cleared out the other changes made to date. There was an element of their pull request that I liked, so I responded to their comment with saying if they could rework that feature (spooky music) into the existing codebase, I'd love to get that added.

The key thing is to communicate and create learning opportunities wherever possible. The contributors I worked with all seemed to appreciate the encouragement.