Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

How to build a website with treehouse features?

Hi all,

I would like to build a website with functions similar to the ones Treehouse has. For example I would like to feature video tutorials and then lead on to a quiz like the ones treehouse has for its learning.

Does anyone know which framework I should use to best code such a site.

Thanks for your input,

ssrdev677

4 Answers

To get started with a very low entry bar you can look at Sensei : http://www.woothemes.com/products/sensei/

It's a wordpress plugin, so you get a ton of functionality for almost nothing. I have not used this plugin, but I know woo themes is a big and trusted source for wordpress things, so I imagine it's at least decent and very usable.

Treehouse is a custom web app, built by many, over a few years of working on it, so to set realistic expectations, start smaller like with that plugin, or another option, and build from there.

That's really interesting stuff thanks for recommending that. I think i'll use sensei to see what limitations it has however i can already sense it not going to be as customisable as i'd like, part of the reason why i'd rather learn to code it myself.

I know the treehouse ecosystem took a long and collaborative effort but in itself creating a question and answer form cannot be THAT hard can it? If i start with one question and and an answer and build on it and repeat I'll have hat i need. I may be wrong but even with my limited knowledge of javascript i can see something like that being built?

In any case I appreciate your time and effort in helping me and I will take further looks into sensei as i can at least use it for testing some concepts.

thanks again,

ssrdev677

Sounds good man.

A question and answer form, no...that's pretty easy. It starts to get very complicated when you start tracking user stats, scores, building your backend to add questions, answers, etc.

It can start pretty quickly being basic, but can also quickly grow into something complex very fast. And other variables come into play. A multiple choice would be easier to validate correct vs an open ended question, etc.

Check out any of the back end tracks to help you get started.

Hi Stephen,

I am going to assume you are using a static http server to serve your site to the web. If this is the case, then there are hundreds of frameworks you can use to create your website such as AngularJS, Ember, JQuery, React, Backbone, etc.. . When choosing any framework or library I like to look for a couple of things:

  • First, DOCUMENTATION!!! There is nothing more frustrating that trying to use an undocumented library. I would rather use a library that is harder to use, but well documented, than one that perfectly suits my needs but has no documentation.

  • Second, OPEN SOURCE. If I have to pay for the library, I don't want to use it.

  • Third, MATURITY. Is the community actively using it and updating it? Have people already answered my questions about it on stack over? Are there people to help if I need it? To figure this out, go onto the github page and look at its Forks, Stars, Watches, Commits, and the number of contributors. The higher the numbers, the more active the community.

  • Forth, FAMILIARITY. I am more likely to choose a library if I have experience using it.

At the end of the day (especially for smaller applications), It really comes down to personal preference. For me, that tool is AngularJS, for others it's React. If I was building your application I would start with these.

I hope this helped. Let me know if there is anything else I can clarify.

I second Kevin Korte's answer. Specifically, the part about Treehouse being a group effort. The Treehouse experience is intuitive, aesthetically pleasing and pretty freakin functional. If you look here, you'll find like a 100 experienced professionals have contributed to this site over the course of not weeks, or months, but freakin years — and it still isn't free of minor bugs! Essentially, unless you have a team that size (with comparable experience), no framework/language/theme will, in and of itself, suffice to build you a site/app that's on par with Treehouse.

If I would have been ringside at the David and Goliath fight in biblical times I would definitely have left your comment out of the motivational talk.

To quote Brad Pit as Achilles in Troy "That is why no one will remember your name".

https://www.youtube.com/watch?v=badMwEC1YEQ

David & Goliath?? Achilles??? Hehe, you got it twisted Stephen. Um... David was like a little magical shepherd with a divinity-powered stone-thrower thingy... and, if i recall correctly, Achilles, as an infant, was dipped in magical juice that rendered him mostly impervious to harm throughout the remainder of his life. Back in reality (ya know, that place where you and I live?), Goliath would have kicked the living shit out of David and Achilles would have drowned as an infant.

But let's not digress. You asked a very specific question that I assumed was intended to be answered in realistic terms — my goal wasn't to motivate you. Incidentally, my goal wasn't to demotivate you either. If you really want to build a site with functionality on par with Treehouse, there's nothing stopping you from designing a solid business model, building a prototype from your business model, testing your business model , securing funding for your business model and then implementing your business model. If this is what you desire, then "more power to you." My point is/was that this isn't an endeavor that can be successfully conquered by a single person — hence, why I pointed out that the Treehouse site has like 100 pros working on it (that's not even counting the marketing peeps, the executives and the VCs involved in Treehouse Island, Inc).

