In modern software development, the distance between writing a piece of business logic and deploying it as a production-ready, reliable service can be vast. You write your core function—the code that delivers actual value—and then the real "work" begins: setting up servers, configuring API gateways, writing validation layers, managing environments, and orchestrating deployments. This boilerplate is not just tedious; it's a source of bugs and a drain on productivity.
What if you could skip all that? What if you could transform your business logic directly into a typesafe, production-ready API, and focus solely on the code that matters?
Welcome to Functions.do. We're excited to introduce our SDK, built on a simple yet powerful philosophy: you should ship reliable APIs, not spend your time managing infrastructure.
Let's be honest. Writing a function is the easy part. Turning it into a robust, callable service is where the complexity lies. A typical serverless deployment workflow might involve:
Every step adds another layer of abstraction and another potential point of failure. You end up spending more time on the plumbing than on the application itself.
Functions.do fundamentally changes this dynamic. We’re not just another FaaS provider; we are an agentic workflow platform designed to turn your code into intelligent, durable software services. Our SDK is the bridge that makes this possible, abstracting away the underlying complexity.
The core idea is Business-as-Code. Your functions aren't just stateless scripts; they are versioned, typesafe "agents" that you can execute and compose through a simple API.
Let's see it in action. Imagine you need to score a sales lead based on a few data points.
import { Function } from 'functions.do';
// Define the input type for your function
// This ensures data integrity from end to end.
interface Lead {
companySize: number;
industry: string;
hasBudget: boolean;
}
// Create a function agent on the Functions.do platform.
// 'score-lead-v1' is a unique, versioned identifier for this service.
const scoreLead = Function<Lead>('score-lead-v1');
// Execute the function with fully typesafe inputs.
// Your IDE and our platform will enforce this contract.
const { score, reason } = await scoreLead({
companySize: 250,
industry: 'SaaS',
hasBudget: true,
});
console.log(`Lead Score: ${score}/100 - ${reason}`);
What just happened here?
The real power of Functions.do is revealed when you build agentic workflows. A single function is useful, but most business processes involve multiple steps.
With Functions.do, you can chain these agents together to create sophisticated, multi-step processes. Our platform manages the state, execution order, and error handling between each step.
For example, your scoreLead function could be the start of a larger workflow:
Composing this on our platform is as simple as calling one function from another. We handle the orchestration, allowing you to build complex systems with simple, decoupled code.
The paradigm of serverless computing promised to free developers from managing servers. Functions.do delivers on that promise by providing a truly code-driven workflow for building and shipping reliable, typesafe functions as robust services.
Ready to stop shipping infrastructure and start shipping value?
Explore the Functions.do Documentation and start building your first agentic workflow in minutes.