Your Docusaurus site did not load properly.

A very common reason is a wrong site baseUrl configuration.

Current configured baseUrl = / (default value)

We suggest trying baseUrl =


Node.js framework for building high performance scalable server side applications

Appolo provides clean and modern architecture which allows developers to build highly testable, scalable, loosely coupled, and easily maintainable applications

Get StartedView Source

The right way to write TypeScript applications



Define and reuse modules and dependencies.



Built from the ground up for performance and scale.



easily extend your application with custom modules.



Better project code organization approach.

For TypeScript

Built with latest JavaScript features using TypeScript.


Dependency Injection

Powered by powerful Dependency injection makes your code elegant, easy to maintain and test.


Zero external dependencies

All appollo core modules build for performance with zero external dependencies


Developer Friendly

Built for developer joy without sacrificing performance and stability.

The fastest way to get started

Checkout the examples page for full examples and use cases.

Install using npm or yarn

npm i --save @appolo/core

Create app

import { App } from "@appolo/node";
await App.create().launch();

Define your controllers

import { define, singleton, inject,factory,alias } from "@applo/inject";
import { controller, post,body } from "@applo/route"
export class MailController {
@inject() private mailService:MailService;
public async sendMail(@body() mail: Mail) {
return mailService.send(message);

Define your services

export class MailService {
@inject() private mailProvider:IMailProvider;
public async send(message: Mail) {
//do some logic
message.from = ""
await mailProvider.send(message);

Define your factories

export class MailProvider {
@inject() private env:IEnv;
@alias("IMailProvider") private mailProviders:IMailProvider[]};
public async get(message: Mail) {
return this.mailProviders.find(provider=>provider.type==this.env.mailProvider);

Checkout the more examples