DEV Community

Alex Spinov
Alex Spinov

Posted on

Deno Deploy Has a Free Tier — Run TypeScript at the Edge With Zero Config, 100K Requests/Day

Deploying a simple API should not require Docker, Kubernetes, load balancers, and a DevOps team.

Deno Deploy gives you serverless edge functions — write TypeScript, push to GitHub, it runs globally in 35+ regions. 100,000 requests/day on the free tier. Zero configuration.

What You Get for Free

  • 100,000 requests/day — plenty for APIs and side projects
  • 100 GiB outbound transfer/month — generous bandwidth
  • 35+ edge locations — run close to your users globally
  • GitHub integration — push to deploy
  • KV storage — built-in key-value database
  • Cron jobs — scheduled tasks included
  • npm compatibility — use npm packages directly
  • Custom domains — bring your own domain with HTTPS
  • Zero cold start — V8 isolates, not containers

Quick Start (2 Minutes)

1. Write a Server

// main.ts
Deno.serve((req: Request) => {
  const url = new URL(req.url);

  if (url.pathname === "/api/hello") {
    return Response.json({ message: "Hello from the edge!", timestamp: Date.now() });
  }

  if (url.pathname === "/api/weather") {
    const city = url.searchParams.get("city") || "London";
    return Response.json({ city, temp: Math.floor(Math.random() * 30), unit: "C" });
  }

  return new Response("Not Found", { status: 404 });
});
Enter fullscreen mode Exit fullscreen mode

2. Deploy

# Install Deno
curl -fsSL https://deno.land/install.sh | sh

# Deploy (links to GitHub)
deno deploy

# Or use deployctl
deployctl deploy --project=my-api main.ts
Enter fullscreen mode Exit fullscreen mode

That is it. Your API is live at https://my-api.deno.dev — running in 35+ regions worldwide.

3. Deno KV (Built-in Database)

const kv = await Deno.openKv();

Deno.serve(async (req) => {
  const url = new URL(req.url);

  if (req.method === "POST" && url.pathname === "/api/visits") {
    const count = await kv.get(["visits"]);
    await kv.set(["visits"], (count.value as number || 0) + 1);
    return Response.json({ visits: (count.value as number || 0) + 1 });
  }

  if (url.pathname === "/api/visits") {
    const count = await kv.get(["visits"]);
    return Response.json({ visits: count.value || 0 });
  }

  return new Response("Not Found", { status: 404 });
});
Enter fullscreen mode Exit fullscreen mode

No database setup. No connection strings. KV is built into the runtime.

4. Cron Jobs

Deno.cron("daily-report", "0 9 * * *", async () => {
  const data = await fetch("https://api.example.com/metrics").then(r => r.json());
  console.log("Daily metrics:", data);
});
Enter fullscreen mode Exit fullscreen mode

Scheduled tasks without external cron services.

5. Use npm Packages

import Stripe from "npm:stripe";
import { Hono } from "npm:hono";

const app = new Hono();

app.get("/api/products", async (c) => {
  const stripe = new Stripe(Deno.env.get("STRIPE_KEY")!);
  const products = await stripe.products.list({ limit: 10 });
  return c.json(products.data);
});

Deno.serve(app.fetch);
Enter fullscreen mode Exit fullscreen mode

Full npm compatibility. No package.json, no node_modules, no bundler.

Real-World Use Case

A developer building a webhook processor told me: "I needed an endpoint that receives Stripe webhooks, validates them, and stores data. On Vercel it needed Next.js boilerplate. On Deno Deploy, it was a single 40-line file. Deployed in 2 minutes, runs in 35 regions, zero config."

Free Plan Limits

Feature Free Tier
Requests 100K/day
Outbound transfer 100 GiB/month
KV storage 1 GB
KV reads 450K/day
KV writes 45K/day
Cron jobs Yes
Custom domains Yes
Edge locations 35+
Cold starts None (V8 isolates)

The Bottom Line

For APIs, webhooks, cron jobs, and edge functions — Deno Deploy is the simplest path from code to production. No Docker, no YAML, no config files. Just TypeScript and a git push.


Need to run web scrapers on a schedule? Check out my web scraping tools on Apify — cloud-hosted scrapers with scheduling and storage.

Building something custom? Email me at spinov001@gmail.com


More Free APIs You Should Know About

Top comments (0)