Skip to content

Gati - Current State (November 15, 2025)

Package Versions

PackageVersionStatusPublishedCI/CD
@gati-framework/core0.4.3✅ Stable✅ npm✅ Passing
@gati-framework/types0.4.3✅ Stable✅ npm✅ Passing
@gati-framework/runtime2.0.3✅ Stable✅ npm🚧 Excluded
@gati-framework/cli1.0.7✅ Stable✅ npm🚧 Excluded
gatic0.1.6✅ Stable✅ npm🚧 Excluded
@gati-framework/cloud-aws1.0.0✅ Stable✅ npm🚧 Excluded
@gati-framework/playground1.0.0✅ Stable✅ npm🚧 Excluded

Note: Only core and types packages are currently in CI/CD. Other packages are excluded due to TypeScript strict mode issues but are functional and published.

What's Working Now

1. Project Creation (GatiC)

Create new Gati applications with one command:

bash
npx gatic create my-app

Features:

  • ✅ Interactive prompts for project setup
  • ✅ Two templates: Default (full-featured) and Minimal
  • ✅ Automatic dependency installation
  • ✅ Production-ready project structure
  • ✅ Docker and Kubernetes manifests included
  • ✅ Health check endpoints
  • ✅ Comprehensive README

2. Development Experience

bash
cd my-app
pnpm dev

Features:

  • ✅ Hot module replacement (file watching)
  • ✅ Auto-restart on code changes
  • ✅ Environment variable loading (.env)
  • ✅ Clear error messages
  • ✅ Fast startup (<2 seconds)

3. Runtime (@gati-framework/runtime v2.0.0)

Core Features:

  • ✅ Express.js-based HTTP server
  • ✅ Handler auto-discovery via loadHandlers()
  • ✅ Explicit app initialization with createApp()
  • ✅ Graceful shutdown with cleanup
  • ✅ Structured logging (Pino)
  • ✅ Request/response handling
  • ✅ Query parameter support
  • ✅ JSON body parsing

API Changes in v2.0.0:

typescript
// Before (conceptual)
const handler = (req, res, gctx, lctx) => { ... }

// After (v2.0.0)
const handler: Handler = (req, res) => {
  // Express.js compatible
  const name = req.query.name;
  res.json({ message: 'Hello' });
}

4. Production Build

bash
pnpm build

Features:

  • ✅ TypeScript compilation
  • ✅ Production optimizations
  • ✅ Type checking
  • ✅ Source maps
  • ✅ Output to dist/

5. Deployment (Local Kubernetes)

bash
gati deploy dev --local

Features:

  • ✅ kind cluster auto-creation
  • ✅ Docker image build
  • ✅ Image loading into kind
  • ✅ Kubernetes manifest generation
  • ✅ Deployment with health checks
  • ✅ Rollout monitoring
  • ✅ Port-forwarding support
  • ✅ Namespace management

6. AWS Cloud Deployment (@gati-framework/cloud-aws v1.0.0)

bash
npm install @gati-framework/cloud-aws

Features:

  • ✅ EKS cluster management
  • ✅ Application Load Balancer integration
  • ✅ Secrets Manager support
  • ✅ IAM role automation
  • ✅ Multi-AZ high availability

7. Visual Debugging (@gati-framework/playground v1.0.0)

bash
npm install @gati-framework/playground

Features:

  • ✅ Real-time request flow visualization
  • ✅ WebSocket-based debugging interface
  • ✅ Handler execution tracking
  • ✅ Performance metrics
  • ✅ Interactive testing UI

Advanced Options:

bash
# With port forwarding
gati deploy dev --local --port-forward

# Custom health check
gati deploy dev --local --health-check-path /health

# Custom timeout
gati deploy dev --local --timeout 240

# Auto-tag images
gati deploy dev --local --auto-tag

# Dry run (generate manifests only)
gati deploy dev --dry-run

Generated Project Structure

When you run npx gatic create my-app, you get:

my-app/
├── src/
│   ├── index.ts              # App entry point (createApp + loadHandlers)
│   ├── handlers/
│   │   ├── hello.ts          # Example handler
│   │   └── health.ts         # Health check endpoint
│   └── modules/              # Optional modules directory
├── tests/
│   ├── unit/                 # Unit tests
│   └── integration/          # Integration tests
├── deploy/
│   └── kubernetes/           # K8s manifests
│       ├── deployment.yaml
│       └── service.yaml
├── gati.config.ts            # Gati configuration
├── package.json              # Dependencies
├── tsconfig.json             # TypeScript config
├── Dockerfile                # Production Docker image
├── docker-compose.yml        # Local Docker Compose
├── .env.example              # Environment template
├── .gitignore
├── .dockerignore
└── README.md                 # Project documentation

Key Improvements in Recent Versions

Runtime v2.0.0 (Published Nov 10, 2025)

  1. Fixed Dependencies

    • Changed @gati-framework/core from workspace:* to ^0.4.1
    • Resolves installation issues for user projects
  2. Simplified Handler API

    • Standard Express.js req and res objects
    • Removed explicit gctx and lctx parameters
    • Context available via req.gatiContext when needed
  3. Better Entry Point

    • Explicit createApp() initialization
    • loadHandlers() for auto-discovery
    • Graceful shutdown hooks

