Fork me on GitHub

Gemstone is an opinionated Open Source licensed Technology Stack for Frontend and/or Backend application development in JavaScript, based on the essential software architecture paradigm Component Orientation, the important software architecture principle Separation of Concern and the virtue of reducing a project to its domain-specific aspects as much as possible.

Through this, Gemstone targets the strong development-time scalability of applications, which is already nice for small apps, but really essential for large industrial information systems.

Technically, Gemstone is a collection of NPM packages which provide a built-time and run-time integration layer for some major JavaScript tools, frameworks and libraries — the gemstones of the JavaScript world !

  • Install Node.js runtime environment.

  • Install Gemstone CLI:
    $ npm install -g gemstone

  • Generate meta, frontend and backend projects:
    $ gemstone generate-meta-project
    $ gemstone generate-frontend-project
    $ gemstone generate-backend-project

  • Build and run sample application:
    $ cd example
    $ npm install
    $ npm run dev

If you want to see Gemstone in practice, check out the Units and Persons (UnP) example application.
Frontend Technology

On the Frontend side, Gemstone targets the desktop and mobile browser environments Mozilla Firefox, Google Chrome, Apple Safari and Microsoft Edge and the desktop runtime environment Github Electron.

Under built-time, Gemstone primarily utilizes the asset bundler Webpack, the JavaScript linter ESLint, the JavaScript transpiler Babel, the HTML linter HTMLHint, the HTML transpiler PostHTML, the CSS linter StyleLint and the CSS transpiler PostCSS.

Under run-time, Gemstone is primarily based on the component system ComponentJS, the view mask rendering framework VueJS, the utility library jQuery and the Internationalization library I18Next and the programming language ECMAScript.

Backend Technology

On the Backend side, Gemstone targets the server environment NodeJS.

Under built-time, Gemstone primarily utilizes the JavaScript linter ESLint and the JavaScript transpiler Babel.

Under run-time, Gemstone is primarily based on the component system Microkernel, the networking framework HAPI, the data projection engine GraphQL, the object-relational mapping framework Sequelize, the embedded RDBMS SQLite and the programming language ECMAScript.