should-we-still-be-selling-responsive-web-design?

The term ‘responsive web design’ has been a mainstay in the world of digital development for many years. Go to any early-stage client meeting and you’ll almost always get asked to ‘make sure it works on mobile’.

The standard response to this has generally been, ‘don’t worry, we’ll build it responsive’, but is this response out of date?

The limitations of responsive web design

The main ‘tool’ of responsive web design is the ‘media-query’. This lets us apply a subset of CSS only when a website is rendered at a specific size, orientation or when some chosen environmental criterion is met (for example, light level). This allows a front-end developer to easily manipulate how a website, digital product or app displays on different sized devices, or as a window size changes.

However, I’m starting to think that tying rules about how an element should display to the size of the overall page or device is very short-sighted. This is especially true in today’s world of component-driven design.

Component-driven design changes everything

Today, in modern web design, we usually build highly re-usable, environment agnostic components using methodologies such as Atomic Design, often with the aim of building out a pattern library to be used across a variety of applications. This approach saves time and money, as it reduces the need to duplicate work. There is a burden, however, as each individual component needs to be robust enough that they work appropriately when dropped into containers of different sizes.

For example, if we built a news item preview component, with an image above a text excerpt, this may display in a wide container (e.g. an index page), or within a sidebar (e.g. related articles). If we write a media query that changes the news item’s display based on the size of the viewport (for instance placing the image alongside the copy instead of above it) we will be limiting the contexts when this item is useful. This is because if the viewport is wide, the rule will apply, even if the component is being used in the sidebar where it doesn’t have adequate space.

This is the crux of my complaint; media queries are very manual and explicit. Instead of defining the ideal state for a component, we are forced to place it in context and test how it works in relation to the canvas, and then manually adjust. If you’re anything like me, you’ll find yourself doing the adjustment optically and then explicitly writing rules to tweak the display to your liking. If the page layout changes – and therefore how the module sits on the page – you will likely have to reassess these rules. This creates a huge maintainability burden and makes it easy for components to visually ‘break’ at certain viewport sizes, unbeknownst to the person making the changes.

Responsive web design, up to this point, has been concerned with the canvas, but what is really needed is a component-driven mindset.

Intrinsic web design

In 2018 Mozilla Designer Advocate Jen Simmons coined the term ‘intrinsic web design‘. This methodology takes a more content-out approach to digital design. Instead of changing styles based on the size of a viewport (or how big the screen of the device is), components automatically lay themselves out based on their own ‘ideal’ conditions.

Jen Simmons talking about responsive web design at An Event Apart.
Photo by Jeffrey Zeldman: https://bit.ly/2PuUYei

For instance, instead of saying at 768px wide, the news article image sits above the text instead of alongside it, we could give more rough guidelines: ‘the image should span the full width of the parent, but ideally be no bigger than 250px wide’. Then, when the image hits 250px, it will automatically move to sit alongside the text.

We can describe responsive/adaptive design as an imperative approach – you are describing explicit behaviour to occur at an explicit width. Intrinsic design, meanwhile, has more in common with a declarative approach; we are providing guidelines, but leaving the precise implementation up to the browser.

Flexbox, grid and multi-column layout

Intrinsic design is largely enabled by new(ish) layout methods such as CSS Flexbox and CSS Grid (using auto-layout). These are all complementary technologies and don’t replace one-another – Grid is two dimensional, Flexbox is one-dimensional.

Below is an example of how we might use CSS Flexbox to create an automatically adapting media-query-less component:

ul {
    display: flex;
    flex-wrap: wrap;
}

li {
    flex-grow: 1;
    flex-basis: 250px;
}

This is saying that when list items get smaller than 250px, they should wrap. 250px is their ‘ideal’ size, but they can grow to fill additional space.

Here is a further example with CSS Grid:

ul {
  grid-template-columns: repeat( auto-fit, minmax(250px, 1fr) );
}

This is saying, when columns get smaller than 250px wide, they should occupy their own row. We don’t need to explicitly say when to switch layout, instead, we are providing a content-driven rule. It is not bound to the viewport size, but the width of the content itself, so can be used within nested elements. If the grid is used within a small sidebar, for instance, it will be a single column, while if it is also used in a content area next to the sidebar (larger than 250px * 2), then it will split into columns.

Alternatively, we could use CSS multi-column layout with the column-width property:

