Base44 via webhook
Receive RankPine articles in a Base44 backend function, upsert an Article entity by RankPine ID, and keep the app's discovery route current.
Base44 connects to RankPine via webhook. The Base44 app gets one backend function and an idempotent Article entity update; RankPine continues to use its single Webhook / REST publisher.
Plan and backend requirement
Base44 documents backend functions and per-app Secrets as a Builder-plan feature. A frontend-only export cannot safely hold this webhook secret.
Before you start
- Decide whether to reuse an existing article entity or add a small one.
- Make
rankpineIdunique and use it for all creates and updates. - Know which page renders an article slug and how the app's sitemap includes dynamic article pages.
Base44's current app-editor workflow stores credentials under Dashboard →
Secrets, exposes functions under Dashboard → Code → Functions, and
publishes from the top-right Publish panel. Base44 backend functions also
have direct URLs at /functions/<function-name>. See the official
integration workflow,
project structure,
backend functions,
and publishing guide.
1. Add the function and entity upsert
Download the RankPine receiver template. Add it to the function's server-side files and expose a function named rankpineWebhook. Direct HTTP calls have no Base44 user context, so the storage adapter must use the service role only after the HMAC check succeeds.
Copy-paste build instruction
Add RankPine publishing to this existing Base44 app via one backend webhook function. Preserve unrelated pages, entities, permissions, functions, design, and integrations.
Create or reuse an Article entity with a unique rankpineId. Add a backend function named rankpineWebhook using https://rankpine.com/docs/templates/rankpine-webhook-receiver.ts. Read RANKPINE_WEBHOOK_SECRET from the app's Secrets at request time. Because direct webhook calls have no Base44 user session, verify the exact raw-body HMAC and five-minute freshness window before using asServiceRole for any entity operation.
The adapter must upsert by article.id and preserve title, slug, HTML, Markdown, meta description, language, translation group, word count, SEO score, sources, publishedAt, scheduledFor, featuredImage, and inline images. Return stable { id, url } using the app's public article route. Wire refreshSitemap to the sitemap or documented search-discovery mechanism this app actually uses. Do not claim RankPine updates Base44's sitemap automatically.
Keep the function publicly callable but do not weaken any other function or entity permission. Add tests for HMAC, stale requests, validation, and same-ID update behavior. Show all entity/function changes and the final /functions/rankpineWebhook endpoint. Do not publish the app for me.2. Set the secret
- Open Dashboard → Secrets → Add Secret.
- Add
RANKPINE_WEBHOOK_SECRETwith a long random value. - Read it only in the function. If using the code-first Base44 backend runtime,
call
secrets.get("RANKPINE_WEBHOOK_SECRET")inside the request handler.
The code-first alternative is base44 secrets set, but do not put a production
secret in a shell history or committed .env file.
3. Publish and obtain the URL
Publish the app's latest changes. With rankpineWebhook deployed, the official
Base44 function URL shape is:
https://your-app.base44.app/functions/rankpineWebhookUse the exact built-in/custom domain shown by Base44. Backend functions can also be deployed through the Base44 CLI, but this guide does not require a public template or separate repository.
4. Connect via webhook
Open Settings → Integrations → Website builders via webhook → Base44 in RankPine. Choose Connect via webhook, paste the function URL and identical secret, and leave HTML and Markdown enabled.
5. Verify create, update, and discovery
Deliver a test article and confirm the Base44 function log, Article entity,
public URL, and sitemap/discovery output. Deliver an edit with the same
article.id; it must update the same entity and return the same stable ID. A
successful Base44 function call alone does not prove the public article page or
sitemap is correct.
Rocket.new via webhook
Add a RankPine server route to a Rocket.new web app, configure separate staging and production secrets, and launch a verified receiver.
Vercel v0 via webhook
Add a signed Next.js Route Handler to a v0 project, store the secret in Vercel, and deploy the existing app without replacing its code.