But in the meantime, here are 32 Different WordPress Themes that seem to fit the requirements of what you're looking for. I would just keep in mind that a website is simply a product of a business and not the business itself — i.e., sites like Treehouse, Twitter, Quora etc. are products of their respective companies... not businesses in and of themselves. And a successful business is what's admirable — given enough time, anyone can make a website.

As for:

"That is why no one will remember your name."

Even if Elon Musk succeeds in establishing space travel to Mars, it's only a matter of time (a millennia perhaps) until only a fraction of the population remembers his name...and eventually, no one will. So, "That [time] is why no one will remember [anyone's] name" ... eventually.

Would learning Ruby on Raill give me the ability to build a facebook or treehouse site like combined?

There is no magic that Ruby and/or Rails is the ticket. Ruby on Rails does provide a lot of "magic" in and of itself, but in a similar way that Laravel does for php, or django does for python. It hides a lot of the heavy lifting of web applications into more easily usable snippets. It does a lot of you, without asking, which is why you'll often hear the word "opinionated" used. I've said it before. Rails is an opinionated framework, but it works for many types of sites.

RoR is a fantastic framework and language, and it is one way you could certainly build a facebook like, treehouse inspired website. It's not the answer to your problems though.

We can say more likely to to know PHP OOP, Rails and or JS and that would give the ability to understnad the web itself deeper? Saying that you as developer would have to create the magic?

As far as i know PHP and Rails can be used as backend for anywebistes and thas how its used i believe. Treehouse is made with Rails and it has bascially all the functionality like treehouse and facebook combined almost, there are tutorials that shows how to do authentication or facebook like site with Rails. It seem its kinda perfect .

First, let's just make sure we clarify something. It's not fair to compare PHP and Rails. PHP is a langague, Rails is a framework written in Ruby, a language.

You should compare PHP to Ruby, or Rails to Laravel, but don't confuse or mix comparing a framework written in one language, to another language.

All of these tools are just that, tools. Sure, the more you start to understand, the more you understand how to put together a more complex site. At first I didn't understand hardly any of the magic Rails does. Until I started to break Rail's opinionated conventions, and it was throwing exceptions, I had to figure out what I did to upset Rails, how to fix it, and that taught me what its actually doing for me. Now I appreciate I don't have to implement csrf tokens into my web forms for security, Rails automatically does that, and checks that same token on form submit, for me.

I'm happy to know Rails already protects against mass assignment, and that it allows me to tell it with one line of code exactly what data I'm expecting from a form, and to permit to continue to the database, while ignoring the rest. I no longer have to worry somebody adds a admin = true field to their form before they submit, because mass assignment won't let it through.

This is the type of magic that many of the frameworks have. Now we have big frameworks like Laravel for PHP, Rails for Ruby, and Django for Python, while we have microframes as well, like Slim or Lumen for PHP, Sinatra for Ruby, and Flask for Python. It just depends on what you need.

Facebook was more or less started in PHP, Twitter was more or less started in Ruby, and Youtube was started in Python. All of these sites have had to adapt their language stack as they've grown to massive size, but three big sites, three different languages.

Not to mention new combers like Node which are very gaining a lot of ground.

Wow, thank you for this very informative detailed answer! I understand i a lot more how the stuff rolls now, it gave me a different look at it. With time, after knowing something such as laraver or Rails, we or I , can take its component out and understnad how it wokrs and the magic it does such as laraver, we know it uses PHP OOP and thats the magic . You could then break laraver out and see how the OOP works i believe. Same as you did it with Rails .

So PHP is langauge such as Ruby is a langauge. And while we can learn laraver its still PHP, same as Rails, its still Ruby .

Would happy to buy a book form you.

OOP is just concept. It's just object oriented programming. It's a concept for structure. You could apply OOP to any language, I've even seen devs talk about OO-CSS, or OO-JS.

Sure, you could read the source code of these frameworks and see how they tick. The magic is they preform a lot of "best practices" for you, for free. These best practices are built into the framework. For instance, you don't write SQL statements in Laravel or Rails, instead they each have their own syntax for querying the database. That syntax gets turned into a SQL statement, that is than ran against the database. What's cool about this, is let's say in Rails my database for development is SQLite, but my database for production is PostgreSQL (which this is very common). The same query code I wrote in Rails works for both databases, Rails magically figures out the correct sql syntax for each. Or let's say I want to switch to a MySQL database. After I tell rails I'm no using mysql, Rails still knows the correct actual SQL statement syntax for the database, I still don't have to change my original code in Rails. It's like magic, but it's really not. It's just great programming buy everyone who has worked on Rails.

Laravel has the same type of database interface, with similar features.

Rails has taught me a lot about Ruby.

And, I appreciate it, but I have no intentions of writing a book, or a blog, or anything. Too. Much. Work...haha.