ul {
  column-width: 250px;
}

The behaviour of these three examples are all subtly different, with variances around the width of the wrapping items, and the distribution once they wrap. However the premise is the same: we advise the ideal width of an element, and let the browser worry about when and how to wrap.

These examples are ‘contextual’ and more ‘responsive’ than responsive web design, since they respond to their environment, not the viewport.

Bring on container queries

I expect that at some point in the future element or container queries will be introduced, and this post will be rendered moot. Certainly, until that point, it’s hard to fully do away with media queries, as much as I’d like to.

In the meantime, it is possible to point to the clever work that’s been done to make components responsive to their parent, not the page width. However, to me, a lot of these solutions are restrictively contextual.

So, where does that leave us?

Well, no, responsive web design isn’t dead, but we are at the point where we’ve evolved past what most people mean when they use the term. We’re no longer just trying to fit the things we make to varying screen sizes.

Instead, we’re now building digital products in a more flexible, module-driven way, and we have better tools now than five years ago that make working like this easy. We’re designing at the modular level, rather than the screen size level, and we’re moving to a more declarative approach. It’s still responsive web design, we’re just responding to a subtly different stimulus.

190 comments

  1. This is really interesting, You’re a very skilled blogger.
    I have joined your rss feed and look forward to seeking more
    of your fantastic post. Also, I have shared your website in my social networks!

  2. I have been exploring for a little bit for any high-quality articles or blog posts in this kind
    of house . Exploring in Yahoo I finally stumbled
    upon this website. Reading this information So i
    am glad to exhibit that I’ve a very good uncanny feeling I came upon just what I needed.

    I such a lot unquestionably will make sure to don?t overlook this
    web site and give it a look regularly.

  3. Its such as you read my mind! You appear to know a lot about this, like you wrote the e-book in it
    or something. I feel that you could do with a few percent to power
    the message home a bit, however other than that, that is fantastic
    blog. A fantastic read. I will definitely be
    back.

  4. Hey there! I know this is somewhat off-topic however I needed to ask.
    Does running a well-established website such as yours
    take a large amount of work? I am brand new to operating
    a blog but I do write in my journal daily. I’d
    like to start a blog so I will be able to share my personal experience and views online.
    Please let me know if you have any kind of ideas
    or tips for brand new aspiring blog owners. Thankyou!

  5. I have been exploring for a little for any high quality articles or weblog posts in this sort of house .
    Exploring in Yahoo I finally stumbled upon this site.
    Reading this info So i’m glad to show that I have an incredibly good uncanny feeling I came upon exactly what I needed.
    I such a lot for sure will make sure to don?t put out of your mind this web site and give it
    a glance on a constant basis.

  6. After looking into a number of the articles on your web
    page, I really appreciate your way of writing a blog. I saved as
    a favorite it to my bookmark webpage list and
    will be checking back in the near future. Please visit my
    website too and tell me your opinion.

  7. Howdy! This post could not be written any better! Reading through this post
    reminds me of my good old room mate! He always kept chatting about
    this. I will forward this write-up to him. Pretty sure he will have a good read.
    Many thanks for sharing!

  8. Hello There. I found your blog using msn. This is a very well
    written article. I will make sure to bookmark it and return to
    read more of your useful information. Thanks for the post.
    I’ll certainly return.

  9. Have you ever thought about creating an ebook or guest authoring on other websites?
    I have a blog centered on the same subjects you
    discuss and would love to have you share some stories/information. I know my viewers
    would enjoy your work. If you’re even remotely interested, feel
    free to shoot me an e-mail.

  10. Very great post. I simply stumbled upon your weblog and wanted to say
    that I have truly enjoyed browsing your blog posts. In any case I’ll
    be subscribing for your feed and I am hoping you write once more very soon!

  11. I’ve been browsing on-line greater than 3 hours
    today, yet I never found any attention-grabbing article like yours.
    It is pretty worth enough for me. In my view, if all web owners and
    bloggers made good content as you probably did, the web shall be much
    more helpful than ever before.

  12. It is the best time to make some plans for the future and
    it is time to be happy. I’ve read this post and if I could I desire to suggest you some interesting things or advice.
    Perhaps you can write next articles referring to this article.
    I wish to read even more things about it!

  13. I’m really loving the theme/design of your weblog. Do
    you ever run into any internet browser compatibility issues?
    A handful of my blog readers have complained about my website not operating
    correctly in Explorer but looks great in Firefox.
    Do you have any ideas to help fix this problem?

  14. It is appropriate time to make some plans for the future and it’s time to be happy.
    I have read this post and if I could I want to suggest you few interesting things
    or suggestions. Maybe you can write next articles referring to this article.
    I wish to read even more things about it!

  15. Every weekend i used to pay a quick visit this web site, as i want enjoyment,
    since this this site conations really fastidious funny material too.

  16. whoah this blog is fantastic i really like reading your posts.
    Keep up the great work! You know, many individuals are
    searching around for this info, you could help them greatly.

  17. Having read this I believed it was very enlightening.
    I appreciate you taking the time and effort to put this content together.
    I once again find myself spending a significant amount of time
    both reading and leaving comments. But so what, it was still worth
    it!

  18. Hello! This is kind of off topic but I need some advice
    from an established blog. Is it very hard to set up your own blog?
    I’m not very techincal but I can figure things out pretty fast.
    I’m thinking about making my own but I’m not sure
    where to begin. Do you have any tips or suggestions?
    Thank you

  19. First off I want to say wonderful blog! I had a quick question that I’d
    like to ask if you don’t mind. I was interested to know
    how you center yourself and clear your thoughts prior to
    writing. I have had trouble clearing my thoughts in getting my thoughts out.

    I do enjoy writing but it just seems like the first 10 to 15 minutes are usually wasted just trying to figure out how to begin.
    Any recommendations or hints? Kudos!

  20. I’ve learn a few excellent stuff here. Definitely value bookmarking for revisiting.
    I wonder how much effort you put to create such
    a great informative site.

  21. Hi there would you mind letting me know which
    hosting company you’re using? I’ve loaded your blog in 3 completely different internet browsers and I must say this blog loads a lot quicker then most.
    Can you suggest a good hosting provider at a honest price?
    Cheers, I appreciate it!

  22. Attractive section of content. I just stumbled upon your
    website and in accession capital to assert that I get in fact enjoyed account your blog posts.
    Anyway I will be subscribing to your feeds and even I achievement you access
    consistently quickly.

  23. It’s truly very complex in this active life to listen news on Television, thus
    I just use web for that reason, and obtain the hottest news.

  24. When someone writes an paragraph he/she retains the image
    of a user in his/her brain that how a user can understand it.
    Thus that’s why this post is perfect. Thanks!

  25. We stumbled over here by a different page and thought I should check
    things out. I like what I see so now i’m following you. Look forward to looking into your web page yet again.

  26. This is very interesting, You are an overly professional blogger.
    I’ve joined your rss feed and look forward to
    in quest of more of your great post. Also, I’ve shared your
    site in my social networks

  27. Hello! I know this is kinda off topic but I was wondering if you knew where I could locate a captcha plugin for my comment form?
    I’m using the same blog platform as yours and I’m having
    difficulty finding one? Thanks a lot!

  28. It’s an remarkable piece of writing designed for all the internet visitors; they will take benefit from it I am sure.

  29. I have been exploring for a bit for any high-quality articles or blog posts in this sort of area .
    Exploring in Yahoo I finally stumbled upon this website.
    Studying this info So i am satisfied to convey that I’ve a very excellent uncanny feeling I
    came upon just what I needed. I such a lot surely
    will make sure to do not overlook this site and give it a
    glance on a continuing basis.

  30. Write more, thats all I have to say. Literally, it seems as though you
    relied on the video to make your point. You clearly know what youre talking about, why
    waste your intelligence on just posting videos to
    your weblog when you could be giving us something enlightening to read?

  31. Its like you read my mind! You seem to know a lot about this, like you wrote the book in it or something.

    I think that you could do with a few pics to drive the message home a little bit, but other than that, this
    is wonderful blog. An excellent read. I will definitely be back.

  32. If some one wants expert view on the topic of blogging and site-building after that i recommend him/her to pay a
    visit this website, Keep up the good work.

  33. excellent submit, very informative. I’m wondering why the other specialists of this sector don’t notice this.
    You should proceed your writing. I am sure, you have a great readers’ base already!

  34. Awesome blog! Do you have any suggestions for aspiring writers?
    I’m hoping to start my own site soon but I’m a little lost
    on everything. Would you propose starting with
    a free platform like WordPress or go for a paid option? There
    are so many options out there that I’m totally overwhelmed ..
    Any recommendations? Thank you!

  35. What’s up everyone, it’s my first pay a quick visit at this site, and paragraph is actually
    fruitful in support of me, keep up posting these posts.

  36. I blog quite often and I seriously thank you for your content.
    This article has really peaked my interest. I am going to
    take a note of your site and keep checking for new information about once per week.
    I opted in for your Feed as well.

  37. Have you ever considered about including a little bit more
    than just your articles? I mean, what you say is valuable and everything.
    But think about if you added some great photos or video clips to give your posts more,
    “pop”! Your content is excellent but with pics and videos,
    this blog could definitely be one of the best in its
    niche. Terrific blog!

  38. Wonderful goods from you, man. I have understand your stuff previous to
    and you’re just too excellent. I actually like what you’ve acquired here, certainly like what you are
    saying and the way in which you say it. You make it entertaining and you still
    care for to keep it wise. I cant wait to read far more
    from you. This is really a wonderful site.

  39. Simply wish to say your article is as surprising.
    The clearness on your submit is just cool and i could think
    you’re a professional in this subject. Fine with your permission allow me to grasp your RSS feed
    to stay up to date with approaching post. Thank you a million and please continue
    the enjoyable work.

  40. Heya i’m for the first time here. I found this board and
    I find It truly useful & it helped me out much.
    I hope to give something back and aid others like you aided me.

  41. I every time emailed this web site post page to all my associates, since if
    like to read it afterward my contacts will too.

  42. I’m now not positive where you’re getting your info, but good topic.
    I needs to spend some time studying much more or working out more.
    Thank you for fantastic information I used to be on the lookout for this information for my mission.

  43. I know this if off topic but I’m looking into starting my own blog and was curious what all is
    needed to get setup? I’m assuming having a blog like yours would
    cost a pretty penny? I’m not very web smart so
    I’m not 100% positive. Any recommendations or advice
    would be greatly appreciated. Cheers

  44. Thanks for a marvelous posting! I seriously enjoyed reading it, you will be a great
    author. I will make sure to bookmark your blog and definitely will
    come back sometime soon. I want to encourage you to ultimately
    continue your great job, have a nice morning!

  45. I’m amazed, I must say. Seldom do I come across a blog that’s both educative
    and entertaining, and without a doubt, you have hit the nail on the head.
    The problem is something that too few people are speaking intelligently about.
    I am very happy I stumbled across this during my
    hunt for something concerning this.

  46. An outstanding share! I have just forwarded this onto a coworker who has been doing a little homework
    on this. And he in fact ordered me dinner because I found
    it for him… lol. So let me reword this…. Thank YOU for the meal!!
    But yeah, thanks for spending time to talk about this topic here on your site.

  47. Pretty great post. I just stumbled upon your weblog and wished to
    mention that I’ve really enjoyed browsing your weblog posts.

    In any case I will be subscribing to your feed and I hope
    you write once more very soon!

  48. You actually make it seem so easy with your presentation but I
    find this topic to be actually something which I think
    I would never understand. It seems too complicated and very broad for me.
    I’m looking forward for your next post, I will try to get the hang
    of it!

  49. Howdy! I could have sworn I’ve visited this site before but after going through a few of the posts I realized it’s new to me.
    Nonetheless, I’m certainly happy I discovered it and I’ll
    be book-marking it and checking back frequently!

  50. Hello, i read your blog occasionally and i own a similar one and
    i was just curious if you get a lot of spam feedback?
    If so how do you reduce it, any plugin or anything you can advise?
    I get so much lately it’s driving me insane so any support is very much appreciated.

  51. I am extremely impressed with your writing
    skills as well as with the layout on your weblog. Is this
    a paid theme or did you customize it yourself? Either way keep up
    the nice quality writing, it is rare to see a great blog like this one nowadays.

  52. Howdy, i read your blog occasionally and i own a similar one and i was just curious if you get a lot of spam feedback?
    If so how do you protect against it, any plugin or anything you
    can recommend? I get so much lately it’s driving me
    mad so any support is very much appreciated.

  53. I just could not leave your web site before suggesting that I really loved the usual
    information a person supply on your visitors? Is gonna be again incessantly in order to check up on new posts

  54. Heya i’m for the first time here. I found this board and I find It truly useful & it helped me out much.
    I hope to give something back and help others like you aided me.

  55. We stumbled over here by a different website and thought I might as well check
    things out. I like what I see so now i am following you. Look
    forward to going over your web page again.

  56. An impressive share! I have just forwarded this onto a friend who has been doing a little research on this.
    And he in fact ordered me breakfast because I stumbled upon it for him…
    lol. So allow me to reword this…. Thanks for the meal!!

    But yeah, thanx for spending time to talk about this topic here on your web site.

  57. Howdy, i read your blog from time to time and i own a similar one and i was
    just curious if you get a lot of spam responses?
    If so how do you stop it, any plugin or anything you can advise?
    I get so much lately it’s driving me crazy so any help is very
    much appreciated.

  58. Hello to every body, it’s my first pay a visit of this blog; this web site consists of remarkable and in fact excellent
    stuff in favor of readers.

  59. Hey! Do you know if they make any plugins to protect against hackers?
    I’m kinda paranoid about losing everything I’ve worked hard on. Any tips?

  60. Hi would you mind stating which blog platform you’re working
    with? I’m looking to start my own blog in the near future but
    I’m having a hard time choosing between BlogEngine/Wordpress/B2evolution and Drupal.

    The reason I ask is because your layout seems different then most
    blogs and I’m looking for something unique.
    P.S Apologies for being off-topic but I had to ask!

  61. Ahaa, its nice dialogue regarding this paragraph here at this website, I have read all that,
    so at this time me also commenting at this place.

  62. We’re a bunch of volunteers and opening a brand new scheme in our
    community. Your web site offered us with useful information to work on.
    You have done an impressive task and our whole neighborhood will probably be thankful to you.

  63. Howdy would you mind letting me know which hosting company you’re working with?
    I’ve loaded your blog in 3 completely different
    internet browsers and I must say this blog loads a lot faster then most.
    Can you suggest a good hosting provider at a reasonable price?
    Cheers, I appreciate it!

  64. Howdy I am so grateful I found your blog page, I really
    found you by accident, while I was searching on Yahoo
    for something else, Anyhow I am here now and would
    just like to say thank you for a remarkable post and
    a all round enjoyable blog (I also love the theme/design),
    I don’t have time to go through it all at the minute but I have bookmarked it and also
    added in your RSS feeds, so when I have time I will be back to read much more, Please do keep up the great work.

  65. I know this if off topic but I’m looking into starting my own blog and was curious what all is needed to get setup?
    I’m assuming having a blog like yours would cost a pretty penny?
    I’m not very web smart so I’m not 100% sure.
    Any recommendations or advice would be greatly
    appreciated. Thank you

  66. We are a group of volunteers and starting a new
    scheme in our community. Your site provided us with helpful info to work on. You’ve performed a
    formidable process and our whole neighborhood will be thankful
    to you.

  67. Hi there! I know this is kinda off topic but I’d figured I’d ask.
    Would you be interested in exchanging links or maybe guest authoring a blog post
    or vice-versa? My site covers a lot of the same topics as yours and I think we
    could greatly benefit from each other. If you are interested
    feel free to shoot me an email. I look forward to hearing from you!
    Superb blog by the way!

  68. It is perfect time to make some plans for the future and it is
    time to be happy. I’ve read this post and if I could I want to suggest you some interesting things or advice.
    Perhaps you could write next articles referring to this article.
    I wish to read even more things about it!

  69. I’m more than happy to find this web site. I wanted to thank you for your time for this particularly wonderful read!!
    I definitely loved every part of it and I have you book marked to see
    new things in your site.

  70. Hi there to every , since I am in fact keen of reading this webpage’s
    post to be updated on a regular basis. It carries pleasant data.

  71. Very great post. I just stumbled upon your blog
    and wished to mention that I’ve really loved surfing
    around your weblog posts. After all I’ll be subscribing to your rss
    feed and I’m hoping you write again very soon!

  72. Great site you have got here.. It’s hard to find high quality writing like yours these days.
    I truly appreciate individuals like you! Take care!!

  73. I am extremely impressed with your writing skills and also with
    the layout on your weblog. Is this a paid theme or did you modify it yourself?
    Either way keep up the nice quality writing, it’s rare to see a great blog like this one today.

  74. Right here is the right blog for anyone who hopes to
    understand this topic. You know so much its almost tough to argue with you (not that I personally would want
    to…HaHa). You certainly put a fresh spin on a topic which
    has been discussed for many years. Wonderful stuff, just wonderful!

  75. Your style is so unique compared to other folks I have read stuff from.

    Thank you for posting when you have the opportunity, Guess I will just bookmark this page.

  76. naturally like your web site however you need to test the spelling on quite
    a few of your posts. A number of them are rife with spelling problems and I in finding it very troublesome to inform the reality then again I will surely come again again.

  77. Hmm it looks like your website ate my first comment (it
    was super long) so I guess I’ll just sum it up what I wrote and say, I’m thoroughly enjoying your blog.

    I too am an aspiring blog blogger but I’m still new to everything.

    Do you have any tips and hints for beginner blog writers?
    I’d genuinely appreciate it.

  78. I have been browsing online more than 4 hours today, yet I never found any interesting article like yours.
    It is pretty worth enough for me. Personally, if all site owners and bloggers made good content as you did, the web will be
    much more useful than ever before.

  79. Heya i am for the first time here. I came across this board and I in finding It truly helpful & it
    helped me out much. I am hoping to give something again and
    help others such as you aided me.

  80. Do you have a spam problem on this blog; I also am a blogger, and
    I was wanting to know your situation; we have developed some nice methods and we
    are looking to trade methods with other folks,
    please shoot me an e-mail if interested.

  81. It’s really a great and helpful piece of info.
    I am happy that you shared this useful information with us.
    Please stay us informed like this. Thanks for sharing.

  82. Thank you a lot for sharing this with all folks
    you really recognize what you are talking approximately!
    Bookmarked. Kindly additionally visit my site =).

    We can have a link trade agreement among
    us

  83. Do you mind if I quote a couple of your articles as long
    as I provide credit and sources back to your blog?
    My website is in the very same niche as yours and my visitors would genuinely benefit from some of the information you present
    here. Please let me know if this okay with you. Thanks!

  84. of course like your web-site but you need to test the spelling
    on several of your posts. Several of them are rife with spelling
    issues and I to find it very bothersome to tell the reality on the other hand I’ll surely come again again.

  85. My coder is trying to convince me to move to .net from PHP.
    I have always disliked the idea because of the costs.
    But he’s tryiong none the less. I’ve been using Movable-type on numerous websites for about a
    year and am concerned about switching to another platform.
    I have heard very good things about blogengine.net.
    Is there a way I can transfer all my wordpress posts into
    it? Any help would be greatly appreciated!

  86. Definitely consider that that you stated. Your favorite justification appeared to
    be on the internet the easiest thing to take into account of.
    I say to you, I certainly get irked while other people consider concerns that they just don’t recognise about.
    You controlled to hit the nail upon the top and outlined
    out the entire thing with no need side effect , other people can take a signal.
    Will likely be back to get more. Thanks

  87. Its like you learn my mind! You appear to grasp so much
    about this, like you wrote the e book in it or something.
    I think that you just could do with some p.c.
    to pressure the message house a little bit, but instead of that, this is wonderful
    blog. An excellent read. I’ll certainly be back.

  88. Wօnderful wοrk! That is the kind of info that are meant
    to be shared across the internet. Sһame on thhe seek
    engines for now not positioning this publish higher! Come on over and talk over with
    my ѡeeb site . Thank you =)

    my site :: Infonya Disini

  89. Hoѡdy, I think your web sitе may be having browser compatibility issues.
    When I lookk att your blog in Safari, it looks fіne
    buut ᴡhen opening in Internet Explorer, iit hhas sokme verlɑрping iѕsues.
    I simply wanted to provide you with a quick heads
    up! Besides that, excellent website!

    Ꮋave a look at my ѡeb site – sewa bet88 (https://eames-chair.de/produkt/riess-ambiente-design-highboard-globetrotter-eiche-furnierholz-anthrazit-120cm-hochschrank-schrank/)

  90. Ꮐreat blog here! Alsо yoսr wеbƅ site loɑds
    up very fast! What hoѕt аrre yoou using? Can I get yiur affiliate link to yyour host?
    Ι wіsh my website loaded up as fast as yoᥙrs lol

Leave a Reply

Your email address will not be published.