What are Edge Functions
Edge Functions are small pieces of code that run on the server instead of in the browser. Use them for anything you can’t (or shouldn’t) do client-side:- Payment processing — Stripe, PayPal, etc.
- Sending emails — confirmations, notifications, newsletters
- API integrations — HubSpot, Zendesk, custom APIs
- Protected operations — anything that needs a secret API key
Creating Functions with OptiDev Agent
Describe what you need and OptiDev Agent writes the function, wires up any required services, and deploys it.“Create an API endpoint that accepts credit card payments with Stripe and saves the order to the database”
“Send a welcome email when a new user signs up”
“Fetch customer data from HubSpot when given an email”
The Edge Functions Tab
Split into two panels: Functions on the left, Secrets on the right (stacked on mobile). The function panel has two sections:- Workspace Functions — code in your project files. Each row shows a Live badge (green) if deployed, or Not deployed (gray).
- Deployed Functions — what’s currently running. Each row shows the version, last-updated date, and a copy-able public URL.
Deploying a Function
Click Deploy (or Redeploy if you’ve changed the code) next to a workspace function. Takes a few seconds. Or just ask the agent: “Deploy my payment function.” When OptiDev Agent creates a function, it usually deploys it automatically right after.Viewing Logs
Click Logs on any deployed function to jump to the Logs tab pre-filtered to that function. You can switch between Invocations (per-request details — method, status, duration) and Console logs. See Logs for more.Deleting a Function
Click the trash icon on a deployed function row and confirm.Secrets
The right panel of the Edge Functions tab is where you store sensitive values your functions need — API keys, third-party tokens, connection strings. Secrets are encrypted at rest and only available to server-side code, never the browser.Adding secrets
The Add new form is always visible. Type a name (auto-uppercased, e.g.STRIPE_SECRET_KEY), paste the value (use the eye icon to peek), click Add row to stage more in the same save, then click Save. Names must be UPPERCASE_WITH_UNDERSCORES_AND_DIGITS and can’t be reused.
Deleting a secret
Click the trash icon next to a secret and confirm.Secrets are write-only. You can see the name and last-updated date, but not the value. To change a value, delete and re-add.
Auto-available variables
SUPABASE_URL and SUPABASE_ANON_KEY are always available inside Edge Functions — no need to add them as secrets. For privileged operations (admin DB access, user management), let OptiDev Agent write the code so you never have to handle those credentials yourself.
Using a secret
Just reference the name when asking the agent: “Create a Stripe payment function using my STRIPE_SECRET_KEY secret.” The agent reads it viaDeno.env.get('STRIPE_SECRET_KEY') so the value stays server-side.
Common Use Cases
- Webhook handlers — “Receive Stripe webhooks and update order status.”
- Form submissions — “Receive contact form submissions and send them to my email.”
- Data processing — “Take a CSV upload and import it into the products table.”
- Scheduled tasks — “Run daily to send appointment reminder emails.”
- Third-party sync — “Sync new customers to my Mailchimp list.”
For Developers
Technical Reference
Technical Reference
Function file structure
Edge Functions are TypeScript/JavaScript on Deno. Each lives at:Function URL
Invoking from your app
Accessing secrets
Logging
console.log(), console.error(), etc. show up in the Logs tab under Console Logs.CORS
The sample function template includes CORS headers. Reuse that pattern for any function called from the browser.Naming conventions
UseUPPERCASE_WITH_UNDERSCORES. Be descriptive (STRIPE_SECRET_KEY, not SK) and prefix with the service (HUBSPOT_API_KEY).