CLI v1.0.0 (Ready to Publish)

  1. Fixed Template Generation

    • Updated to use @gati-framework/runtime@^2.0.0
    • Correct package versions in generated projects
  2. Enhanced Deployment

    • Local Kubernetes deployment with kind
    • Health check validation
    • Port forwarding support
    • Auto-tagging
  3. Better Dev Experience

    • Hot reload improvements
    • Better error messages
    • Environment variable support

Documentation Updates

New/Updated Docs

  1. GatiC Guide - NEW

    • Introduction to GatiC
    • Installation and usage
    • Command options
    • Troubleshooting
    • Examples
  2. Getting Started - UPDATED

    • Updated for Runtime v2.0.0
    • New handler examples
    • GatiC usage
    • Current project structure
  3. Main README - UPDATED

    • GatiC introduction
    • Updated Quick Start
    • Current package versions
    • M1 marked as complete
  4. Docs Index - UPDATED

    • Current status
    • Package versions
    • Updated examples
    • Accurate feature status

CI/CD Status

✅ What's Working

  • Build Pipeline — Core and Types packages build successfully
  • Test Pipeline — All tests passing for stable packages
  • Lint Pipeline — Running but non-blocking (1660 errors to fix gradually)
  • Release Pipeline — Automated npm publishing with changesets
  • Documentation — VitePress site deployment configured

🚧 Known Issues

  • TypeScript Strict Mode — Runtime, CLI, and cloud packages have strict mode errors
  • Excluded from CI — Non-core packages temporarily excluded until strict mode issues resolved
  • Lint Warnings — 1660 errors, 403 warnings (non-blocking, can be fixed incrementally)

📦 Publishing Process

  1. Create changeset: pnpm changeset
  2. Version packages: pnpm changeset version
  3. Commit and push to trigger release workflow
  4. Automated publishing to npm with GitHub releases

What's Next (In Progress)

M2: Multi-Cloud Support (Target: 3-5 days)

Priority Tasks:

  1. AWS EKS Deployment (1-2 days)

    • EKS cluster provisioning
    • VPC and networking
    • Load balancer configuration
    • IAM role setup
  2. GCP GKE Deployment (1 day)

    • GKE cluster provisioning
    • Cloud Load Balancing
    • VPC configuration
  3. Azure AKS Deployment (1 day)

    • AKS cluster provisioning
    • Azure Load Balancer
    • Virtual Network setup
  4. Unified Cloud Abstraction (0.5 days)

    • Common cloud provider interface
    • Provider detection
    • Configuration management

M2: Observability Stack (Target: 1 day)

  1. Prometheus Integration

    • Metrics endpoint
    • Custom metrics
    • Resource monitoring
  2. Loki Integration

    • Log aggregation
    • Search and filtering
    • Retention policies
  3. Request Tracing

    • Development mode: ON
    • Production mode: OFF
    • Trace ID generation

M2: Production Hardening (Target: 1 day)

  1. Secret Management

    • AWS Secrets Manager
    • GCP Secret Manager
    • Azure Key Vault
  2. Config Validation

    • Environment-specific validation
    • Required fields checking
    • Type validation
  3. Auto-Scaling Tuning

    • HPA configuration
    • Resource limits
    • Scaling policies
  4. Zero-Downtime Deployment

    • Rolling update verification
    • Readiness probe tuning
    • Rollback testing

Breaking Changes Log

Runtime v1.x → v2.0.0

Handler Signature:

typescript
// v1.x (conceptual)
const handler = (req, res, gctx, lctx) => { ... }

// v2.0.0
const handler: Handler = (req, res) => { ... }
// Context available via req.gatiContext if needed

Migration: Update handler signatures to use Express.js standard

Impact: All handlers need updating, but simpler API

CLI v0.x → v1.0.0

Package Versions:

  • Generated projects now use @gati-framework/runtime@^2.0.0
  • Fixed dependency resolution issues

Migration: Regenerate projects or manually update package.json

Impact: Existing generated projects may need dependency updates

Known Issues

Non-Blocking

  1. Markdown Linting Warnings

    • Various MD lint warnings in documentation
    • Does not affect functionality
    • Can be fixed incrementally
  2. Two Flaky Tests

    • Network-related test failures (intermittent)
    • Core functionality unaffected
    • Low priority fix

User-Facing (Important)

None currently identified in core functionality.

Support & Resources

Commands Summary

bash
# Create new project
npx gatic create my-app

# Development
cd my-app
pnpm dev                    # Start dev server with hot reload
pnpm build                  # Build for production
pnpm start                  # Start production server
pnpm test                   # Run tests
pnpm typecheck              # Type checking

# Deployment
gati deploy dev --local                    # Deploy to local K8s
gati deploy dev --local --port-forward     # With port forwarding
gati deploy dev --local --auto-tag         # With auto-tag
gati deploy dev --dry-run                  # Generate manifests only

# Testing
curl http://localhost:3000/api/hello       # Test handler
curl http://localhost:3000/health          # Test health check

Last Updated: November 15, 2025
Status: Production Ready (v1.0.7)
Next Milestone: M2 - Multi-Cloud Support (AWS Complete ✅)

Released under the MIT License.