All Projects → nut-project → nut

nut-project / nut

Licence: MIT license
🌰 A framework born for micro frontends

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
Vue
7211 projects
applescript
352 projects

Projects that are alternatives of or similar to nut

microfest
Manifest management for single page applications driven by micro frontend apps
Stars: ✭ 14 (-86.14%)
Mutual labels:  spa, microfrontends
Ice
🚀 The Progressive App Framework Based On React(基于 React 的渐进式应用框架)
Stars: ✭ 16,961 (+16693.07%)
Mutual labels:  spa, microfrontends
vue-patternfly
PatternFly 3 components for Vue 3
Stars: ✭ 50 (-50.5%)
Mutual labels:  spa
Cloud-PAW-Management
Simplify PAW and SPA for the masses, unify the MS Internal, and public PAW specs, and expedite deployment to ~5min or less.
Stars: ✭ 45 (-55.45%)
Mutual labels:  spa
openspa
OpenSPA - An open and extensible Single Packet Authorization (SPA) protocol
Stars: ✭ 49 (-51.49%)
Mutual labels:  spa
angular-spa-demo
Demo code for a Single Page Application using AngularJS
Stars: ✭ 20 (-80.2%)
Mutual labels:  spa
magento
Free PWA & SPA for Magento
Stars: ✭ 34 (-66.34%)
Mutual labels:  spa
lego
🚀 Web-components made lightweight & Future-Proof.
Stars: ✭ 69 (-31.68%)
Mutual labels:  microfrontends
react-nodejs-mongodb-crud
👨‍💻 Fullstack web app built with MongoDB, NodeJs, React and Redux. Features: Protected routes client/server side, MaterialUI layout
Stars: ✭ 91 (-9.9%)
Mutual labels:  spa
laravel-vue-starter
Well Documented Laravel Starter App From Development to Production. For Full Blown RESTFUL API and SPA with Beautiful UI Using Buefy / ElementUi For Reusable Vue Components
Stars: ✭ 80 (-20.79%)
Mutual labels:  spa
laravel-react-spa
A Laravel-React SPA starter project template.
Stars: ✭ 94 (-6.93%)
Mutual labels:  spa
spaq
Template for quickly setting up an SPA
Stars: ✭ 45 (-55.45%)
Mutual labels:  spa
atrodam
AtroDAM is an open-source digital asset management system (DAM) of a new generation.
Stars: ✭ 45 (-55.45%)
Mutual labels:  spa
adonisjs-create-react-app
Adonisjs + Create React App Boilerplate
Stars: ✭ 22 (-78.22%)
Mutual labels:  spa
vue-seo-friendly-spa-template
Vue.js PWA/SPA template initially scaffolded with vue-cli and configured for SEO. Makes use of prerendering and other techniques/packages in order to achieve a perfect "Lighthouse Score".
Stars: ✭ 41 (-59.41%)
Mutual labels:  spa
aspnet-core-vuejs-template
ASP.NET Core / Vue.js SPA Template App
Stars: ✭ 75 (-25.74%)
Mutual labels:  spa
laravel-api
A base install of Laravel with Sanctum & Fortify, set up as an API.
Stars: ✭ 58 (-42.57%)
Mutual labels:  spa
Angular-Reactive-Demo-Shop
Angular Demo Shop
Stars: ✭ 79 (-21.78%)
Mutual labels:  spa
modern-webpack-starter
🏰 A modern JavaScript starter using Webpack 4. Made in a simple way - good for learning or starting a new project without having to rollout cli-auto-builders.
Stars: ✭ 42 (-58.42%)
Mutual labels:  spa
aem-spa-project-archetype
Maven Archetype for creating new AEM SPA projects
Stars: ✭ 64 (-36.63%)
Mutual labels:  spa

nut logo

NUT Project

npm version dependencies node version build status npm downloads license

Features

  • Flexible layout mechanism
  • File-based router system
  • Customizable layouts and themes
  • Builtin markdown support
  • System events
  • Configuration management
  • Convenient hot reload during development
  • Plugin system

layout / theme HMR

hmr.gif

markdown theme HMR

markdown-theme-hmr.gif

System events

system-events.jpg

Route matching

route-match.jpg

Builtin layouts

default

ocean sakura
ocean sakura

saber

ocean sakura
ocean sakura

now

now

How to write a layout

...

How to write a plugin

A standard plugin looks like

export default {
  name: 'your-superb-plugin',
  // some special plugin need specify type,but you can ignore this in most cases
  type: 'login',
  apply( ctx = {}, options = {} ) {
    const { api, events } = ctx

    api.expose( 'method_name', () => {} )
    api.expose( 'prop', 'value' )

    events.on( 'system:before-startup', async ctx => {
      await api.axios() // do some request
      await events.pluginEmit( 'some-event', data ) // emit plugin event out
    } )
  }
}

You can expose some methods or props to application, or listen for system events, emit out some event in plugin

Using plugin

nut.config.js

module.exports = {
  plugins: {
    superb: {
      package: 'your-superb-plugin',
      enable: true,
    }
  }
}

superb is the name in current application

Use above plugin for example

// plugin exposed
ctx.use( 'superb', 'method_name' )
ctx.use( 'superb', 'prop' )

// plugin events
ctx.events.on( 'plugin:superb:some-event', async data => {} )

Get started

yarn global add @nut-project/cli
nut # develop locally
nut --prod # build for production
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].