Skip to content

Commit

Permalink
update contributing, use bun text lockfile
Browse files Browse the repository at this point in the history
  • Loading branch information
nobkd committed Feb 12, 2025
1 parent a4a3812 commit 33b4b53
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 6 deletions.
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ When fixing bugs, always include a test case that demonstrates both the issue an

## Feature Proposals

Nue has a clear vision: take modern web standards to their absolute peak. Before implementing any new feature, no matter how small, let's discuss how it aligns with this goal. The framework's power comes from ruthless simplicity - every addition must justify its existence.
Nue has a clear vision: take modern web standards to their absolute peak. Before implementing any new feature, no matter how small, let's discuss how it aligns with this goal. The framework's power comes from ruthless simplicity every addition must justify its existence.

## Development Philosophy

Nue's development style might surprise those coming from traditional JavaScript projects. For engineers steeped in TypeScript, dependency injection, and "enterprise patterns", the codebase might even look stupid or feel like a toy project at first glance. This reaction reveals a fundamental divide in how we think about web development.

While most codebases optimize for type safety, abstraction layers, and "proper engineering practices", Nue pursues radical minimalism. We strive to make each line of code meaningful through its functionality and clarity. The goal is to figure out what's truly needed (and only that) and find out the cleanest way to implement it.

This creates stark contrasts with framework implementations. Consider hot reloading: Nue's implementation is 150 lines of vanilla JavaScript in a single file. At first glance it might look naive - where are the TypeScript interfaces? The dependency injection containers? The state management patterns? But this "naive" implementation consistently outperforms Next.js's equivalent, which spans thousands of lines buried somewhere inside their 2.7MB development bundle.
This creates stark contrasts with framework implementations. Consider hot reloading: Nue's implementation is 150 lines of vanilla JavaScript in a single file. At first glance it might look naive where are the TypeScript interfaces? The dependency injection containers? The state management patterns? But this "naive" implementation consistently outperforms Next.js's equivalent, which spans thousands of lines buried somewhere inside their 2.7MB development bundle.

Or take view transitions: Nue's entire implementation fits in about 250 lines of focused code. A TypeScript purist might cringe at the lack of strict typing and interface definitions. Yet this "simplistic" approach delivers smoother animations and better performance than framework implementations that spread the same functionality across hundreds of files and multiple abstraction layers.

Expand All @@ -43,10 +43,10 @@ By working directly with web standards rather than building layers of abstractio

Maintain the existing minimalist aesthetic:

1. No semicolons - they add visual noise without value
1. No semicolons they add visual noise without value
2. Single quotes for strings
3. Two-space indentation
4. `==` over `===` - strict equality is rarely necessary
4. `==` over `===` strict equality is rarely necessary

Nue avoids Prettier/ESLint as they would add 40MB of complexity. The `.prettierrc.yaml` provides sufficient consistency.

Expand All @@ -55,12 +55,12 @@ Nue avoids Prettier/ESLint as they would add 40MB of complexity. The `.prettierr
```sh
# Bun (recommended)
bun install
bun install --no-save esbuild
bun install --no-save esbuild lightningcss
bun test

# Node
npm install
npm install --no-save jest jest-extended esbuild
npm install --no-save esbuild lightningcss jest jest-extended
npm test
```

Expand Down
79 changes: 79 additions & 0 deletions bun.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{
"lockfileVersion": 1,
"workspaces": {
"": {
"name": "nue",
},
"packages/glow": {
"name": "nue-glow",
"version": "0.2.2",
},
"packages/nuejs": {
"name": "nuejs-core",
"version": "0.5.2",
"dependencies": {
"htmlparser2": "^9.1.0",
},
},
"packages/nuejs.org": {
"name": "nuejs.org",
},
"packages/nuekit": {
"name": "nuekit",
"version": "1.0.0-RC.2",
"bin": {
"nue": "./src/cli.js"
},
"dependencies": {
"diff-dom": "^5.1.4",
"es-main": "^1.3.0",
"import-meta-resolve": "^4.1.0",
"js-yaml": "^4.1.0",
"nue-glow": "*",
"nuejs-core": "*",
"nuemark": "*",
},
},
"packages/nuemark": {
"name": "nuemark",
"version": "0.6.1",
"dependencies": {
"js-yaml": "^4.1.0",
"nue-glow": "*",
},
},
},
"packages": {
"argparse": ["[email protected]", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],

"diff-dom": ["[email protected]", "", {}, "sha512-TSEaVdVGictY1KHg7VpVw2nuM02YKC9C8/qBkGiCnkiAybVbu1zQTMj2/dnVLRO7Z62UsqzHGpXweiOj5/jaZg=="],

"dom-serializer": ["[email protected]", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="],

"domelementtype": ["[email protected]", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="],

"domhandler": ["[email protected]", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="],

"domutils": ["[email protected]", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="],

"entities": ["[email protected]", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],

"es-main": ["[email protected]", "", {}, "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A=="],

"htmlparser2": ["[email protected]", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "entities": "^4.5.0" } }, "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ=="],

"import-meta-resolve": ["[email protected]", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="],

"js-yaml": ["[email protected]", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="],

"nue-glow": ["nue-glow@workspace:packages/glow"],

"nuejs-core": ["nuejs-core@workspace:packages/nuejs"],

"nuejs.org": ["nuejs.org@workspace:packages/nuejs.org"],

"nuekit": ["nuekit@workspace:packages/nuekit"],

"nuemark": ["nuemark@workspace:packages/nuemark"],
}
}
Binary file removed bun.lockb
Binary file not shown.

0 comments on commit 33b4b53

Please sign in to comment.