Introduction to NovaServe
Learn what NovaServe is, how it works, and why it exists. A TypeScript-native serverless framework with compiler-driven infrastructure.
NovaServe is 100% open source under the Apache-2.0 license. Free forever for independent builders, developers, and open-source projects.
NovaServe is a TypeScript-native serverless framework that treats cloud infrastructure as a compilation target. You declare resources — API endpoints, storage buckets, message queues — directly in TypeScript, and the NovaServe compiler transforms your code into deterministic cloud deployments.
The Problem NovaServe Solves
Traditional cloud development forces a split between application code (TypeScript) and infrastructure configuration (YAML, HCL, JSON). This creates:
- Context switching — duplicating resource names across code and config files
- Over-privileged IAM — developers resort to wildcard permissions (
s3:*) instead of precise scoping - Runtime-only errors — mismatched environment variables only surface at deploy time
- State drift — manual cloud console changes bypass version control
How NovaServe Works
NovaServe eliminates the infrastructure/application split:
- Application-defined infrastructure — cloud resources are declared in TypeScript using type-safe primitives
- Compiler-driven static analysis — the AST parser understands which functions touch which resources
- Automated IAM synthesis — exact permissions (
s3:PutObject) are inferred from code, not manually written - Multi-cloud IR — a provider-neutral intermediate representation enables targeting AWS, Cloudflare, or Docker from one codebase
- SHA-256 state locking — deployments are cryptographically locked; drift is detected and remediated
import { defineApp, api, storage, queue } from "novaserve";
export const app = defineApp({ name: "my-app", region: "us-east-1" });
// Declare cloud resources in TypeScript
export const uploads = storage("user-uploads");
export const taskQueue = queue("task-processing");
// HTTP endpoint with automatic IAM scoping
export const createTask = api.post("/tasks", async (req) => {
const task = await req.json();
await uploads.put(`task-${task.id}.json`, JSON.stringify(task));
await taskQueue.push(task);
return { status: "created", taskId: task.id };
});Feature Comparison
| Feature | NovaServe | Terraform | Pulumi / CDK |
|---|---|---|---|
| Language | Native TypeScript | HCL | TypeScript / Python / Go |
| Model | Application-defined compiler | Infrastructure-only | Infrastructure-only imperative |
| IAM Generation | Automated AST inference | Manual JSON/HCL | Manual construct bindings |
| Local Emulation | Built-in (nova dev) | Third-party | Limited |
| Multi-Cloud IR | Yes (Nova IR) | Provider-specific | Provider-specific |
Next Steps
- Install NovaServe → — set up the CLI on your machine
- Quick Start Guide → — deploy your first app in 5 minutes
- Compiler Pipeline → — understand how AST transformation works