Gati - Current State (November 15, 2025)
Package Versions
| Package | Version | Status | Published | CI/CD |
|---|---|---|---|---|
@gati-framework/core | 0.4.3 | ✅ Stable | ✅ npm | ✅ Passing |
@gati-framework/types | 0.4.3 | ✅ Stable | ✅ npm | ✅ Passing |
@gati-framework/runtime | 2.0.3 | ✅ Stable | ✅ npm | 🚧 Excluded |
@gati-framework/cli | 1.0.7 | ✅ Stable | ✅ npm | 🚧 Excluded |
gatic | 0.1.6 | ✅ Stable | ✅ npm | 🚧 Excluded |
@gati-framework/cloud-aws | 1.0.0 | ✅ Stable | ✅ npm | 🚧 Excluded |
@gati-framework/playground | 1.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:
npx gatic create my-appFeatures:
- ✅ 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
cd my-app
pnpm devFeatures:
- ✅ 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:
// 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
pnpm buildFeatures:
- ✅ TypeScript compilation
- ✅ Production optimizations
- ✅ Type checking
- ✅ Source maps
- ✅ Output to
dist/
5. Deployment (Local Kubernetes)
gati deploy dev --localFeatures:
- ✅ 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)
npm install @gati-framework/cloud-awsFeatures:
- ✅ 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)
npm install @gati-framework/playgroundFeatures:
- ✅ Real-time request flow visualization
- ✅ WebSocket-based debugging interface
- ✅ Handler execution tracking
- ✅ Performance metrics
- ✅ Interactive testing UI
Advanced Options:
# 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-runGenerated 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 documentationKey Improvements in Recent Versions
Runtime v2.0.0 (Published Nov 10, 2025)
Fixed Dependencies
- Changed
@gati-framework/corefromworkspace:*to^0.4.1 - Resolves installation issues for user projects
- Changed
Simplified Handler API
- Standard Express.js
reqandresobjects - Removed explicit
gctxandlctxparameters - Context available via
req.gatiContextwhen needed
- Standard Express.js
Better Entry Point
- Explicit
createApp()initialization loadHandlers()for auto-discovery- Graceful shutdown hooks
- Explicit
CLI v1.0.0 (Ready to Publish)
Fixed Template Generation
- Updated to use
@gati-framework/runtime@^2.0.0 - Correct package versions in generated projects
- Updated to use
Enhanced Deployment
- Local Kubernetes deployment with kind
- Health check validation
- Port forwarding support
- Auto-tagging
Better Dev Experience
- Hot reload improvements
- Better error messages
- Environment variable support
Documentation Updates
New/Updated Docs
GatiC Guide - NEW
- Introduction to GatiC
- Installation and usage
- Command options
- Troubleshooting
- Examples
Getting Started - UPDATED
- Updated for Runtime v2.0.0
- New handler examples
- GatiC usage
- Current project structure
Main README - UPDATED
- GatiC introduction
- Updated Quick Start
- Current package versions
- M1 marked as complete
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
- Create changeset:
pnpm changeset - Version packages:
pnpm changeset version - Commit and push to trigger release workflow
- Automated publishing to npm with GitHub releases
What's Next (In Progress)
M2: Multi-Cloud Support (Target: 3-5 days)
Priority Tasks:
AWS EKS Deployment (1-2 days)
- EKS cluster provisioning
- VPC and networking
- Load balancer configuration
- IAM role setup
GCP GKE Deployment (1 day)
- GKE cluster provisioning
- Cloud Load Balancing
- VPC configuration
Azure AKS Deployment (1 day)
- AKS cluster provisioning
- Azure Load Balancer
- Virtual Network setup
Unified Cloud Abstraction (0.5 days)
- Common cloud provider interface
- Provider detection
- Configuration management
M2: Observability Stack (Target: 1 day)
Prometheus Integration
- Metrics endpoint
- Custom metrics
- Resource monitoring
Loki Integration
- Log aggregation
- Search and filtering
- Retention policies
Request Tracing
- Development mode: ON
- Production mode: OFF
- Trace ID generation
M2: Production Hardening (Target: 1 day)
Secret Management
- AWS Secrets Manager
- GCP Secret Manager
- Azure Key Vault
Config Validation
- Environment-specific validation
- Required fields checking
- Type validation
Auto-Scaling Tuning
- HPA configuration
- Resource limits
- Scaling policies
Zero-Downtime Deployment
- Rolling update verification
- Readiness probe tuning
- Rollback testing
Breaking Changes Log
Runtime v1.x → v2.0.0
Handler Signature:
// v1.x (conceptual)
const handler = (req, res, gctx, lctx) => { ... }
// v2.0.0
const handler: Handler = (req, res) => { ... }
// Context available via req.gatiContext if neededMigration: 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
Markdown Linting Warnings
- Various MD lint warnings in documentation
- Does not affect functionality
- Can be fixed incrementally
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
- Documentation: docs/
- GitHub: github.com/krishnapaul242/gati
- Issues: github.com/krishnapaul242/gati/issues
- Discussions: github.com/krishnapaul242/gati/discussions
Commands Summary
# 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 checkLast Updated: November 15, 2025
Status: Production Ready (v1.0.7)
Next Milestone: M2 - Multi-Cloud Support (AWS Complete ✅)