0.2.8 • Published 5 months ago

brisa v0.2.8

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

npm version npm size PRs Welcome

Features

  • ⚛️ ・ Everything you need: JSX, TS, server/web components, server actions, optimistic updates, SSR, streaming, suspense, signals, websockets, middleware, layouts...
  • 🚀 ・ Speed: Brisa is designed to start, build, test, deploy and run fast.
  • 🌍 ・ i18n support: text translation and routing carrying only the translations you consume.
  • 📦 ・ Tiny: 0B by default and 3kb when you need web components.
  • 📲 ・ Change the output: You can change your web from server to static, to desktop, android or ios app with just one configuration command.

Getting Started

Simple one command:

bun create brisa@latest

For more info visit the docs.

Inspirations

Bun.js

Bun.js makes it easy for many new frameworks to emerge thanks to its API such as the Next.js style page system, TypeScript support and JSX by default. Besides, it is super fast and the DX of working with it is awesome.

In Brisa we don't use Webpack, Turbopack, Vite or esbuild, we use directly Bun.build, which is faster than esbuild.

Next.js

Brisa's architecture is very much inspired by Next.js pages directory, the way of defining pages, middleware, layout, etc, we have also expanded its model to define websockets and web components.

Although we like more how pages structures the files, also Next.js inspired us to use server components by default and server actions.

React

Brisa was very inspired by React to work with JSX components, both for server components and web components. Our compiler transforms and optimizes the JSX in a different way so that writing web components is more React-like, and takes up much tiny than the original code.

Preact

The Preact team's focus on optimizing for small bundle code size motivated us to make Brisa 3kb as well. Although Brisa defaults to 0B, it is only 3kb if you use web components.

Solid.js

Solid.js here inspired us a lot with the signals. The idea that server components can react to web components through server actions and signals blew our minds, to the point that it motivated us to create the "action signals".

The way web components are reactive without needing Virtual DOM or rerendering greatly improves performance.

Qwik

The motivation to start with a new framework came from meeting Qwik. Misko came to Barcelona and talked about his baby, and I was motivated by Misko, Manu and Shai to talk about Qwik so I could also start creating my baby and try to make the web a little better.

The resumability concept has motivated us to load code like server actions when the user interacts. We can't say that we have resumability because the web components need to be hydrated, but the motivation to improve this in the future is still open.

Lit

Brisa was inspired by Lit to use the platform more. Today we have web components and there is Declarative Shadow DOM, so we can SSR web components.

If well abstracted, the code of a web component can be smaller than using a library. Moreover, it also makes it easier to control when a prop changes, when it is unmounted and to have web components mixed with server components without problems.

We liked the idea of consuming web components as web components from JSX. That is, reading the code you know when a component is a server <Server /> or when it is a web component <web-component />. We want developers to be able to easily distinguish the use of both.

The fact of using web components makes it more comfortable to debug the code as well, accessing directly to the web components from the DevTools elements, without any extension.

HTMX

HTMX has inspired Brisa to make the use of web components less and less necessary and the rest of the components are server components. Here we mix the concept of server actions with HTMX ideas such as indicators, debounce, etc.

Another thing that inspired us a lot is the fact of using more Hypermedia. Brisa's server actions respond with HTML that reactively updates the DOM. It also makes it easier to debug by looking at the Network tab in DevTools and see what the server action returns.

Tauri

In Brisa we wanted to make a direct integration with Tauri. So that from the Brisa configuration you can define the output: server (by default), static, desktop, android and ios, and the Brisa CLI will take care of the integration adding the necessary Tauri files that you can then modify if you want to change the icons, the title or use more native things.

Vue.js

Finally, I want to thank An Phan, a co-worker who is in the core team of Vue.js and when he found out that I was starting to make a framework, he gave me a lot of support.

Documentation

The documentation is available on brisa.build.

Contributing

See Contributing Guide and please follow our Code of Conduct.

