For vibe coders
Your app, posting.
Paste one prompt into Lovable, Bolt, Replit or v0 and your app can post to your social accounts. The key stays in your builder’s secrets; the browser never sees it.
prompt.txt
Add a “Share” button that posts the selected update to my social accounts. Create a server-side function that sends POST https://socialhelper.app/api/v1/posts with the header “Authorization: Bearer ” followed by the secret SOCIALHELPER_API_KEY, and a JSON body with “text” and “accounts”. Load the account IDs from GET https://socialhelper.app/api/v1/accounts. Never put the API key in client-side code.
The pattern
Three pieces, five minutes.
Every builder works the same way: a secret, a server function, one API call.
-
1
Store your key as a secret
Create a key in the dashboard and save it as SOCIALHELPER_API_KEY in your builder’s secrets.
-
2
Add a server function
It reads the secret, calls POST /api/v1/posts and returns the result. The browser only talks to your function.
-
3
Call it from your UI
Your share button sends the text and account IDs to the function. Load the IDs once from GET /api/v1/accounts.
// supabase/functions/share/index.ts (a Supabase Edge Function)
// Protect this function so only you, or your signed-in users, can call it.
Deno.serve(async (req) => {
const { text, accounts } = await req.json();
const response = await fetch("https://socialhelper.app/api/v1/posts", {
method: "POST",
headers: {
Authorization: `Bearer ${Deno.env.get("SOCIALHELPER_API_KEY")}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({ text, accounts }),
});
return new Response(await response.text(), {
status: response.status,
headers: { "Content-Type": "application/json" },
});
});
// app/api/share/route.ts (a Next.js route handler)
// Protect this route so only you, or your signed-in users, can call it.
export async function POST(request: Request) {
const { text, accounts } = await request.json();
const response = await fetch("https://socialhelper.app/api/v1/posts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOCIALHELPER_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({ text, accounts }),
});
return new Response(await response.text(), {
status: response.status,
headers: { "Content-Type": "application/json" },
});
}
// server.js (Node 20+ with Express and express.json())
// Protect this route so only you, or your signed-in users, can call it.
app.post("/api/share", async (req, res) => {
const { text, accounts } = req.body;
const response = await fetch("https://socialhelper.app/api/v1/posts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SOCIALHELPER_API_KEY}`,
"Content-Type": "application/json",
"Idempotency-Key": crypto.randomUUID(),
},
body: JSON.stringify({ text, accounts }),
});
res.status(response.status).type("application/json").send(await response.text());
});
Prompt kit
One prompt does the wiring.
Paste this into your builder’s chat. It asks for a server-side function, so the key never ends up in your app’s browser code.
Add a “Share” button that posts the selected update to my social accounts. Create a server-side function that sends POST https://socialhelper.app/api/v1/posts with the header “Authorization: Bearer ” followed by the secret SOCIALHELPER_API_KEY, and a JSON body with “text” and “accounts”. Load the account IDs from GET https://socialhelper.app/api/v1/accounts. Never put the API key in client-side code.
Builder guides
Pick your builder.
Where each builder keeps secrets, and what the function should look like there.
Ideas
What to build.
Things people add first. Each one posts to your own connected accounts.
Release notes
Blog to social
Scheduled announcements
FAQ
Vibe coding questions.
Why not call the API from the browser?
Your API key can post to every account in your workspace. In browser code anyone could copy it, so keep it in your builder’s secrets and call SocialHelper from a server function.
Can my app’s users connect their own social accounts?
Not yet. Accounts are connected by you and your team in the SocialHelper dashboard, and your key posts to those accounts. It’s ideal for posting to your own brand’s accounts.
Do I need to know how to code?
No. Paste the prompt into your builder and it writes the function. The guides show what the result should look like, so you can check it.
Can the builder’s AI use SocialHelper while I build?
Some builders let you add MCP servers to their chat, which helps while building. Your published app still needs the server function to post.
Ship the share button.
Create a free account, connect an account and send your first post in a few minutes.