• Stars
    star
    1
  • Language
  • License
    MIT License
  • Created 8 months ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐ŸŒฑ Noora is a native UI compiler for the web

Noora

In the recent years of the web, we've witnessed the rise of state-driven and component-based UI frameworks (e.g. React, Vue, Svelte). They shifted the way we think about building web applications and laid a foundation upon which to build reusable components and tools that took the web to the next level. However, that innovation happened in the omnipresent JavaScript ecosystem, making it hard to reuse across other runtimes and languages, which often led to teams either going all-in on JavaScript with SPAs or adding server-side additional complexity and indirection with a JavaScript runtime to have access to the same tools and components on the server. To avoid this, those other runtimes and languages had to catch up and come up with their proprietary solutions to resemble the same patterns and tools. Ruby on Rails came up with the Hotwire set of libraries, Laravel with Livewire, and Phoenix LiveView for Elixir/Phoenix. But as you can imagine, proprietary solutions mean bad interoperability and a lot of duplicated effort. So this poses the question: Can we build reusable components and tools that are not tied to a specific runtime or language?

Noora aims to answer that question. It's a runtime, language, and OS-agnostic UI compiler for the web. It's a solution that any web framework can plug into as their UI backend. It's implemented in Rust, which makes it possible to define native extensions for interpreted languages like Ruby, Python, and JavaScript. The following are the main design goals of Noora:

  • Components should be atomic: Components should encapsulate markup, styles, and behavior.
  • Components should be state-driven: Developers' focus while building components should be on the state and the UI, but not on how one maps to the other.
  • Components should be optimally hydrated: Clients should receive only the minimal amount of JavaScript needed to make certain elements interactive when the developer explicitly asks for it (e.g. islands architecture).

There's still some more to add...

More Repositories

1

PPiAwesomeButton

UIButton category with new methods to setup a button with text + FontAwesome Icon
Objective-C
497
star
2

catalysis-framework

A full-stack Javascript framework ยท Built for the long-term
TypeScript
51
star
3

xcode-modular-apps-workshop

Mobos Conference (Romania) about building modular apps with Xcode
Swift
23
star
4

typed-file-system-path

๐Ÿ“ƒ Typed primitives for Typescript to work with file paths
TypeScript
7
star
5

developing-modular-apps-on-ios

Slides from the talk that I gave at NSCoder Night Madrid
7
star
6

node-module-benchmarker

๐Ÿš€ A CLI to benchmark the loading of an ESM graph in Node
TypeScript
3
star
7

pepicrft.me

๐Ÿฃ Personal website powered by Phoenix (pepicrft.me)
Elixir
3
star
8

dotfiles.nix

Dotfiles powered by Nix and home-manager
Nix
2
star
9

gestalt

๐ŸŽจ A Rust-powered and language-agnostic solution to build interactive UIs for web apps
2
star
10

intrepid-adventure-of-scaling-mobile-apps-talk

The slides of my presentation "The intrepid adventure of scaling a mobile apps"
2
star
11

detect-create-package-manager

An NPM package to detect the package manager used for running the "create" command
TypeScript
1
star
12

still_scss

๐ŸŽจ A scss preprocessor for the Still static site generator
Elixir
1
star
13

encrypted-environment

Ruby utility to load encrypted variables into the environment
Ruby
1
star
14

WDM_over_POF

Analysis and viability of WDM technology in POF networks - Final degree project
TeX
1
star
15

rssletter

โœ‰๏ธ Turn newsletter subscriptions into a RSS feed
Elixir
1
star
16

website-old

๐ŸŒ Pedro Piรฑera's personal static website
HTML
1
star
17

pepicrft.me-next

๐Ÿ‘ฉโ€๐Ÿš€ Personal website implemented with NextJS
JavaScript
1
star
18

gestaltjs

A full-stack and batteries-included NodeJS framework designed and built for the long-term
1
star
19

Tratamiento-Digital-de-Im-genes-iOS

Asignatura de tratamiento de digital de imรกgenes trasladada a iOS con todos los ejercicios de la asignatura.
Objective-C
1
star
20

simple-dynamic-configuration-tuist

A repository that showcases how to use dynamic configuration in Tuist
Swift
1
star
21

bodamariajoseypedro

JavaScript
1
star
22

solare

Solare is an iOS application to alert user how dangerous UV is
Objective-C
1
star
23

pepicrft

1
star