Skip to content

IGNISEnterprise APIs at Hono Speed

Architecture that scales, performance that flies. Enterprise patterns, raw performance speed, DI Powered.

IGNIS

Quick Start

bash
# Install dependencies
bun add hono @hono/zod-openapi @scalar/hono-api-reference @venizia/ignis
bun add -d typescript @types/bun

# Create src/index.ts with your first API
typescript
import { BaseApplication, BaseController, controller, get, HTTP, jsonContent, SwaggerComponent } from '@venizia/ignis';
import { z } from '@hono/zod-openapi';

// 1. Define your controller
@controller({ path: '/hello' })
class HelloController extends BaseController {
  constructor() {
    super({ scope: 'HelloController', path: '/hello' });
  }

  override binding() {} // Required: register additional routes or dependencies here

  @get({
    configs: {
      path: '/',
      responses: {
        [HTTP.ResultCodes.RS_2.Ok]: jsonContent({
          schema: z.object({ message: z.string() }),
        }),
      },
    },
  })
  sayHello(c) {
    return c.json({ message: 'Hello from Ignis! 🔥' });
  }
}

// 2. Create and configure your application
class App extends BaseApplication {
  getAppInfo() {
    return { name: 'my-app', version: '1.0.0', description: 'My Ignis App' };
  }
  staticConfigure() {}
  preConfigure() {
    this.component(SwaggerComponent);  // API docs at /doc/explorer
    this.controller(HelloController);
  }
  postConfigure() {}
  setupMiddlewares() {}
}

// 3. Start the server
const app = new App({
  scope: 'App',
  config: { host: '0.0.0.0', port: 3000, path: { base: '/api' } },
});
app.start();
bash
# Run it
bun run src/index.ts

# Visit http://localhost:3000/api/hello
# API docs at http://localhost:3000/doc/explorer

Ready for a step-by-step guide? Follow the 5-minute quickstart →

When to Use Ignis

✅ Perfect For

  • SaaS backends — Multi-tenant, complex business logic
  • E-commerce APIs — Products, orders, payments
  • Enterprise apps — Teams need clear patterns
  • Growing projects — 10+ endpoints that need structure
  • REST APIs — Full CRUD with validation & docs
  • Real-time apps — WebSocket support built-in

❌ Consider Alternatives

  • Simple webhooks — Use plain Hono
  • 3-5 endpoint APIs — Ignis adds overhead
  • Quick prototypes — Start with Hono first
  • Serverless functions — Hono alone is lighter
  • Static sites — Use Astro or Next.js
  • No TypeScript — Ignis requires TS