New to FunctionFly? Confused about whether to "create a function" or "publish to the registry"? You're not alone. This guide explains exactly what each action does—and when to use which.
The Short Answer
When you create a function, you're building a private backend endpoint within your own workspace. When you publish to the registry, you're sharing a function with the broader FunctionFly community.
Creating a Function (Platform API)
When you create a function, you're building a private backend endpoint within your own workspace. This is the standard flow for adding custom logic to your application.
What happens:
- A new
FunctionConfigrecord is created in your tenant namespace - The function starts in
"draft"status and must be deployed to run - It counts against your bundle's function limit (e.g., Free tier = 3 functions)
- Only you can see and execute it
- No platform fee is charged
Typical workflow:
:::workflow
POST /v1/functions— Create the functionPOST /v1/functions/deploy— Deploy it (uploads code, provisions runtime)POST /v1/functions/{id}/execute— Run it when needed [/workflow]
Use cases:
- API endpoints for your SaaS application
- Custom business logic (webhooks, data transforms, auth flows)
- AI-powered features (embeddings, LLM calls, vector search)
- Scheduled jobs and background workers
Publishing to the Registry
When you publish to the registry, you're sharing a function with the broader FunctionFly community. Think of it as publishing a package to npm or a template to a marketplace.
What happens:
- A
RegistryFunctionrecord is created with a public profile - Source code/WASM is uploaded to artifact storage
- A
RegistryFunctionVersionentry is created for version tracking - The function becomes discoverable via search and browse
- Users can remix it (create a personal copy)
- Trust and verification badges may be applied (FXCERT, DRE scores)
- Ratings and reviews are enabled
- A platform fee applies ($2.99 for new functions, $0.99 per version update)
Version lifecycle:
Registry functions support full version management:
- Set
latestandstablealiases - Rollback to previous versions
- Track changelogs per version
Execution:
Published functions use the @{author}/{name} namespace pattern:
POST /v1/@functionfly/image-resizer?version=2.1.0
Use cases:
- Open-source function templates for the community
- Commercial functions you want to sell
- Building a personal brand as a function author
- Creating starter templates others can remix
Key Differences at a Glance
@{author}/{name}When to Use Which
Stick with creating a function if:
Publish to the registry if:
Under the Hood
The two systems are completely separate and map to different database tables and API endpoints:
POST /v1/functionsPOST /v1/registry/publishfunctions.HandleCreateFunctionregistry.HandlePublishfunctions tableregistry_functions + registry_function_versionsReady to build? Head to your dashboard to create your first function, or visit the registry to explore what the community has built.