12 Dec

2012

SuperCacher: we go beyond being just fast!

SuperCacher

Throughout the years SiteGround accomplished remarkable results in terms of performance and loading speed of our clients’ websites. To name a few of our achievements: frequent change of server gear with newer and more powerful one; rewriting the most commonly used software (such as Apache & php) in order to serve web pages even faster; tuning up our OS so it serves millions of requests per minute; adding multiple server locations across the globe so that content is nearer to your users, etc.

We like what we’ve accomplished so far. Our clients seem to appreciate it as well. In a recent survey we conducted, 93% of our clients were really satisfied with the speed and performance of their websites hosted by SiteGround.

Still, we wanted to go beyond fast loading times. We wanted to improve and strengthen your site to hold up against massive traffic spikes and handle 100 times more of their normal traffic. The only way to accomplish that was to add different layers of caching. That was a really complicated task on a shared hosting environment. It took more than 6 months to build, and a lot of people along the way told me, what we were doing was impossible on shared hosting. But it’s finally live! ;)

What is SuperCacher and how does it work?

SuperCacher is a web caching service that we developed internally and exclusively at SiteGround. It sits in front of your web server (e.g. Apache). Whenever a browser requests to load a web page from SiteGround’s web server, the web server returns the HTML result to the browser AND the cache stores a copy of that same page. Next time that particular page is requested, the request gets served from the cache directly while the web server sits idle. Cache is known to significantly reduce the impact of many visitors/hits onto your website’s loading speed by sparing the resources of your host server and delivering the websites dramatically faster. SuperCacher is flexible, as it has several layers of caching available and more to come in the future.

Three Layers of Caching by SiteGround SuperCacher

Static Cache1) Static Cache is the simplest form of caching. What it does is when a page of your site is loaded, it takes a copy of your static content – e.g. Images, CSS Stylesheets, Java Scripts, Flash Objects, etc. – and puts them into the servers’ RAM Memory. Next time that same object is required – say an image – it would be loaded from the servers’ RAM which is dramatically faster than loading an image from the Servers’ hard drives. And should you multiply this by a big number of visitors at the same time, the impact would be… spectacular ;)

Who is it for? Static cacheis suitable for any kind of website. It’s enabled by a simple on/off switch in your cPanel -> SuperCacher.

Мemcached2) Memcached is probably the most popular memory caching system that is used by thousands of database-driven sites on the Internet including YouTube, Facebook, Wikipedia. It speeds up these websites by caching results from database queries in RAM. Thus, if the result of the same query is needed again, it will be instantaneously taken from the RAM, rather than generated again from the Database, which is usually a slower process and requires more computing power.

Memcached was one of the things that’s almost impossible to do on shared hosting. I’m proud to say that we’re the only host that offers Memcached on a shared hosting environment.

Who is it for? Memchaced is available to all our clients in their cPanel => SuperCacher. However, please keep in mind that in order to use Memcached your app would have to support it. Some apps have native support for it (e.g. Joomla, Mediawiki & Magento), though some additional configuration may be needed to make it work. Other apps, like WordPress, need additional plugin to be added in order to use Memcached.

Dynamic Cache3) Dynamic Cache is by far the most complicated thing we’ve ever done. Dynamic cache differs from Static cache and Memcached by one simple thing – the latter two only cache parts of your website – e.g. images or a query result. With Dynamic Cache the whole web pages are cached. In order to explain how dynamic caching works, I’d need to go into some more detail on how dynamic web languages (such as PHP) work.

Web browsers don’t understand PHP. They do understand HTML though. So even if your webpage was purely PHP written, it would still generate HTML code and send it to the web browser, so that the browser could actually understand it and display it to the user. PHP as a programming language is used so that the content of that same HTML is changed dynamically and upon a set of conditions predefined by the web creator.

What’s dynamic data then? Say, you want to show what date it is on a web page – that’s dynamic content, cause it would change over time. Another simple example – dynamic content can allow you to show to a person from Australia a kangaroo page and to a person from Bali a golden beach page on the homepage of your site.

How does caching work , when everything is dynamic? Well, the concept is simple. Every time the webserver generates an HTML page from the PHP, that page is cached by SuperCacher. Next time that page is requested, the pure HTML would be displayed form the Cache which is in RAM, and as opposed to wasting CPU and I/O resources to read the PHP file from the disk, the cached result is much faster to display with almost none resources wasted.

