DEV Community

Cover image for Master Frontend Development 💻 By Cloning These Websites 💯
Chris Hansen
Chris Hansen

Posted on • Edited on

Master Frontend Development 💻 By Cloning These Websites 💯

UPDATE

I cloned one of these websites! I haven't built a website with pure html, css and js for a while, so I gave #14 Discord a go. This is how it turned out. Not by best work, but I worked pretty fast! 🤣
Discord Cloned


Why clone websites?

Frontend development has everything to do with the client side. Everything the user can see and interact with on their web browser.

Studies show that if a website does not load within 2 seconds, users bounce. How do you think users react if a website design is not up to par with modern designs and trends?

That being said, design has just as much importance as all the frontend programming going on in the background. After all, developers are tasked to implement a professional design into a working website all the time. It's very much an important piece of a frontend developers arsenal. Get good at it!


The goal

Master this frontend skill, by cloning these websites as close to identical as possible.

Try to incorporate functionality, like modals and drop downs. Include responsive design, like mobile navigation, and grids.

All websites listed below are similar, but just different enough to force different design concepts. For example, majority of these websites have:

  1. Large homepage banners
  2. Big block designs
  3. Reversed grid columns
  4. Full or half page menus
  5. Sticky or absolute positioned navigations
  6. Galleries
  7. Dropdown / accordions
  8. Minor animations like fade, or type effects
  9. Two grid columns
  10. Responsive design and more!

TIP: You can also use web scrapers to download all the assets you find on websites.
Extract Pics
Image Downloader

BONUS 🔥
If you want to go full on leet mode, add javascript functionality. Like routing, dynamic content, 3rd party APIs ( i. google maps ) etc.

⚠️ If you push your project up to the web, make sure to not claim your designs or assets as your own!


Websites for you to clone!

1. Netflix

Netflix website section
When logged in Netflix is a pretty simple design. Horizontal rows, galleries, with a big featured banner.

2. Hulu

Hulu website section
Just like Netflix, the logged in experience in Hulu is pretty similar. Has a large featured banner, and basically rows of movies or tv shows with every few rows having a featured section.

3. Apple

Apple website section
You'll know what I mean by "big block" design. Apple does this well. It's clean, intuitive and pretty straight forward. If you break everything down into smaller components, you'll see how easy it would be to implement the design.

4. Airbnb

Airbnb website section
Airbnb is such a beautiful website! The assets are amazing. Break this design down into smaller components, and you'll see how it's just a bunch of big rows and small rows. Blocks either spanning multiple columns, or the entire row.

5. SpaceX

Spacex website section
Super easy design. SpaceX is basically multiple fullscreen images with fade up content and a link section.

6. NVIDIA

NVIDIA website section
Another easy, but professional looking design. Just a banner, grid layout, and rows.

7. Razer

Razer website section
A mix of a large home banner, full page featured sections, and big box design. Have fun with this sick color scheme!

8. Salesforce

Salesforce website section
Another great website to polish your css skills. A mix of banners, rows, columns, reverse columns, big box design, but also has featured list, multiple call to actions, and fun images.

9. Adobe

Adobe website section
Another big box design. But also features some cool background gradients.

10. Microsoft

Microsoft website section
Features a modal, big banners, multiple featured sections, big call to action. Pretty straight forward, but professional looking design.

11. Blockchain

Blockchain website section
Learn about blockchain while you clone this one. This design incorporates a few more difficult design concepts. It also features a big banner, call to actions, gradient effects, but also has big box designs as links and dynamic accordions. So not only does the accordion tab drop more content below it, it changes the image beside it! You probably have a tool of choice for this 🤔

12. Paypal

Paypal website section
Features a big banner, call to action, and reverse rows. Straight forward, but effective design.

13. Slack

Slack website section
Slack features a fun homepage banner. In the banner is a toast banner, a call to action, a google sign in button, and a row of icons featuring companies that use Slack. The rest of the layout is a simple grid system with a typical reverse row design. Minimal animations, like hover effects.

14. Discord

Discord website section
Probably my favorite looking website on the list. It has fun vibrant colors, a minimalistic homepage banner featuring a call to action, reverse row grid layout, and a nice big featured section.

15. Amazon

Amazon website section
The king of e-commerce. This is a straight up "show off" mockup. If you can nail Amazons design, your frontend dev design skills are up to industry standard. Features a slightly more complex grid layout, with content spanning one or more rows and columns. Has a search bar in the navigation. Also has recommended section, hover effects, carousels, etc. Have fun with this behemoth!

16. Playstation

Playstation website section
Playstation.com has a nice large homepage banner featuring a slide show with a nice fade in effect. You can code this from scratch, or use your favorite library. Cloning website really gets you thinking about your tools. Also features single row gallery, large featured banners, dynamic content on click, multiple full screen call to actions, and minor animations. This is probably my second favorite looking website. Really enjoy the subtle animations and UI. It also really helps you polish multiple design concepts.

17. Nintendo

Nintendo website section
Ahhhh, childhood memories! Well, kind of, more of a Sega player. But I digress! Nintendo.com has a nice colorful homepage banner with a minimal call to action beneath it. Has a continuously scrolling single row gallery which is new on the list. So this will offer some great practice. Again, you can use a library for this as you don't need to re-create the wheel every time. Other than that, straight forward big box grid design and single row galleries. One row will help you practice "quick favoriting" items.


Conclusion! 😎

