< Back

Goodbye JavaScript: Introducing our CSS API Client

Editor’s note: This blog post is an April Fool’s faux product launch. However, to see how we actually built the real demo for ‘launch’, see our full explanation.

At Algolia, we are always pushing the boundaries of search. Today is an important day for us as it marks the official release of our 11th API Client: the CSS API Client.

CSS is an awesome language. It only takes you a few years of practice to be able to style a minimalist website in a matter of days.

Lately, we’ve seen more and more discussion about its place in regards to JavaScript. One side thinks that CSS and JavaScript have very different goals, and should be kept in separate parts of your code, to have a clearer separation of concerns. Others argue that one cannot live without the other and that CSS should be inlined directly inside JavaScript.

At Algolia, we’ve decided to take a stance to stop this never-ending debate once and for all. We came to the conclusion that both sides were wrong, and that CSS was a language so powerful that you do not actually need any JavaScript.

That’s right: we decided to get rid of JavaScript altogether.

JavaScript: 1993-2017

Look, JavaScript is an impressive language. We even considered rewriting our whole engine with it at some point. JavaScript is asynchronous, so it is fast by definition.

Unfortunately, the language is not mature enough for us. A new version of it is released every year, which shows how unstable it is. On the other hand, CSS3 was released in 1998, without any new version since then. We think it sends a clear signal that CSS is the mature and stable tech.

CSS: superiority through simplicity

CSS also has none of the features that bloats other programming languages. It has no conditions, no loops, no functions and no regexps. It is pure. You can write concise selectors like #class.id:not(:checked) + a blink:nth-child(2n+1) that clearly expresses your intent at first glance.

We’ve exposed our entire search engine using just CSS, and you can try it live.

Seriously, it actually exists. It’s typo-tolerant, handles synonyms, highlighting, faceting & more.

Animated demo of the CSS API Client in action

Try it live!

A truly offline search for your web browser

The best part of the client is that it works offline. There are no actual requests done to our servers, everything is directly handled by your browser. It means that once you’ve download the initial CSS file, you can unplug and search away. That’s what we call Offline Search!

No call to the API also means that you have unlimited operations. You can search all day long in the same 100 records, and it won’t cost you a cent. Every request being handled by your browser means that you are now using your 8 cores at their maximum potential. We’ve actually started shutting down 2/3 of our datacenters because we are anticipating a much lower load thanks to this CSS release.

One API Client to rule them all

You know the saying: “Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away”. So, we removed a lot of features.

You won’t need data instantly replicated all around the globe to reduce latency because the data now lives in your browser; you can’t get any closer than that.

At Algolia, we also take great pride in having extensive documentation and code examples for all our API clients. We’ll remove those other clients, obviously, because we know you won’t need any other API client than the CSS one.

We are so confident in the quality of this release, that it will work flawlessly, everywhere, every time, and that there will never be any bugs, that we decided it’s no longer necessary to offer support for it. This shows how committed we are.

Finally, because there are no calls to the API, we decided to remove Analytics and the 99.999% SLA from our services. It was a hard decision to make, but when we weighed the pros and cons, it was clear that we needed to remove all the features that didn’t bring any value. Instead, we added support for flexbox.

Next Steps: CSS Everywhere

This whole experiment opened our eyes on a brand new world. We’ve already starting working on our new Machine Learning processing pipeline in CSS. Stay tuned!

Try our new CSS API Client live

  • Jean B

    Guys, the first of April is tomorrow 😉

  • sf_tristanb

    :eye_roll: you justed spoiled the 1st April joke by posting 2 days early

  • aftakitani

    Ow soooo funny! You guys! It’s even funier because it’s not 1st April yet!
    No, i’m kidding its not, it sucked.

  • I think we finally have a solution to the age old client question, can’t you make the site faster? 😉

    • Yep, it only requires 137k lines of CSS code

      • Performance AND job security.

  • Daniel Noel-Davies

    YOU BASTARDS, I ACTUALLY BELIEVED YOU FOR A SECOND, THINKING HOW THE HELL HAVE THEY MANAGED THIS. Touche sir.

  • Nice one:)
    Also:
    CSS also has none of the features that bloats other programming languages.
    CSS isn’t a programming language.

    • SelenIT

      But still, we can implement some interactivity and logic with it, can’t we? Moreover, sometimes we even don’t need any HTML markup for this! Check out this example: http://selenit.freeoda.com/experiments/nohtml/1/

      • Interactivity — yes, definitely. Logic — not so much…
        Depends on how you define ‘logic’, of course;)

  • You know I had to make sure check the date of this article because I know you guys are playing with us.

  • 刘亮

    using your 8 cores at their maximum potential.
    Could you give me more details?
    I can’t understand the statement