service.as
Preview MDXLD as a running service
service.as - Service Preview
Preview MDXLD service definitions as live, running services through service.as.
What is service.as?
service.as deploys MDXLD documents with $type: Service as actual Cloudflare Workers, exposing endpoints and functionality defined in the document.
Basic Example
---
$type: Service
$id: https://services.do/email-sender
name: email-sender
endpoints:
- POST /send
- GET /status
---
# Email Sender Service
export async function POST_send({ request, env }) {
const { to, subject, body } = await request.json()
await env.EMAIL.send({
to,
subject,
body
})
return { success: true }
}
export async function GET_status() {
return { status: 'operational' }
}Runs at: https://service.as/email-sender
Features
- Live Endpoints: Functions execute on request
- Edge Deployment: Global distribution
- Environment Variables: Secure config
- Bindings: KV, R2, D1, Queues, etc.
- Middleware: Request/response processing
- Monitoring: Built-in observability
Service Definition
---
$type: Service
name: api-service
main: src/index.ts
compatibility_date: 2025-10-27
env:
API_KEY: ${API_KEY}
bindings:
- type: KV
name: CACHE
- type: D1
name: DB
routes:
- pattern: example.com/api/*
---Endpoints
Define endpoints as exported functions:
export async function GET({ request }) {
return new Response('Hello')
}
export async function POST({ request, env }) {
const data = await request.json()
await env.DB.put('key', data)
return { success: true }
}Preview URL
Try It
# Deploy service
mdxe deploy email-service.mdx --preview service.as
# Test endpoint
curl https://service.as/email-service/send -X POST \
-d '{"to":"[email protected]","subject":"Test"}'