Who is it for? As explained, the nature of dynamic cache is much more complex than the static cache. Therefore it is only available for our WordPress and Joomla users for now. We’d be adding more applications soon, with Magento on our short-term to do list.

Possible Issues? In fact there are few. In order for dynamic cache to work properly, it needs to flush the cache any time something new is added to your site. Say, you have a WordPress site and add a new blog post. If cache is not flushed, that new post won’t appear, since results will be served from the cache and the cache won’t have that new blog post. But we’ve thought about that as well – we’ve written plugins you need to download for WordPress & Joomla, before turning SuperCacher Dynamic on. Those plugins will make sure each time there’s something new, your cache is purged and content is displayed properly :)

SuperCacher Results

Each caching level of our SuperCacher service can increase website performance hundreds of times and reduce the impact of your website onto the server dramatically. And when enabled simultaneously, all three layers of caching give outstanding results, to say the least. To activate all three or a single layer of caching for your website, simply go to cPanel and click on the SuperCacher icon, then enable the cache type of your choice.

Once you try it out, post a comment about your experience below! We’ll be happy to hear what you think and examine any results and improvements you have achieved.

Author: Tenko Nikolov

The SiteGround Mastermind

For the last few years Tenko Nikolov has been one of the masterminds behind the success of SiteGround. He has come up with multiple successful strategies for overcoming technical problems and has achieved real business results for SiteGround. His vision and skills have made SiteGround a leading host in terms of technology and platform reliability.

