Why 80% of Websites Are The Same

1. Yelp is Just a “Blog” with Ratings and a Map

  • The posts are the same.
  • The descriptions are the same.
  • The avatar image is the same.
  • Yelp adds ratings and map functionality!

Similarities: The skeleton of both of these sites starts the same: Medium is a list of blog posts, Yelp is a list of restaurants.

Differences: Yelp then adds ratings, and maps.

2. Airbnb is like Yelp With Payment Processing

  • The posts are the same.
  • The Google Map API functionality is the same.
  • The concept of search is the same.
  • Showing a logged in user on the top right-hand corner is the same.
  • Airbnb let’s you put in a credit card and make payments.

Similarities: Yelp is a site that categorizes restaurants, Airbnb is a site that categorizes vacation homes.

Differences: Airbnb allows you to send money via credit card to the person who created the listing.

3. Twitter is just Public Facebook

  • The posts are the same. Note that Facebook calls their posts “Posts”, Twitter calls their posts “Tweets.” But it’s basically the same stuff.
  • Both sites are two column sites.
  • This concept of user pages is the same.
  • Twitter just allows functionality to make the posts public. Whereas Facebook is private.

Similarities: Both Twitter and Facebook allows users to make posts.

Differences: Facebook is a private version of Twitter, and has some differences on how two people connect: On Twitter you click to “follow” a user, on Facebook you “add friend” and you’ll need a confirmation from the other person.

4. WordPress is just WordPress

Millions of websites that you see around the web use WordPress: they’re just post-based layouts with differences in styling.

  • The posts are the same.
  • Almost everything is the same.
  • The big change here is the layout (ie. the HTML & CSS Layout)

Similarities: Most WordPress sites are the 80% the same.

Differences: The HTML, CSS and PHP (ie. the site layout) changes slightly for each new theme. In addition to that, each site may have differences in plug-ins that the developer chose.

The Two Most Common Types of Sites:

When you look across all these examples, most websites can either be understood one of two sites: a Blog or a Web App.

1. The Blog (80% of all websites):

  • One-to-many: one person writes blog posts, and many people are reading them.
  • Only admin users can sign in and create new content.
  • Examples: WordPress sites, Squarespace, About.me sites, simple landing pages.

2. The Web App

  • Many-to-Many: many people are writing posts, and many people are reading them.
  • Anyone can sign up and create new content.
  • Examples: Airbnb, Facebook, Twitter, Ebay, etc

Beyond Themes

If it’s all so simple, what are web developers doing all day!?

The last 20% is the tricky part. That’s why it’s free to get an 80% WordPress blog, and it’s $4000 to add your company’s face to the header, SEO lead tracking, and a customized payment page. Because as soon as you want some weird customizations, you need to hire someone.

Luckily, each coding framework comes with a library of plug-ins to make life easier. (FYI — Plug-ins are free code that you can use to install specific features to your existing project) For each type of website framework, you have a corresponding set of plug-in tools:

  • Ruby on Rails: Gems
  • Python: Packages
  • WordPress: Plug-ins

Did you just create a “Yelp”-like site, and now you want to take payments? There’s a plug-in for that.

Take a Look at These Patterns

In the new One Month Python class Eric Neuman (the teacher) and myself (producer) put some thought into how you can learn these common Website patterns.

In the class, we convert a static page to a landing page, and a Blog into a Web App. We also deploy some customizations like the Google Map API, and ratings.

Check out the projects. What patterns can you notice?

I’m Oversimplifying — Don’t Freak Out

I’m sure some developers on Hacker News are reading this saying “Facebook is SO MUCH MORE complex than Twitter! It’s impossible to compare the two.”

Yep, I get it.

Comparing the two is not very different from saying, “The Beatle’s Let it Be is only four chords.” It’s a true statement, but admittedly the art is in how you play those chords.

You can play Beatles songs with just four chords, but to become The Beatles, it might take a lifetime. That doesn’t mean you shouldn’t master the basic chords and begin to play — everyone should learn the basic chords. And who knows? You might become the next Big Thing.

Ready to start learning? Check out these courses:
One Month Ruby | One Month Python

Ten Reasons Django Is Perfect For Startups

Should You Use Django for Your Startup?

Tech startups are so hot right now, and it’s never been easier or more fun to build a web application. Django has been rapidly gaining popularity for its ease of use and pragmatic design. Here are 10 reasons why you put Django in your startup’s tech stack.

1. Fully Featured Out Of The Box

A web application framework is basically a toolkit of components that all web applications need. The point of this is to let developers focus on the things that are new and unique about their project instead of implementing the same solutions over and over again. Django is even more fully featured than most other frameworks, coming with everything you need to build a web app right out-of-the-box.

2. Great Community

Django is an extremely widely used framework, and because it’s open source, it is built and kept updated by the developers who use it. The result of this is a framework that never lags behind and lots of available answers when you have questions.

3. Tons Of Coders Available

Python was one of the most popular programming languages of 2014, and is now the most popular language for those learning to code. This means that when your startup blows up on reddit and you need to hire 5 developers, like, yesterday, you’ll be able to find lots of high quality candidates.

4. Lots of Packages

Part of what makes Django so powerful is it’s ability to be extended with ‘app’ plugins. There are hundreds of these packages that make it easy to do things like add google maps, create complex permissions, or connect to stripe for payment processing.

5. D.R.Y.

The core philosophy of Django is DRY: Don’t Repeat Yourself. The framework places a premium on getting the absolute most out of very little code. This means less hours to get it working, less code to break, and less to change when you need to pivot.

6. Portability

Python runs on every platform, Mac, PC, Linux, heck, you can even run it on a toaster (almost), and Django can run wherever python works. As a result, all development and production environments can be supported. More interestingly, Django includes a layer between the developer and the database called an ORM (Object Relational Mapper) which makes it possible to move your whole project between most major databases by changing just 1 line of code.

7. Provider Support

Because Django is a big, well established web application framework, cloud providers go out of their way to ensure it is easy and fast to deploy Django apps to their platform. The best example of this is heroku, which, once set up, enables deployments with a single command from any authorized developer. Result: no bottlenecks on your project because ‘The Deployment Person’ is sick/asleep/on a hot date.

8. Good Documentation

Depending on whether you are a manager or a developer, this may or may not seem like a big deal, but trust me it is. Good documentation can mean the difference between hours of grueling trial and error or effortless implementation. Django provides well-organized documentation and example code tagged for every specific release. On top of that, the code is all publicly available on github for direct investigation.

9. Built-In Admin Panel

One of the things the framework comes with out-of-the-box is a fully featured web interface that gets automatically generated for every app you build. This admin panel lets non-developers create/update/delete users and any other database objects specific to your app. For a startup this means that developers and non-technical staff can instantly work together to manage content or manually try processes before investing time in coding them up.

10. Scalability

Sure Django is great for getting started, but how does it do when your startup hits scale? Surprisingly, still great. At its heart Django is a series of components that come wired up and ready-to-go by default, but because these components are decoupled (not dependent on each other), they can be unplugged and replaced as your startup needs more specific solutions. It’s a lot like starting with a car from the lot and swapping out the parts you want to supe up.

Django for Your Startup?

I used Django to prototype and scale my own startup, DecisionDesk. Recently I used it to build the API server for an android-powered data app for the Ministry of Health of Belize and the IADB. Startups like Eventbrite and Disqus are using it to build out apps that scale quickly.

Want to learn more about Django and Python? Check out One Month Python