Github or Codepen?

Since I started with FreeCodeCamp, I’ve been posting all my projects on Codepen, as prescribed by the core curriculum. I even went as far as to purchase the pro subscription, so I can host images with minimal hassle. My question is, wouldn’t be a more effective long-term strategy if we taught beginning coders how to use Github and Github Pages? I realize that Codepen is a far friendlier platform for beginning coders, but some knowledge of version control is often a key factor in getting hired.


I agree with you. I already know how to use these things and tbh, Codepen is more annoying to use for me than it would be for me to set my projects up from scratch.


I’d take it a step further and say Tools could be a course by itself. All the platforms and IDEs and package managers and things I’ve read about in conjunction with using code- code is just the beginning.


good way to look at it! check out this article about codepen, i had no idea you could so some much with it! I like code pen because it’s quick, easy, and has all of the frameworks need to build, compile, and execute HTML,CSS, LESS, SASS, JavaScript and a lot of other things.


@michaelhenderson is right. Codepen is really easy to get up and running and start building. If everyone had to set up git hub and learn some command line and then learn to push to something like Heroku, many new people might feel overwhelmed.

The backend projects use heroku, github/git, and cloud9 after you have already gotten used to coding. I still use codepen at work to test out some libraries and snippets of code because it’s much faster than setting up a project.


I never heard of Codepen until this post. I’ve been a programmer for 16 years. Pretty much nobody uses anything other than GitHub. Bitbucket tries, but it’s just second-best – by far.

My advice would be to at least be comfortable with GitHub. It’s hard not to if you have any real-world experience – most of the projects you’ll be including in your own code are hosted on GitHub.


It’s all about personal preference, but, in my opinion, GitHub and CodePen are two entirely different things made to carry out two entirely different functions.


For what it’s worth - my plan has been to learn the ins and outs of GitHub -while using CodePen (Pro) to work out the bugs, mess with the unbeautiful code, (& have fun!) … and after it all looks absolutely fabulous - to put up (/push) my portfolio quality work into my GitHub account.:sunflower:


I don’t have a problem with codepen, but I’d like to have the choice to use something else for my FCC projects.

1 Like

I made a thread a few weeks ago with a similar subject to this thread.

Don’t get me wrong @michaelhenderson and @gwenf. I do in fact see the advantages of Code Pen for beginners. However, the issue I’m addressing here is long term sustainability. Currently I’m looking for a job as a junior front-end developer, and I’ve seen more requests for links to a Github repository, than I have to Code Pen profile.

@tinyinkling’s approach of using Code Pen as a test bed and Github for the final product strikes me as one of the more sane approaches towards addressing this dilemma.and @MolarAmbiguity’s thread was also highly informative.

Personally, I think git usage should be part of freecodecamp’s core curriculum. I agree with @gwenf when she says that command-line tools would most likely scare off beginning coders, but I don’t think it would have the same effect on those of an intermediate or advanced skill level.

Finally, while the idea of a course on tooling intrigues me, I have to ask @shamieya, what tools do you have in mind? On the average my tool chain changes one (or more) times a year. For example, today I’m using Gulp, but tomorrow I may use Webpack, or i may abandon build systems all together in favor of NPM. The point I’m making is trying to create a comprehensive curriculum on tools, build systems, IDEs, etc is a lot like trying to hold water in a closed fist.


Free code camp encourages contributions from people of all skill levels, which looks great on a github profile:

The git/github part of the curriculum comes after the D3 certification, so it is pretty far into the lessons.


Codepen is great for fast small projects. There is no need to look for links to libraries and no need to deploy stuff live cause it’s already done. Codepen seems to be more convenient for other campers to check your work and play with the code. It’s also fast way to display your work live without any extra configurations. Plus you can always export from Codepen to a gist on Github.

Recently I encountered the problem that it looses focus while I am writing so I moved completely even with small stuff to Github. Anybody knows what might be the reason of loosing focus while writing there? It’s nothing with keyboard I think because other editors work fine.

Github is great for both small and big projects, seems to be more natural choice for developers I know. I started FCC projects with Codepen but it’s difficult to find yourself there with complex projects.


Codepen is frustrating to use on a laptop with a small screen.


I’d like to recommend as another option. This platform handles fullstack JS, automatically spins up an instance for the app when anyone visits the page, will host assets (images, etc), and can import / export with GitHub. I’ve been really impressed with using it. Only minor pain point is having to update package.json manually at times when the embedded search bar doesn’t find what I’m looking for, and the current supported version of node is 4.x.


Exactly. Don’t know what WebPack is, read about Gulp but still don’t understand what it is. NPM has something to do with Node; I assume I’ll learn about that when I get to the Node lessons. Maybe just a lesson about the categories of tools and why someone would use them. Why would using NPM eliminate the need to use those other things? Walk the viewer through setting up an environment (in the friendly FCC way). As they say to people trying to choose a language, just pick one. Visual Studio/Azure, Github/Jekyll (which requires Ruby?), I don’t know enough yet to name any others. All that to say, I really don’t know.

1 Like

top secret: both



GitHub is in the curriculum, it just comes later:

There is a challenge when designing a curriculum to consider the appropriate pathway for your intended cohort.

It seems to me that the decision to choose Codepen over GitHub pages initially stems from the decision to put coding practice before everything else for newbie coders. Codepen is a great choice because it offers far less friction for beginners. Sure, it’s not much more difficult to set up a nice text editor and work on a bunch of local files, and have all that tracked by Git, but it is still more difficult than not doing those things. Codepen allows you to start coding immediately and see the fruits of your labour and for a beginner that is golden motivation.

Also, beginners don’t really know what problem Git solves. It is much better to introduce tools around the time people begin to feel the need for them, since the motivation to learn them well and retain the learning is far greater when it is actually serving you.


I’ve read that two thirds of new campers have never programmed before and I think fcc is already overwhelming for beginners. Transitioning away from codepen is necessary at some point, but I’d argue that this should not happen before campers have a solid understanding of the foundations of programming. Everything on top of that introduces new things to learn and new reasons for errors/bugs. Git is maybe not difficult to learn, but you need a certain understanding to troubleshoot problems.


I a nutshell Codepen for me is a playground for non serious stuff whereas Github is my repository for the things that matter. Keeping experiments away from production is always a good idea and separation between CodePen and Github makes me 100% clear on that.
Github is not necessarily more complicated than Codepen. But you might got lost there. GitHub has many more features and a much longer track record with a lot of outdated, overcomplicated documents in the net that more confuse than matter.
Codepen is so easy that not much is written about nor does most probably anyone need documentation here.
So, for beginners it makes absolutely sense to start with Codepen as long as they are not doing any real (= paied) work.
Switching to GitHub later does not held anything back, but most probably you will have a much more clearer picture then, what you want from Git (which is importent if you do not want to get lost there).