Imba - a JavaScript alternative for increased developer productivity
Tags: imba, webdev, javascript
Published: 2021-06-10 13:39:46

---
title: Imba - a JavaScript alternative for increased developer productivity
published: true
description: Quick introduction to the major new version of Imba
tags: imba,webdev,javascript
cover_image: https://user-images.githubusercontent.com/8467/121170829-074a8900-c856-11eb-88d9-d4a922c24893.png
---

I'm Sindre, CTO at [Scrimba.com](https://scrimba.com). We're about to launch a major overhaul of [Imba](http://imba.io), the programming language we use for everything here at Scrimba. The language has been developed over many years, and it powers **both the frontend and backend** of Scrimba (100K+ monthly users). Imba is _not an academic exercise or a toy project_. Check out [https://imba.io](https://imba.io) for more details!

Since we've been flying under the radar for several years I thought I should post about it here now that we are approaching beta of this _major_ update.

The main benefit of Imba is **speed.** Both in development and performance.

- Imba's Memoized DOM approach is **an order of magnitude** faster than Virtual DOMs (Vue, React). See [this article](https://www.freecodecamp.org/news/the-virtual-dom-is-slow-meet-the-memoized-dom-bb19f546cc52/) for a short introduction to the approach.
- Imba's time-saving syntax with built-in tags and styles results in **less typing and switching files**
- Imba works with node and the npm ecosystem, and integrates tightly with both js and typescript

Here are some of the features worth mentioning 👇

### Minimal syntax

Imba's syntax is minimal, beautiful, and packed with clever features. It combines logic, markup and styling in a powerful way. Less keystrokes, and less switching files means you'll be able to build things fast.

![ "basics"](https://user-images.githubusercontent.com/8467/121170829-074a8900-c856-11eb-88d9-d4a922c24893.png)

### Runs on both server and client

Imba powers both the frontend and the backend of Scrimba.com, our learning platform with 100K+ monthly active users. On the frontend, Imba replaces e.g. Vue or React, and on the backend, it works with the Node ecosystem (e.g. npm).

![ "server"](https://user-images.githubusercontent.com/8467/121170852-0fa2c400-c856-11eb-8aab-322d4b6a875d.png)

### Integrated styling

Inspired by tailwind, Imba brings styles directly into your code. Styles can be scoped to files, components, and even parts of your tag trees. Style modifiers like @hover, @lg, @landscape and @dark can be used for extremely concise yet powerful styling.

![ "styles"](https://user-images.githubusercontent.com/8467/121170905-1e897680-c856-11eb-8b67-2014f0c508e6.png)

### Blazing fast, Zero config

Imba comes with a built-in bundler based on the blazing fast esbuild. Import stylesheets, images, typescript, html, workers and more without any configuration. Bundling is so fast that there is no difference between production and development mode - it all happens on-demand.

![ "bundling"](https://user-images.githubusercontent.com/8467/121170927-247f5780-c856-11eb-95bf-fa09ca5f8cff.png)

When you run your app with the `imba` command it automatically bundles and compiles your imba code, along with typescript, css and many other file types. It provides automatic reloading of both the server and client.

### Typing and tooling

The tooling is implemented as a typescript server plugin giving us great intellisense, diagnostics, and even cross-file refactorings that works with js/ts files in the same project. You can import types just like in typescript, and annotate variables, parameters and expressions. Like the language, the tooling is still in alpha, but improving every day.

![ "types"](https://user-images.githubusercontent.com/8467/121170940-29440b80-c856-11eb-82bb-ac821d0d0c36.png)

## Get involved!

If you'd like to learn more about Imba, please join our [Discord server.](https://discord.com/invite/mkcbkRw) We also host community meetings (watch recordings of [here](https://www.youtube.com/playlist?list=PLf1a9PYKGPdl3OMBHV72Oz23eFy9q51jJ)).

Imba has been under active development for 6+ years now, and activity is only ramping up. We're looking for contributors who would like to help improve documentation and the ecosystem around Imba.

We really think Imba will add a lot of value in an already crowded space of languages and frameworks. if you're the type who loves to tinker with new things, I'd wholeheartedly recommend you to check it out :)