16 ms·
How we built the new BBC Homepage
- rentamir 12y agoThanks for sharing the tech stack. Would love to read more about the curation kit and the microservice approach.
- defenestration 12y agoI agree. More corporates should give these insights and don't care for a bit of bashing when they do.
- Domenic_S 12y agoTons of tech buzzwords, yet the blog intercepts middle-clicks. I want to open your links in a new tab so I can read them when I'm done with your blog!
- mattbessey 12y agoIts not intercepting Cmnd+Click (mac)
- thejosh 12y agoLinux / Chrome middle clicking doesn't work. How can they break something so basic?
- shrikant 12y agoAlso not working on Windows 7 / Chrome.
- 9point6 12y agoThough working fine on Windows 8.1 / Chrome Edit: Actually, only working fine on the first link. All subsequent links get captured
- pja 12y agoThat's weird - middle click still works fine on Firefox/Linux, but doesn't work on Chrome/Linux. Hard to believe this was intentional.
- clarkdave 12y agoIt's not just the blog - news.bbc.co.uk also intercepts middle clicks to external sites. Middle clicks on links to other bbc.co.uk pages work fine though. Is it an accident or intentional? Anyone know?
- CatsoCatsoCatso 12y agoI've noted this to them in their feedback forms before. It's been like that for over a few months. If I recall correctly when the Guardian (uk) was developing their current version under Beta the same problem came about for a short while.
- simons 12y agoI believe it's unintentional - I expect it stems from JavaScript event tracking (e.preventDefault(); logEvent(e); window.location=e.target.href; Or something to that effect).
- marknutter 12y ago> Tons of tech buzzwords, yet the blog intercepts middle-clicks They broke the middle-click? Good god, shut it down!
- super-serial 12y agoIt's like they monitored the front-page of HN everyday for a year, made a list of the top mentioned technologies and then gave that list to their management. Their manager said "Your goal is to write a blog post mentioning each one of these technologies, and add links so it appears in dark-bold-blue text. If we don't have a project using a trendy tech-stack... you bust your ass and get something up and running." The engineers balked... "but why?" Then the boss said, "I'm tired of being ignored in 'Who's Hiring' on Hacker News. We make this article and they'll all come begging us for jobs. At the BBC we don't wait for news to come to us, we make the news. And THAT'S what we call journalism kids."
- pgl 12y ago> It's like they monitored the front-page of HN everyday for a year, made a list of the top mentioned technologies and then gave that list to their management Or perhaps those technologies were actually useful for them? I don't know, just a thought.
- ricardobeat 12y agoThis is extremely offensive to the team that built this product. Why the hate?
- davb 12y agoI've been using the new design on mobile for a while here and the user experience is awful compared to the old design. Although the parent comment might seem a bit patronising, I think he's right - they've focussed too much on the technology and design fads. Compared to the old site, there's a lot of "big text", too much of a focus on images (when you drill down into the site) and less on text, and low information density. Worst of all (for me) - when loading on latest stable Chrome on Android, with a very fast internet connection, the page appears loaded but as soon as I scroll a number of the images disappear and the layout changes. I have to scroll back to where I wanted to be. Lots of scripts, client-side rendering, etc. It's overkill for a site whose focus should be content, not interaction. While I'm sure the team built a technically impressive website, I don't think they've built the "right thing" and I certainly don't think it's better than the old one (from a user perspective).
- Numberwang 12y agoI have not yet tested the new mobile site, but if the design of the normal site is anything to go by it will have been designed in hell by some teen demon reading too much Kafka.
- Twirrim 12y agoHmm. While it's nice to push rendering out to clients for saving your server CPU, that can lead to a suboptimal mobile experience, requiring more CPU and battery power on the mobile device to work on the javascript and render the page. There are other factors, for sure, but you want to be keeping client side javascript down to a minimum. Taking a quick spin through yslow in the mobile browser suggests they've got a number of areas to improve on to make the time to screen significantly better on mobile devices (even on a fast connection here it took several seconds to even start showing me content, and several more before it had finally loaded everything) Given the world wide reach of the BBC, expecting high speed and low latency networks seems like a bad idea. In the US, 3G & 4G typically see 90-100ms latency per request. Mobile Yslow is reporting that they've got 21 javascript scripts alone on the page. IIRC The android browser will limit itself to 4 threads retrieving content typically so that's (21/4 * 100ms) 525ms just lost in latency requesting the javascript, let alone actually downloading it and the overhead of the javascript renderer. It's also pulling in content from 21 different websites, so at the bare minimum that's 21 DNS calls being made (with the same latency penalty!) A bunch of those are being done just to load a single piece of content too, which is a little crazy. Don't get me wrong, the site looks good.. it's just for a 'mobile-first' experience, they seem to be missing the all important time-to-screen and giving the mobile user a lot of work to do. A useful tool from google for analysing the site for both mobile and desktop: https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fm.bbc.co.uk%2F https://developers.google.com/speed/pagespeed/insights/?url=... and a good talk from last year's Google I/O conference on optimising the mobile experience: https://www.youtube.com/watch?v=WrA85a4ZIaM https://www.youtube.com/watch?v=WrA85a4ZIaM
- notahacker 12y agoPlus this is the only time I've ever seen "mobile first" interpreted quite so literally (i.e. on a desktop with a reasonable connection the mobile stylesheet loads before the main styles and content and is visible for just long enough for the eyes to register the layout, producing a horrible "flash of unstyled content" effect). n.b. plenty of people looking at the BBC site are still being shown the old style.
- 12y ago
- kirkus 12y agoAmazing insight into how large organisations manage projects.
- sklogic 12y agoThe new BBC page is barely usable. Not to mention that the new BBC android app is thoroughly disgusting. Bring back the old one, please!!!
- blowski 12y agoI believe there is a bot that monitors websites for changes, and whenever they change enough it posts randomly generated strings along the lines of: > The new <sitename> design is terrible! Bring back the old one! Whether it recognises the irony that it also moaned about the 'old one' when that came out, I'm not sure.
- sklogic 12y agoHave you used the previous BBC android app? It worked. The new one is totally useless.
- blowski 12y agoNo, to be fair, I haven't. It's just tiresome how every single design change by any large website generates comments exactly like this. As somebody that has done a fair amount of usability testing, that much of why people think redesigns are unusable are simply because they were used to the old version and haven't yet spent much time with the new version. But if you show the new design and the old design to somebody that has used neither, they frequently prefer the new design. And over time, everybody kind of likes (or at least gets used to) the new design. That doesn't mean that all redesigns are necessarily good, or even that redesigns are necessary, but the kneejerk "it's unusable!!!!!" is so cliched.
- sklogic 12y agoIn this case "unusable" is fully justified, it means that the entire (and, I suppose, important) class of use cases had been eliminated: it does not work offline. And the system is designed in such a way that there is no hope it'll ever be fixed. I doubt they did any proper UX testing at all, they did not collect user stories, they did not consider all the use cases. They just hired a bunch of hipsters eager to add as many buzzwords as possible to their CVs.
- weavie 12y agoThey mention using BEM (https://bem.info/ https://bem.info/) Any idea what it is? The site is not at all clear.
- yalooze 12y agoCSSWizardy say it better than me: "BEM – meaning block, element, modifier – is a front-end naming methodology thought up by the guys at Yandex. It is a smart way of naming your CSS classes to give them more transparency and meaning to other developers. They are far more strict and informative, which makes the BEM naming convention ideal for teams of developers on larger projects that might last a while." http://csswizardry.com/2013/01/mindbemding-getting-your-head-round-bem-syntax/ http://csswizardry.com/2013/01/mindbemding-getting-your-head... But basically: agreed rules for how to name and format css to make it maintainable and performant in big projects.
- weavie 12y agoThanks. I dont know why they couldnt just say that on their homepage!
- andrewingram 12y agoEssentially, the BEM website is the worst possible rule for learning the underlying principles of BEM (ie what makes it good), instead it's all about their tool that attempts to manage it all for you.
- conradfr 12y agoI worked on a project that used that and while I understand the reasoning I hate the ugliness of it.
- deleted 12y ago[deleted]
- confiscate 12y agowow you use nodejs. how amazing that is
- alexcason 12y agoThere seems to be some kind of bird theme going on with their CSS classes. class="distinct-component-group container-buzzard" class="distinct-component-group container-pigeon" class="distinct-component-group container-macaw" class="robin sparrow-container" class="sparrow-container sparrow-columns"
- smegel 12y agoI wonder to what extent they are still using Perl.
- draegtun 12y agoThe days of the BBC being a "Perl shop" have long gone. But they do still use Perl, for e.g. BBC Genome is a new project written in Perl - http://www.bbc.co.uk/blogs/internet/entries/cedd1f30-ac95-3271-8e8a-78c07b9a4d23 http://www.bbc.co.uk/blogs/internet/entries/cedd1f30-ac95-32...
- iuguy 12y agoFor those that aren't aware, the BBC has one of the worst cases of "Not invented here" syndrome you'll ever see.
- Cthulhu_ 12y agoAnd yet all I see in the article is off-the-shelf libraries and frameworks, and they came from a commercial CMS - where's the NIH?
- bshimmin 12y agoYou won't find any in that article, but the BBC did build their own jQuery once upon a time (now long-since abandoned, of course, as many "NIH" projects tend to be): http://www.bbc.co.uk/glow/ http://www.bbc.co.uk/glow/
- mikecmpbll 12y agoChrist, so much hatred. I like the desktop site, I like the mobile site, and I like and appreciate that you're giving us an insight in to your tech stack and how content is published. Cheers beeb.
- legoisbest 12y agoDoes anyone know how much of this development is paid for by the UK tax payer vs BBC worldwide profits from DVDs etc? I'm not sure website development should be paid by UK tax payers TBH... Maybe at least some of the reason for hate. My main hate is the idiotic cookie policy which makes everything look ugly, but I guess the EU is to blame there.
- fredkingham 12y agoyou mean by license fee payers. Given the bbc is the 7th most popular site in the UK, and a clear leader over other news sites, I don't see why it shouldn't be paid for by the license. It fulfils its requirements outstandingly well. (There are questions about whether given the move away from a tv based model the bbc should be paid for by tax payers, and that's fair)
- sklogic 12y agoIt's ok they're building a new site. It's totally not ok that they created a steaming pile of crap, again.
- legoisbest 12y agoYeah but every few years they seem to reprogram the entire website in "whatever is most fashionable at the moment". I'm not sure that's a good use of the publics money.
- vertex-four 12y agoYou'd rather we kept with outdated layouts like this[0], forever? Part of rebuilding the website is updating the layout and usability of the website. In order to keep the website usable, the people administering it have to have better tools to organise content on it (as we all know, UX isn't just design, you can't just write a new template over a site with bad UX to make it perfect). Developers use whatever is most reasonable to use at the time with an eye on it hopefully lasting 5-10 years into the future - much of the BBC website still runs on legacy, unmaintainable Perl, and they've learned their lesson from that. [0] http://news.bbc.co.uk/onthisday/hi/dates/stories/december/4/newsid_3228000/3228207.stm http://news.bbc.co.uk/onthisday/hi/dates/stories/december/4/...
- rashthedude 12y agoPleasantly surprised how 'up-to-date'the beeb is.
- thesehands 12y agoThe BBC produce quite a few intereting write ups of their R&D process alongside odd things they are hacking on here: http://www.bbc.co.uk/rd http://www.bbc.co.uk/rd Well worth a read.
- Fastidious 12y agoI love the BBC. Very interesting news, fairly balanced. I hope I can play their videos on the new website, as before they all used to require Flash.
- esalman 12y agoReading the article reminded me of this: http://motherfuckingwebsite.com/ http://motherfuckingwebsite.com/
- bencollier49 12y agoThe new "BBC News (Beta)" website is bloody ugly. They've gone for a "flat UI" thing, but it looks so clumsy that it reminds me of the internet from before people used gradients.
- coob 12y agoHaha has the internet groupthink gone full circle on 'flat' now? Tech is fashion whether we admit it or not.
- ggitau 12y agoHome page displays a bunch of javascript before rendering the rest of the page. Doesn't happen all the time though.Maybe you guys might want to look into that.
- ndreckshage 12y agoThis mentions using Node/Express to help with concurrency. Ok. But this also mentions using 'isomorphic' javascript with React, and also not completely reliant on cache. React.renderToString (and all other isomorphic options -- Rendr, etc) are synchronous and slow. (rendering a large page in React w/ static data would take ~600ms; whereas the same page with with Mustache in Go for example would take ~30ms). End result, decreasing concurrency, and hurting overall performance. OP - can you shed any light on how this is actually impacting your performance? Or maybe things that you had to do to get around the problem (ex - details of 'module level' cache with Redis etc).
- nerdy 12y agoMost of their tests take half a second each to run? Some examples: "The first story displays an image and not an alt text attr if one is defined. (793ms)" "The module banner color is BBC News Red (552ms)" The 13 tests shown in the screenshot take an average of 577ms each, a total of over 7.5 seconds. 13 simple tests with wild variance in execution time. Checking a module banner color? 42ms. Checking a module background color? 552ms. So a 12x increase for checking a different color within a module? Those tests are going to rot because of the expense of executing them and they'll be discarded. Over a 500ms average per test just isn't sustainable, particularly at the scale required for checking every conceivable kind of background color.
- meesterdude 12y agoI work on a rails codebase with some tests that take 20 seconds to run. The entire suite is normally 5 minutes. I made a ruby gem to take the entire thing down to 20 seconds, which is much better for flow. But I agree those are definitely smelly tests with questionable value return, and would not be surprised if they do indeed rot.
- noso 12y agoIt nice to know what is happening in the BBC and the tech they are using. Additionally, It is appreciated they spend the time writing up what they have done/achieved. Rock on!
- meesterdude 12y agoI do love when companies share this stuff. Thanks. > Rather than using PHP or Java (that was the requisite of the Forge platform), we have chosen a non-blocking framework, NodeJS with the Express framework . This allows us to serve more simultaneous requests, increasing the performance of the application. I don't doubt this is true, but its worth noting you can get good performance out of a "blocking" framework too. Node.js does better than others in some situations, but in this its not a snowflake, and is in some regards worse. But I will criticize priorities: I think this is too much fad, not enough practical. the experience is notably worse than the old site, and it seems like they just threw buzzwords at their problems instead of really crafting a solid solution. I think where they're coming from, maybe this makes sense - they needed to overshoot from their previous platform. But I think they'll find it problematic in the long run and change some of their approaches and release a new site, and that will be a good platform and serve their needs for a good while.
- blowski 12y agoI agree that it sounds very faddish, but that might be the whole point of the blog post - attracting talented developers. Manchester has an up and coming startup scene, which presumably the BBC is competing with in the hiring pool, and brandishing their hipster credentials may be one way of doing that.
- mercurial 12y agoI must confess I'm quite surprised that they would get more performance out of NodeJS than with a decent Java framework. Java has its problems, but it's usually fast.
- hokay 12y agoThey do mention prototyping with Scala and Clojure. I also doubt NodeJS beat the JVM out and out in performance. Maybe they went with Node because it is easier to hire web developers that know javascript than it is to hire web developers with knowledge of the JVM
- 12y ago
- collyw 12y agoActually it doesn't look too bad. Its similar enough to the old one it doesn't seem like when Facebook upgrades and you feel lost. Shame the quality reporting has gone down so much over the years.
- bruceboughton 12y agoIn Firefox 29.0.1, on the new BBC News homepage, wherever I click, it takes me to same story, even if I click on whitespace.