That's a wrap on "Master Frontend Development 💻 By Cloning These Websites 💯" I really believe cloning one or multiple of these website, will drastically improve your CSS. There's a lot of analytical thinking that comes with cloning websites, as you break down designs from larger to smaller components. And you also need to think about the best tools as you approach new problems. Then there is responsive design. A mobile or desktop first approach? For example, do you think Microsoft.com should prioritize the desktop or mobile experience? If it was up to me, I'd like to think most people wait till they can access a desktop to make very large purchases like desktops and laptops. Therefore I'd probably prioritize the desktop. This is a big part of a Frontend Developers job! Whether you're freelancing or working for a company. Designs are either up to you, or by professional designers. Master this part of Frontend Development!


Follow me on Twitter

for byte-sized web dev content!


Buy Me A Coffee


Check out these other beginner friendly articles also written by me! ⤵️

Latest comments (46)

Collapse
 
hoor23 profile image
Hoor Saeeda • Edited

Hi Chris,
Hope you are doing well, just wondering do we have to clone these websites via JS frameworks. As I am a beginner who knows only HTML, CSS, bootstrap, and JavaScript.
Also, do we have to clone all of the pages of the website or home page is just enough?
Best regards

Collapse
 
brianh profile image
Brian

Don't forget to use DivMagic to make your job easier while cloning these!

Collapse
 
theonlyabdull profile image
Abdullahi Salaudeen

really helpful

Collapse
 
omkakatkar profile image
Om Kakatkar

Brave detected your Discord clone as a phishing site. Couldn't proceed to check it out. Nice blog never the less

Collapse
 
hemantssingh776 profile image
Hemant singh

Hey chris thank you for the suggestions. I wanted to ask you that while cloning should I use my brain and use google to code or should I just see and write from inspect element. As I can easily understand the code which is written. Currently I am cloning apple website.
Looking for an reply!!!

Collapse
 
hyggedev profile image
Chris Hansen

Hey there, thanks for dropping by 👋

Good question. Usually, I try my best to just analyze the website. Starting from big, then begin working my down to smaller components. So if there is a 'section' break that section down. Whats in the section. Maybe a banner? A banner with children. Theres probably a container containing the children. Should you use flexbox or grid here?

(if your not a complete beginner, you MUST not read on! 🤣 )

Since you're doing apples website, let's take a look at the navbar. The Navbar is full width. It's 100% across, or 100vw. However its contents are contained. So it's probably safe to assume theres a container. So far, we have a navbar, and a container, and nav elements. So you can give the container some pre-defined widths, maybe something like max-width: "1400px" with a margin: "0 auto". Some padding, 1rem maybe. Then, set the parent container of the nav elements, "container" in this case, to flex. Then add justify-content: "center", align-items: "center", and flex-direction: "column." Remember I said mobile first approach is easier, at least IMO. So it looks awkward now, but set a responsive query as easy as this: @media screen and (min-width: 790px) { flex-direction: "row" }. Then, once the screen size drops below this, another another media query somewhere, or add javascript, and make the navbar disappear completely. Then in the DOM, create a separate, mobile menu, that only displays at the correct breakpoint. This is if your'e working with plain HTML and CSS anyway. Otherwise, if your'e using javascript, you can simply use javascript and state to toggle things 😎 .

One last section, if you scroll down to the "Apple event" and "Fitness+", etc section below the apple watch, you can see it's just a section, with small components. Break this down in your head mentally. It's just a full-width, 2 column section, containing big blocks with some content inside. Turn the section into a grid, with either flex or grid. So maybe a display: "grid", grid-template-columns: "1fr 1fr". Inside each block is a flex container. So something like a display: "flex" and justify-content: "flex-start" or "flex-end" depending. Each block has a background-image, probably set to a background-size of "cover" and positioned "center". The text is also contained, with a max-width of something like 300 pixels?

I could be off, as I'm just glancing at once screen and typing on another LOL. But I hope this helps you. This is my mental process of I break down over-complicated layouts! Give a share once your done i'd love to check it out!

Collapse
 
hemantssingh776 profile image
Hemant singh

Thanx for the helping me out on this.

Collapse
 
asdfsafd profile image
dnokov

@hyggedev Hey Chris, this is an awesome post and it inspired me to do it myself as I'm a backend developer and I'm thinking of doing this to up my CSS/JS game. Isn't it some kind of an copyright violation, if I were to use their images/colors?

Collapse
 
hyggedev profile image
Chris Hansen

Hey 👋. That's cool! It definitely offers a great amount of practice.
Hmm, I don't think it counts as a copyright infringement if you are cloning for the sake of practice. For instance, you would not claim to be the owner or designer of the original design, nor would you be redistributing your design for sale.

From what I understand, images on the web can be downloaded and "used", but can not be claimed as their own without attribution or permission. And of course it cannot be re-sold.
If I clone a website, I will specifically add an attribution to the owner to avoid any possible confusion. I will also clearly say something along the lines of, "Clone of Airbnb.com", "This project showcases my ability to take a professional design and implement into a functional website with custom html and css.."

Don't take my word for it. I would definitely do a quick search, but I believe if you take the right precautions, it's all good.
I hope that clears things up ✌️

Collapse
 
hurdacitelefonu profile image
Hurdacı Telefonu (İstanbul)

Nice article, thank you!

Collapse
 
hyggedev profile image
Chris Hansen

Thank you for dropping by! ✌️

Collapse
 
zippytyro profile image
Shashwat Verma

Thanks for this man! Could add stripe too.

Collapse
 
hyggedev profile image
Chris Hansen

Thanks for dropping by! That's a great suggestion! 💯

Collapse
 
deevyn9 profile image
Deevyn9

Really helpful information, thank you

Some comments may only be visible to logged-in visitors. Sign in to view all comments.