Comments (71):

  1. Jarrett Gucci says:

    I just activated and it shaved 4 seconds on my load time. I did the memcache for now cause I’m on mobile and need to change ip addresses for the other cache options.

    I LOVE IT!!!!!

  2. Rene ODeay says:

    Wow! zippy-de-do-wah! just tried it on one site with blog. and it loaded superfast after flushing the cache.
    Will try it on my other site. and report. am sharing.

  3. Rene ODeay says:

    just tried it on my other site works. superspeed load. for both the main sites and the blogs.

  4. Ellen Curtin says:

    My site is for a once-yearly event. We seldom get more than a few hundred hits over a 3-month period, I think. So we are not in need of any special services; thanks anyway. If you do ever consider a special rate for a nonprofit, please let me know.

  5. Fernando Zart says:

    Excellent initiative!
    Better performance with just a click. :)
    Clearing the browser cache, it is possible to see that the loading times are way better.
    Kudos.

  6. Kea Konneker says:

    I love this new innovative service of Siteground and activated it right away!
    I have a smal online boutique and am grateful for any tool that enables me to offer my customers a smoother experience so easily! Thank you!!

  7. Mohammad Motallebi says:

    With statistics data in use, I think this solution would come really handy and useful.
    Thanks!

  8. Eric J. Gates says:

    It’s frustrating when you see something so useful as this but it’s not available yet for my site with SiteGround. Knowing how well these guys work, I’m sure it will be soon and will activate it at the first opportunity. Thanks again for providing an outstanding service.

    • Nikolay Todorov says:

      Hey Eric,

      I actually checked your shared hosting account with us and SuperCacher is available within its cPanel. Find it in the Advanced section on the index cPanel page (make sure the section is expanded). Enable it and enjoy the lightening speed of your website :) .

      Regards,
      Nikolay
      CTO @ SiteGround.com

  9. Tim James says:

    What a forward thinking solution! I really like how you guys work hard to provide such excellent services.

  10. Patrick Waldrop says:

    Wow! This is amazing! My site literally seems to load hundreds of times faster now. This is why I’ll always use Site Ground.

    I’m not a genius with websites, but the Site Ground instructions walked me right through the whole process no problem. I was able to successfully turn all three Super Cacher layers in about 15 minutes for my WordPress blog. Now to begin using Super Cacher for my Joomla site on my work account.

  11. David Leaper says:

    Hi there,
    Not sure how well this will work since my students are in Korea, but hopefully it will do the trick. I have enabled all cache except ‘dynamic’ since I was warned that it may cause some website instability – which is the last thing I need at the beginning of semester.

  12. Peter van Westen says:

    Can you explain how this relates to using CloudFlare? Should we switch that off? Or can/should you use them together? Which one is better and why?

    • Nikolay Todorov says:

      Hey Peter,

      SuperCacher and CloudFlare can work together without any issues, so no need to switch off CloudFlare. CloudFlare caches all static content pulled from your website and distributes it within its worldwide infrastructure, so that the contents is delivered to the visitor from the nearest location. SuperCacher also caches the static content of your website, but also the dynamic pages and stores the cache in the server memory, so when CloudFlare needs to refresh its cache and pulls the content from your website, SuperCacher will deliver it to CF from the server memory, instead of reading the content from the server Hard Drive.

      Regards,
      Nikolay

  13. JD Gillispie says:

    Ack! I just enabled SuperCacher following the instructions given, and now my FileZilla refuses to load my site with the new IP, this is not good, especally since I am not a coder myself.

    • JD Gillispie says:

      Just wanted to add that I was able to access my site with my old IP on my second computer, but still no luck with the SuperCacher new one on either of my computers.

      • Nikolay Todorov says:

        Hi Joni,

        I just wanted to note, that when the account is configured with a shared IP (like yours) once you enable SuperCacher it needs some time to propagate, because of the website IP address change. Once propagated the SuperCacher will kick and you’ll notice the loading speed increase.

        Just in case I checked your account and its SuperCacher configuration and I can confirm everything looked fine and your website is loading amazingly fast through SuperCacher. If you still see any issues, though, please fire a ticket and we’ll gladly check it out.

        Regards,
        Nikolay

      • JD Gillispie says:

        Thanks, Nikolay, I appreciate you checking into things for me.

  14. James Foley says:

    Interesting… Happy now!? TAKE THAT to the 7% surveyed who were not really satisfied with the speeds!

    Personally have always been satisfied with network/speeds, so I’m not entirely sure why I dove right in and enabled this (especially before benchmarking).

    If, for example, I enabled Static Cache’ing on my account: does that apply for all add-on Domains and/or sub-domains? Or only the primary domain?

    Are there any technical documents which elaborate on these new offerings? In a previously cached life, users on a site not hosted by Site Ground had issues with cache, proxies, etc., after we pushed site update(s) e.g., changes to JavaScript or CSS files. We found it best to reference the resource via HTTPS if possible and append a dynamic version number (…/js/awesome.js?1.2.3) after we updated/changed the site. Thoughts?

    Cheers,
    Happy Customer (of 5+ yrs)

    • Nikolay Todorov says:

      James,

      I am afraid, we do not have public technical documentation of the service, besides our tutorials. Anyways, to answer your questions.

      Yes, once enabled Static SuperCacher applies on all domain names and subdomains configured within the hosting account. Even if you add a new domain name it will be automatically configured with Static SuperCacher.

      It is possible to have problems with static content being cached and not updated instantly when changed. But that is why we added the Flush Cache button within the SuperCacher cPanel interface. It will clear the entire cache and changes should be noticed immediately.

      Regards,
      Nikolay

  15. bonnie says:

    This what I have been looking for will try it.

  16. Robyn says:

    Excellent product

  17. Randy and Anna says:

    Having been involved with web design for nearly 20 years, I have seen a great deal of changes take place in technology. I recently chose to explore the newer world of Joomla and WordPress for a site of my own, so SiteGround was my chosen provider, despite having my own personal server. I have been exploring everything offered here and have been very pleased to the point of potentially switching over some of my existing sites as they come up for renewal. Now with the introduction of SuperCacher, this is a must! I have clients with many graphically intensive websites that despite my best efforts, have slow load times on older machines. The concept of a cache utility that boosts site performance is a fantastic advance in web development! My current site that I am developing may take a new direction with SuperCacher, as I may whip out the graphic designer part of me and put this to the test. Thank you for staying on top of what makes a website appealing to the masses… SPEED!

  18. John Harvey says:

    I enabled static caching. Since my site runs Joomla version 3 the control panel does not recognize it as supported software so I cannot run dynamic caching. The site does not change that often so static caching is probably OK. I will contact support about this issue.

    • Nikolay Todorov says:

      John,

      Well, indeed, Joomla 3 is not yet supported by Dynamic Cache, but it is at the end of the testing phase and hopefully we will support it by the end of this week or in the beginning of the next one. So, check up every now and then your cPanel SuperCacher – very soon you’ll see Joomla! 3 there.

      Cheers!
      Nikolay

  19. khola says:

    Well done Siteground team!
    One hell of innovative idea coming from you people.
    Impressive! Commendable work
    SuperCacher is SUPER!

  20. Gavin says:

    Thanks so much guys. It’s wonderful to see a service that is always looking to improve it’s service.

  21. Priyank Vijay says:

    From last couple of weeks I was looking for ways to improve my wp blog speed. Installed so many plugins. Thanks Site Ground for this simple solution.

    Now, should I disable all other caching plugin installed in my wordpress (w3 cache, minify e.t.c.)?

    • Nikolay Todorov says:

      Hi Priyank,

      SuperCacher has been tested with most popular WordPress plugins, such as W3 Total Cache. We even recommend it for Memcached service. So, I believe you shouldn’t experience any issues having them enabled together with SuperCacher. If some issues arise, however, don’t be merciful and fire a ticket.

      Best Wishes,
      Nikolay

  22. MAD Blocker says:

    just activated and the benefits of this feature are already appreciable!!!
    good job siteground!!!

  23. Evans Jeremiah says:

    This problem has been hanging long enough with my sites and I am happy that finally there is a solution to it. It’s really a solution to all my sites am currently hosting with Siteground, this is as a result of the poor connectivity we experience here in Nigeria and sometimes you just think your page is experiencing downtime, not knowing its as a result of our poor internet connectivity. I really appreciate this new innovation! Changes and stedy growth is what we leave for and am very happy that Siteground competing at the highest level when it comes to innovation!! Well done Team :) =)

  24. gary earl says:

    OMLG! (oh my lady gaga) YOU GUYS HAVE OUTDONE YOURSELVES THIS TIME. BRILLIANT. USING BROWSER PLUGIN SPEED TESTS, I’M NOW GETTING AN “A” RATING FOR SPEED! FOR THE FIRST TIME EVER! my site loads INSTANTLY, even on my 3g iPhone. i’m blown away. i’m one of the most high tech music producer/mixers, and the Grammy organization gave me a t-shirt that reads “All Geek All the Time”. YOU need one of those my friend! My site being self built has not been done smartly by a pro. i have whole page detailed backgrounds, along with several sliders, large image sliders using a dozen large images in each slider, and up to 50 images in some, and multiple videos, etc. Clients tell me my site is great, but loads slow. I switched to siteground this last year cause i liked the 24/7 tech support, and i liked the folks i talked to. great service already, but now i’m blown away to a whole new level. thank you, Tack, Vielen Dank, Obrigado, Merci, Bedankt, Grazie, Gracias, Kiitos, Tak, Terima Kasih, Takk! in short, many thanks… i look forward to a long and prosperous relationship with Siteground.

  25. Lynne Hand says:

    Houston, we have lift off!

    A little bit of fiddling around for a Joomla installation, but seems to be well worth it.

  26. Paul says:

    Fantastic, I have been wondering if you guys could enable memcached for a while. I even asked on your chat.

    I turned it on right away, and will be looking at the stats closely in the next few days.

    BTW, are you planning on supporting Drupal 6 for the dynamic cache?

    • Nikolay Todorov says:

      Hi Paul,

      Yes, Drupal 6 and 7 are in the list :). We will be definitely adding SuperCacher support for them. Can’t share any ETA yet, though.

      Do not forget to share with us your website stats ;)

      Cheers,
      Nikolay

  27. Kevin Barnett Jr says:

    Just enabled SuperCacher and started CloudFlare for my domain. Siteground is always looking out for its customers. Thank You.

  28. Paul says:

    Without cache:
    Load Time 10.778s
    First Byte 3.485s
    Start Render 5.277s

    With memcached + static cache:
    Load Time 8.816s
    First Byte 0.944s
    Start Render 2.891s

    so it is 3 times faster for first byte, and about 1/2 to start rendering. The site feels very snappy, and responsive now. Thank you very much, and awesome job.

  29. Matt Cox says:

    Wow! Amazing speed with the new SuperCacher! Thanks, Siteground. You guys rock!

  30. Matt Cox says:

    Ok, so just got the nitty-gritty results in:

    Before supercacher:
    Load Time: 3.28s

    After supercacher (staticcache):
    Load Time: 1.69s

    NICE!!! That’s over 50% faster.

  31. Paul says:

    Is there any way to look at the statistics from the static cache?

    I can see stats from memcached using a drupal module, but I would like to see the static cache statistics somewhere.

  32. Greg Gates says:

    Now why would I give a rat’s ass about super speedy SuperCacher, when I and my website visitors so frequently get “Internet Explorer cannot display the webpage” when I/we try to get to my website? Particularly, when I/we can browse to anyplace else on the web? Would you care to explain that to me?

    • Nikolay Todorov says:

      Honestly, your complain is rather strange to me. I checked our internal records regarding your host server and I dod not see downtimes, network interruptions or any load spikes for the past 30 days. The highest load averages recorded on your host server for the past 30 days is 1.87. Anyways, I would very much appreciate it if you can post a support ticket and we’ll gladly check this problem.

  33. Stewart Marshall says:

    Just activated it fo my two sites. Looks great – haven’t got stats but my impression is that it has almost halved load time. Thanks SiteGround team. Stewart :-)

  34. Redazione Convivum says:

    I activated Supercacher and it seems to work great, better then the joomla cache. Thank you SiteGround team!

  35. Redazione Convivum says:

    I’ve read your answer about Supercacher and Cloudflare and I have just a little question: what about the joomla cache and Supercacher? Can work together too?

    • Tenko says:

      We’ve been getting that question in our ticketing system as well. Indeed our in-house caching system SuperCacher and CloudFlare seem to overlap a bit. However you should consider there are a lot more differences than similarities. I’ll try to list both and hope it would shed more light how both services could be beneficial for you at the same time:

      ## Similarities ##
      – SuperCacher and CloudFlare both cache static content

      ## Differences ##
      – SuperCacher also caches dynamic content for certain supported apps, which makes a dramatic impact on site loading performance. Currently WordPress 3 and Joomla 2.5 are supported. Short term we expect to support WordPress 3.5 and Joomla 3, 1.6 and 1.7. Long term we expect to add Magento, Drupal and PrestaShop to the list.
      – SuperCacher allows the usage of memcached on the host server, which speeds up the loading time of the website even more. Lots of apps support memcached out of the box, like for example Magento and MediaWiki do.

      On the other hand:
      – CloudFlare distributes cached static content to 23 datacenters across the world and displays the content from the nearest-to-the-user datacenter. That improves performance on static content delivery, especially for users far away from the host server. Service is also known as CDN.
      – CloudFlare add several additional layers of Security to the website, without the need of complicated coding. More info here:

      https://www.cloudflare.com/features-security

      You can also safely use both SuperCacher and CloudFlare static caching systems at the same time. The effect adds up and your website gets even faster

  36. Stephen Ligosky says:

    Dear Site-Ground’
    I do not even know what or where the C-panel is. I don’t know how any of this will help me. I’m dumber than a stick when it comes to computers in general and web-sites in particular. There are so many things I do not know that I despair.
    I seem to get more out of facebook right now. People comment and repost photos of paintings on their site and on other sites of friends. How can my Site-Ground web-site help with getting more of my work seen.?
    I do hope the team there is doing well. It sounds like you’re doing ok. You are all nice people, just so smart that your words go right over the head of a dummy like me.
    I wish you a joyous holiday and new year.
    Sincerely,
    Stephen Ligosky

  37. Christopher says:

    I am installing it now, will post back after a couple of days with my experience.

  38. Mark Bradley says:

    Small amount of traffic on my site but page load was a lot faster.

  39. Ron Hart (Gaianicity) says:

    Have the three layers installed and everything is working at blazing speed with one exception. For some reason the slider on the home page isn’t loading.

  40. Clint McBee says:

    Have set up two layers on our website and can notice a big difference in the page load times. Database access has greatly improved. Thanks for the great addition!

  41. Vinod Bokhiriya says:

    I’ve been with Siteground from some time and as always, Siteground improves their server and technology and always 2 step ahead of any other Hosting companies out there.
    The SuperCacher is really amazing gift for all customers, Customers can easily improve their site speed within their Cpanel without worry about anything. It’s Just Awesome. The page loads 10 time faster than before.
    Checkout my post on siteground technologies : http://goo.gl/1QBmC

    Thank You SiteGround for Everything,
    Vinod Bokhiriya.

  42. gary earl says:

    i’m getting a 97 out of a 100 now on speed tests, like YSlow… “A” rating, thanks guys. i’m no programmer and i’m using templates and lots of sliders, videos, etc. and now it rocks, even on a 3G iPhone. :) your the best!

  43. Paul says:

    Supercacher is great, performance is fantastic.

    But after turning it on, all requests appear to come from the same ip address. awstats is much less useful, and the site also sees the same ip address so it cannot tell me where customers are coming from.

    • Nikolay Todorov says:

      Hi Paul,

      Actually this problem has been addressed by the time we released the service, so you should be seeing the actual and correct stats in Awstats. However, there might be some kind of a problem on the server hosting your website. Could you please fire a support ticket, so that we can look into this problem.

      Cheers,
      Nikolay

  44. Paul says:

    Maybe you need to use X-Forwarded-For
    https://devcentral.f5.com/blogs/us/using-quotx-forwarded-for-quot-in-apache-or-php

  45. Sandra Porter says:

    When will the Dynamic Cache option be available for Drupal sites?

    • Hristo says:

      We plan to extend our caching servers for more applications including Drupal. Alas, I can’t provide you with ETA when that will happen because the plugin creation requires a lot of work and testing to be made right.

  46. Lola Heavey says:

    I haven’t turned on Supercacher yet. What happens if for whatever reason I turn it on, change my mind and want to turn it off. Can I do that easily? Thanks.

    • Hristo says:

      Yes, all you need to do is click a button in the SuperCacher tool in your cPanel. In addition, you should remove the plugin from your site. That’s all it takes to disable it.

  47. Dirk Deckx says:

    Hi Nikolay, on our site you installed an experimental Joomla plugin (SG Cache) which is working very good till now.
    What’s our best solution now ? Remove the SG cache from Joomla and go for Memcached or Dynamic Cache ?
    Or can they work together ?
    Thanks.
    Dirk

  48. Dirk Deckx says:

    OK, it seems I was mistaken. Supercacher seems to be only available on shared accounts and not on VPS.

    • Nikolay Todorov says:

      Hi Dirk,

      All the 3 layers of SuperCacher can work together without issues. But, yes, SuperCacher and Memcached are available only on our shared and semi-dedicated plans as you already noticed.

      What you have on your VPS server is a custom build of SuperCacher service. It is not experimental any longer. You are using stable version of the plugin and the caching service beyond it. However, the caching service itself is differently configured, so that it is compatible with the VPS hosting environment.

      So, you don’t have to do anything at the moment. I can say, though, that we’re currently working on making SuperCacher services officially available for our VPS customers as well.

      Cheers,
      Nikolay

  49. Rich says:

    I have been hosting our church’s website (a couple of sub-domains) for quite a while now. I am currently in a Drupal 7 migration. Please let me know when there is support for D7. Thanks.

  50. Eileen says:

    Hurrah! At last I got a blog from where I know how to truly get valuable data concerning my
    study and knowledge.

  51. Hexc says:

    Does it support opencart ?
    I am running a opencart store with 3000+ products and getting error “Resource limit is reached” on my present host provider even though I have unlimited bandwith.

    Does this service helps me in solving this error and decrease page load time ?
    Also Do you provide APC module on shared hosting?

    • Nikolay Todorov says:

      I am afraid, that as of now Open Cart isn’t in the list of SuperCacher Dynamic Cache supported apps. There is no problem to have the static cache enabled for it, though.

      APC is available only with the Cloud and Dedicated Servers + Booster upgrade.

      The error “Resource limit is reached” isn’t a standard one, but it seems like a custom one by your current host. Anyways, 3000+ products could be a lot, but also could be few. All depends on how much traffic your website generates and how big and optimized is the database it uses. However, I’m pretty sure that any of ours Cloud or Dedicated server + Booster offers can handle your website’s needs.

  52. […] and informational launch campaigns. For example, when the SuperCacher was implemented, we created a blog post, an easy-to-understand inforgraphic, detailed tutorial, informational emails for the customers and […]

  53. […] their Magento websites on a shared hosting platform with the help of our newest addition to the SuperCacher – the Varnish-based dynamic cache option for Magento […]

  54. mobile games says:

    I like what you guys are up too. This sort of clever work
    and exposure! Keep up the amazing works guys I’ve incorporated you guys to our blogroll.

Favorite Tweets

Facebook

Latest Comments

Archive