Discord

Come join the Discord community channel~

License

MIT

0.2.9-canary.3

5 months ago

0.2.9-canary.1

5 months ago

0.2.9-canary.2

5 months ago

0.2.8

5 months ago

0.2.8-canary.2

6 months ago

0.2.8-canary.4

6 months ago

0.2.8-canary.3

6 months ago

0.2.8-canary.5

6 months ago

0.2.8-canary.1

6 months ago

0.2.7-canary.4

6 months ago

0.2.7-canary.3

6 months ago

0.2.7

6 months ago

0.2.7-canary.2

6 months ago

0.2.5-canary.6

6 months ago

0.2.5-canary.4

6 months ago

0.2.5-canary.5

6 months ago

0.2.7-canary.1

6 months ago

0.2.6

6 months ago

0.2.5

6 months ago

0.2.5-canary.2

6 months ago

0.2.5-canary.3

6 months ago

0.2.5-canary.1

6 months ago

0.2.4-canary.5

7 months ago

0.2.4

7 months ago

0.2.4-canary.2

7 months ago

0.2.4-canary.1

7 months ago

0.2.4-canary.4

7 months ago

0.2.4-canary.3

7 months ago

0.2.3-canary.2

7 months ago

0.2.3

7 months ago

0.2.3-canary.1

7 months ago

0.2.2

7 months ago

0.2.2-canary.3

7 months ago

0.2.2-canary.4

7 months ago

0.2.2-canary.5

7 months ago

0.2.2-canary.2

8 months ago

0.2.1-canary.4

8 months ago

0.2.1-canary.3

8 months ago

0.2.2-canary.1

8 months ago

0.2.1

8 months ago

0.2.1-canary.1

8 months ago

0.2.1-canary.2

8 months ago

0.2.0

8 months ago

0.1.8-canary.7

8 months ago

0.1.8-canary.6

8 months ago

0.1.8-canary.5

8 months ago

0.1.8-canary.4

8 months ago

0.1.8-canary.3

8 months ago

0.1.7-canary.4

9 months ago

0.1.8-canary.1

8 months ago

0.1.8-canary.2

8 months ago

0.1.7

9 months ago

0.1.7-canary.2

9 months ago

0.1.7-canary.1

9 months ago

0.1.7-canary.3

9 months ago

0.1.6-canary.2

9 months ago

0.1.6-canary.3

9 months ago

0.1.6-canary.1

9 months ago

0.1.5-canary.8

9 months ago

0.1.5-canary.7

9 months ago

0.1.5-canary.6

9 months ago

0.1.6

9 months ago

0.1.5

9 months ago

0.1.5-canary.4

9 months ago

0.1.5-canary.3

9 months ago

0.1.5-canary.2

9 months ago

0.1.5-canary.1

9 months ago

0.1.4

9 months ago

0.1.4-canary.7

9 months ago

0.1.4-canary.3

9 months ago

0.1.4-canary.5

9 months ago

0.1.4-canary.4

9 months ago

0.1.4-canary.6

9 months ago

0.1.4-canary.2

9 months ago

0.1.4-canary.1

9 months ago

0.1.3

10 months ago

0.1.3-canary.3

10 months ago

0.1.3-canary.4

10 months ago

0.1.3-canary.5

10 months ago

0.1.3-canary.1

10 months ago

0.1.3-canary.2

10 months ago

0.1.2-canary.4

10 months ago

0.1.2

10 months ago

0.1.2-canary.2

10 months ago

0.1.2-canary.3

10 months ago

0.0.227

11 months ago

0.0.226

11 months ago

0.0.225

11 months ago

0.0.224

11 months ago

0.0.229

11 months ago

0.0.228

11 months ago

0.1.1-canary.2

10 months ago

0.1.1-canary.1

10 months ago

0.0.235

10 months ago

0.0.230

11 months ago

0.0.234

10 months ago

