Welcome
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.