https://github.com/barelyhuman/nomen
minimalistic but extensible framework for server-rendered applications
https://github.com/barelyhuman/nomen
Last synced: 2 months ago
JSON representation
minimalistic but extensible framework for server-rendered applications
- Host: GitHub
- URL: https://github.com/barelyhuman/nomen
- Owner: barelyhuman
- License: mit
- Created: 2023-10-27T17:50:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-28T11:37:35.000Z (about 1 year ago)
- Last Synced: 2025-04-15T02:13:03.354Z (2 months ago)
- Language: JavaScript
- Homepage:
- Size: 268 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# nomen-js
[](https://plainjs.github.io)
[](https://github.com/barelyhuman/nomen/actions/workflows/test.yml)`nomen` is a minimal but extensible framework for server based applications.
- [nomen-js](#nomen-js)
- [Goal](#goal)
- [Todo](#todo)
- [Alternatives / Similar Solutions](#alternatives--similar-solutions)
- [Development](#development)## Goal
A no build solution with pure ESM to write API's and Frontend Interactive Views
while not being tied to a specific web framework. We aren't trying to solve a
hundred problems with the framework.The entire framework is based off of a module loading system which is meant to
be flexible enough to be able to add in any kind of rendering engine atop an API
ServerThat's it. I'm not trying to create and fix imaginary problems. Most of them
have already been solved and can be reused with `nomen-js`Think of it as another "One Man fullstack framework" in the JS land
# Todo
- [x] Module Loader
- [x] Server Kernel
- [x] ESBuild Core Transformer
- [x] Render Adaptor definition
- [x] Rendering Engine
- [x] Vanilla JS Client Hydration
- [x] Bundle Chunker
- [x] Plugin API (mostly just a layer atop esbuild's plugin API)
- [x] Adaptors for various server renderers
- [x] ArrowJS
- [x] Preact
- [x] VanillaJS
- [ ] Page Head Support
- [x] Dev Server Essentials
- [x] Watcher
- [x] Live Reload
- [ ] HMR
- [x] Custom Template (_index.html_)
- [x] Custom 404 Page
- [ ] Custom Error Page
- [ ] Usage Documentation
- [ ] Faster Builds
- [ ] Pre-rendering module spec
- [ ] Typings (Last thing to do)
- [ ] Cross Runtimes Execution (Node, Deno, Bun, etc)# Alternatives / Similar Solutions
- [AdonisJS](http://adonisjs.com) - no-nonsense full stack framework for
Typescript(Javascript)
- [rakkasjs](http://rakkasjs.org) - A react based framework built on
[vite](https://vite.dev) and [hattip](https://hattipjs.org)# Development
- Make sure you have [nvm](https://github.com/nvm-sh/nvm) installed
**Setup Node Version**
```sh
nvm install
nvm use
node -v # v18.16.0
```**Setup repository and dependencies**
```sh
npm i -g [email protected]
pnpm i
```**Run Development**
There's no build tooling, the repository is just a collection of ESM modules
that get imported by the node runtime.**Run Playground**
```sh
cd playground
pnpm dev
```