0.0.233

10 months ago

0.0.232

11 months ago

0.0.231

11 months ago

0.1.2-canary.1

10 months ago

0.1.0

10 months ago

0.1.1

10 months ago

0.0.205

11 months ago

0.0.204

11 months ago

0.0.203

11 months ago

0.0.202

11 months ago

0.0.209

11 months ago

0.0.208

11 months ago

0.0.207

11 months ago

0.0.206

11 months ago

0.0.201

11 months ago

0.0.200

11 months ago

0.0.216

11 months ago

0.0.215

11 months ago

0.0.214

11 months ago

0.0.213

11 months ago

0.0.219

11 months ago

0.0.218

11 months ago

0.0.217

11 months ago

0.0.212

11 months ago

0.0.211

11 months ago

0.0.210

11 months ago

0.0.208-canary.1

11 months ago

0.0.223

11 months ago

0.0.222

11 months ago

0.0.221

11 months ago

0.0.220

11 months ago

0.0.197

11 months ago

0.0.184-alpha.3

12 months ago

0.0.196

11 months ago

0.0.195

11 months ago

0.0.194

11 months ago

0.0.199

11 months ago

0.0.198

11 months ago

0.0.193

11 months ago

0.0.192

11 months ago

0.0.191

12 months ago

0.0.190

12 months ago

0.0.186

12 months ago

0.0.185

12 months ago

0.0.184

12 months ago

0.0.189

12 months ago

0.0.188

12 months ago

0.0.187

12 months ago

0.0.206-alpha.2

11 months ago

0.0.206-alpha.1

11 months ago

0.0.184-alpha.2

12 months ago

0.0.184-alpha.1

12 months ago

0.0.184-alpha.0

12 months ago

0.0.183

12 months ago

0.0.182

12 months ago

0.0.181

12 months ago

0.0.180

12 months ago

0.0.179

12 months ago

0.0.178

12 months ago

0.0.177

12 months ago

0.0.175-canary.2

12 months ago

0.0.175-canary.1

12 months ago

0.0.169

12 months ago

0.0.164

12 months ago

0.0.163

12 months ago

0.0.162

12 months ago

0.0.168

12 months ago

0.0.167

12 months ago

0.0.166

12 months ago

0.0.165

12 months ago

0.0.175

12 months ago

0.0.174

12 months ago

0.0.173

12 months ago

0.0.172

12 months ago

0.0.176

12 months ago

0.0.171

12 months ago

0.0.170

12 months ago

0.0.159

12 months ago

0.0.158

12 months ago

0.0.157

12 months ago

0.0.156

12 months ago

0.0.161

12 months ago

0.0.160

12 months ago

0.0.159-canary.1

12 months ago

0.0.159-canary.4

12 months ago

0.0.159-canary.2

12 months ago

0.0.159-canary.3

12 months ago

0.0.153

1 year ago

0.0.152

1 year ago

0.0.151

1 year ago

0.0.150

1 year ago

0.0.155

1 year ago

0.0.154

1 year ago

0.0.149

1 year ago

0.0.148

1 year ago

0.0.147

1 year ago

0.0.139

1 year ago

0.0.142

1 year ago

0.0.141

1 year ago

0.0.140

1 year ago

0.0.146

1 year ago

0.0.145

1 year ago

0.0.143

1 year ago

0.0.138

1 year ago

0.0.137

1 year ago

0.0.136

1 year ago

0.0.135

1 year ago

0.0.134

1 year ago

0.0.128

1 year ago

0.0.127

1 year ago

0.0.126

1 year ago

0.0.129

1 year ago

0.0.131

1 year ago

0.0.130

1 year ago

0.0.133

1 year ago

0.0.132

1 year ago

0.0.125

1 year ago

0.0.124

1 year ago

0.0.123

1 year ago

0.0.122

1 year ago

0.0.121

1 year ago

0.0.84

1 year ago

