Thorin.js is the Node.js framework that you can use to easily:

  • Boot up a pre-configured web-server, sanitize and validate all your input
  • Render static HTML files using a templating engine, compile your less & sass styles
  • Integrate centralized logging with loglet.io
  • Use secure sessions in your requests, stored in redis, MySQL or file system
  • Use already written components for some wide-spread services (Redis, ElasticSearch, Sequelize)
  • Use a centralized dispatcher to handle your redux actions via HTTP or WebSockets
  • Schedule recurring tasks that may use a redis queue to process events
  • Extend the core functionality with use-case specific plugins
  • Integrate with sconfig.io's discovery system for microservice discovery & authorization
  • And much much more...

The bootstrapping time of an application built with Thorin is dramatically reduced, as most critical decisions were made by the accumulated experience on working with large scale applications over time. The project structure is simple yet powerful, enabling you to boot up an application within minutes.

Use cases

The Thorin.js framework actually contains a single core module that is used and extended by various other components. Therefore, when we talk about a use-case, we actually talk about which components are suited for the job. Some of the use cases we had in mind can be viewed below.

  • Static HTML site with a powerful rendering engine - Enables you to use:
    • the rendering plugin to generate dynamic HTML content, using a templating engine
    • the LESS plugin to convert your less files into css files, with no additional dependencies
    • the Static HTML generator to convert all your dynamic routes and templates into static HTML files that you can upload to a CDN
  • Administration interface - A generic node application that uses:
  • E-mail processor - A small microservice app that uses:
  • Background worker - A small microservice app that processes data as a worker that uses:

You can use any combination of plugins, stores or transports to facilitate your app's need, in a microservice oriented architecture, to avoid monolithic problems in the future.

Do you have a question or is something missing?

You can always create a new issue on GitHub or contact one of the core founders by chat.