1 of 32

Embracing�#nobuild in�Modern Web

Semarang

Zain Fathoni

2 of 32

Why bother?

We have a good life as developer, don’t we?

Semarang

3 of 32

4 of 32

Build Systems Across Platforms

Web

AI

Mobile

Cloud

Source Code

Source Code + Data

Source Code

Source Code

Binary

AI/ML Model

Source Code

Binary

5 of 32

Semarang

JavaScript fatigue, anyone?

6 of 32

Building on Web used to be simple

( 1 )

( 2 )

( 3 )

Backwards compatible:

Modern browsers can still run decades-old website.

Well cached:

Only changed contents and assets are fetched through network requests.

Open source:

Open for debugging and learning.

7 of 32

Unfortunately, it has gotten more complex overtime.

The complexity was necessary, as a bridge towards better user experience.

However, it doesn’t have to stay like that.

  1. JavaScript
  2. HTTP
  3. CSS
  4. Modularity
  5. Dependency

The Complexity Bridge

8 of 32

Technology swings like a pendulum.

Semarang

9 of 32

The Web Platform has gotten so good.

10 of 32

Remember what they were trying to solve?

Transpiler: Babel, SWC.

Bundler: Webpack, Rspack, esbuild, Rollup, Vite, bun.

CommonJS

CSS Preprocessors: Sass, PostCSS.

package.json

11 of 32

Well, we don’t really need them anymore.

Interop 2024

HTTP/2

JavaScript modules

CSS Nesting and Variables

JavaScript import maps

12 of 32

Building Modern Web doesn’t have to be complicated

13 of 32

The stable browser version scores as of November 29, 2024.

https://wpt.fyi/interop-2024?stable

14 of 32

HTTP/2 significantly reduces network overhead in serving multiple assets.

15 of 32

16 of 32

CSS Variables has been available since 2017!

17 of 32

18 of 32

JavaScript modules has been available since 2018!

19 of 32

20 of 32

Underrated benefit:

Fine-grained cache expiration

21 of 32

~150ms

Fetch assets in

most of the times

22 of 32

How to embrace #nobuild

Semarang

23 of 32

Any SSR Backend + Hotwire

Semarang

24 of 32

What if I still love React + TypeScript?

25 of 32

Modern Web

got you covered

26 of 32

Semarang

It’s not completely #nobuild, though.

https://modern-web.dev/guides/dev-server/typescript-and-jsx/

27 of 32

HTMX can also be an alternative

Semarang

28 of 32

What about styling?

29 of 32

To keep your CSS simple, you can use any drop-in CSS frameworks for the basic styling.

Then add more custom styling either by including handwritten CSS files or apply the styling using HTML classes.

  • Tailwind CSS
  • Pico CSS
  • Simple CSS
  • Pure CSS
  • and more …

Drop-in CSS Frameworks

30 of 32

Bonus: Experimental�AI assistance panel for learning and debugging

31 of 32

Explore these live examples using Chrome DevTools AI assistance panel.

It demonstrates how we can easily understand how those websites are built when they use #nobuild approach.

Examples

32 of 32

Thank You