# thinkjs/thinkjs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/thinkjs-thinkjs).**

5,272 stars · 615 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/thinkjs/thinkjs
- Homepage: https://thinkjs.org/
- awesome-repositories: https://awesome-repositories.com/repository/thinkjs-thinkjs.md

## Description

ThinkJS is a server-side web framework designed for building applications on the Node.js runtime. It serves as a development platform that supports TypeScript and the latest ECMAScript standards to create stable and maintainable backend services.

The framework employs a layered application architecture that separates concerns into controller, service, and model tiers. It utilizes a dependency-injected service model to manage singleton services and a middleware-based system for request handling and route dispatching.

Development is supported by a build pipeline that transpiles modern JavaScript features and leverages static typing to catch errors during the build process.

## Tags

### Web Development

- [Node.js Server Frameworks](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/node-js-server-frameworks.md) — Provides an architectural framework specifically designed for building scalable and maintainable Node.js server applications.
- [Typed Server Frameworks](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/node-js-server-frameworks/typed-server-frameworks.md) — Offers a typed development environment for building stable backend applications on the Node.js runtime.
- [Request Middleware](https://awesome-repositories.com/f/web-development/request-middleware.md) — Utilizes a middleware-based system to process incoming HTTP requests through a sequence of isolated functions.
- [Request Routing](https://awesome-repositories.com/f/web-development/request-routing.md) — Maps incoming URL patterns to specific controller methods using a centralized routing table.
- [Server-Side Application Toolkits](https://awesome-repositories.com/f/web-development/server-side-application-toolkits.md) — Provides a comprehensive toolkit for constructing stable and maintainable server-side applications and microservices. ([source](https://cdn.jsdelivr.net/gh/thinkjs/thinkjs@main/README.md))
- [Server-Side Frameworks](https://awesome-repositories.com/f/web-development/server-side-frameworks.md) — Serves as a comprehensive server-side framework for defining business logic and backend services.

### Software Engineering & Architecture

- [Backend Engineering](https://awesome-repositories.com/f/software-engineering-architecture/backend-engineering.md) — Implements backend engineering practices using TypeScript to ensure type safety and better tooling for server-side systems.
- [Layered Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/layering-presentation/layered-architectures.md) — Employs a layered architecture that separates concerns into controller, service, and model tiers to decouple business logic from routing.
- [Service Injection Patterns](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/dependency-injection/systems/service-injection-patterns.md) — Implements a dependency-injection system to manage the lifecycle and sharing of singleton services across application components.
- [Static Type Systems](https://awesome-repositories.com/f/software-engineering-architecture/static-type-systems.md) — Integrates TypeScript's static type system to catch errors at compile time and improve backend code maintainability.

### Programming Languages & Runtimes

- [ECMAScript Standard Applications](https://awesome-repositories.com/f/programming-languages-runtimes/ecmascript-standard-applications.md) — Supports the latest ECMAScript standards to allow the use of modern language features in server-side development.
- [ES Module to CommonJS Converters](https://awesome-repositories.com/f/programming-languages-runtimes/module-organization/es-module-bundling/es-module-to-commonjs-converters.md) — Provides a build pipeline that transpiles modern ES module syntax into CommonJS for compatibility with the Node.js runtime.

### Part of an Awesome List

- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Framework supporting ES2015+, WebSockets, and REST APIs.