0.0.85

1 year ago

0.0.86

1 year ago

0.0.87

1 year ago

0.0.88

1 year ago

0.0.89

1 year ago

0.0.80

1 year ago

0.0.81

1 year ago

0.0.82

1 year ago

0.0.83

1 year ago

0.0.79

1 year ago

0.0.106

1 year ago

0.0.105

1 year ago

0.0.104

1 year ago

0.0.103

1 year ago

0.0.109

1 year ago

0.0.108

1 year ago

0.0.107

1 year ago

0.0.102

1 year ago

0.0.101

1 year ago

0.0.100

1 year ago

0.0.117

1 year ago

0.0.116

1 year ago

0.0.115

1 year ago

0.0.114

1 year ago

0.0.119

1 year ago

0.0.118

1 year ago

0.0.113

1 year ago

0.0.112

1 year ago

0.0.111

1 year ago

0.0.110

1 year ago

0.0.120

1 year ago

0.0.95

1 year ago

0.0.96

1 year ago

0.0.97

1 year ago

0.0.98

1 year ago

0.0.99

1 year ago

0.0.90

1 year ago

0.0.91

1 year ago

0.0.92

1 year ago

0.0.93

1 year ago

0.0.94

1 year ago

0.0.78

1 year ago

0.0.77

1 year ago

0.0.75

1 year ago

0.0.76

1 year ago

0.0.73

1 year ago

0.0.74

1 year ago

0.0.70

1 year ago

0.0.71

1 year ago

0.0.72

1 year ago

0.0.67

1 year ago

0.0.68

1 year ago

0.0.69

1 year ago

0.0.66

1 year ago

0.0.63

1 year ago

0.0.64

1 year ago

0.0.65

1 year ago

0.0.62

1 year ago

0.0.61

1 year ago

0.0.60

1 year ago

0.0.59

1 year ago

0.0.58

1 year ago

0.0.57

1 year ago

0.0.55

1 year ago

0.0.56

1 year ago

0.0.53

1 year ago

0.0.54

1 year ago

0.0.52

1 year ago

0.0.51

1 year ago

0.0.50

1 year ago

0.0.49

1 year ago

0.0.47

1 year ago

0.0.48

1 year ago

0.0.46

1 year ago

0.0.45

1 year ago

0.0.44

1 year ago

0.0.42

1 year ago

0.0.43

1 year ago

0.0.41

1 year ago

0.0.40

1 year ago

0.0.39

1 year ago

0.0.38

1 year ago

0.0.37

1 year ago

0.0.35

1 year ago

0.0.36

1 year ago

0.0.34

1 year ago

0.0.33

1 year ago

0.0.32

1 year ago

0.0.30

1 year ago

0.0.31

1 year ago

0.0.29

1 year ago

0.0.28

1 year ago

0.0.27

1 year ago

0.0.26

1 year ago

0.0.25

1 year ago

0.0.25-canary.3

1 year ago

0.0.25-canary.4

1 year ago

0.0.25-canary.2

2 years ago

0.0.25-canary.1

2 years ago

0.0.24

2 years ago

0.0.23

2 years ago

0.0.21

2 years ago

0.0.22

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.20-canary.1

2 years ago

0.0.19-canary.1

2 years ago

0.0.16

2 years ago

0.0.17

2 years ago

0.0.18

2 years ago

0.0.17-canary.4

2 years ago

0.0.17-canary.3

2 years ago

0.0.17-canary.5

2 years ago

0.0.17-canary.2

2 years ago

0.0.17-canary.1

2 years ago

0.0.15

2 years ago

0.0.12-canary.2

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.0.12-canary.1

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.1.0-alpha.5

2 years ago

0.1.0-alpha.4

2 years ago

0.1.0-alpha.3

2 years ago

0.1.0-alpha.2

2 years ago

0.1.0-alpha.1

2 years ago

0.0.1

2 years ago