Inspiration

A creator finishes a sponsored video, posts it, and then waits. The payment sits in processing for weeks, with no item-by-item account of what the brief asked for. The brand has the matching fear: pay first, and the discount code is wrong or the disclosure is missing.

The deal was already agreed somewhere else. What was missing was a shared checklist, proof taken from the video itself, and money reserved before anyone published.

What it does

Sponing runs that deal. The creator starts it and invites the brand with a link, the way a freelancer sends an invoice. Creators and brands find each other elsewhere. Sponing is where the content and the payment clear together.

Claude, on Amazon Bedrock, reads the brief and turns it into a checklist. Each item cites the line it came from, and anything ambiguous becomes a question. Both sides agree that checklist before any money is reserved. The brand then approves one PayPal hold per post. A deal with three posts has three holds. The money is reserved, not taken. One hold is $20 to $10,000. This build uses the PayPal sandbox, so no real money moves.

The creator uploads the draft. Amazon Bedrock Data Automation records what was said and what appears as on-screen text, with timestamps. Amazon Nova judges what is shown, such as the product in use. A discount code or a link is matched by code. A judgment has to point at a moment in the video, and separate code checks that the moment exists and that the quoted words are really there. An unsure item goes to a person. The model returns findings. The money module is the only code that calls PayPal.

When every item passes, the brand has 48 hours to object to a specific item. Silence approves the draft. A failure never approves on a timer. The creator gets a go-ahead to publish only after Sponing re-confirms the hold with PayPal. They publish on their own YouTube channel or Instagram account. A live check reads the platform and confirms the post is public, on that account, on time, with the required link, code, and disclosure. A pass captures the hold and pays the creator's PayPal email, less a 5% fee taken in whole cents. Both sides see held, captured, and paid, each with its PayPal reference. A missed deadline or a cancellation releases the hold back to the brand.

A deliverable that has passed its live check and been paid is cleared.

Version one is YouTube videos, YouTube Shorts, and Instagram Reels.

How we built it

The creator app and the brand's link are a Next.js app on Vercel. The API is Hono on Bun. PostgreSQL, through Prisma, holds the deals and a jobs table. The draft check, the 48-hour review window, and the money retries are jobs in that table, written in the same transaction as the change they belong to. The API runs as one container on Amazon ECS. Files and tokens sit in S3 and KMS.

PayPal is one port in the backend. The server SDK covers Orders and Payments. Payouts and webhook verification are plain HTTP. Every create, capture, and payout sends a PayPal-Request-Id, so a retry cannot charge or pay twice. A webhook is verified before it changes anything, and a duplicate event is ignored. Amounts are integer cents. APIMatic's PayPal context plugin was the reference while those calls were written.

The evidence for each checklist item, the brand's view of the deal, and the creator's payment history are AG Grid. The charts on the creator's home are AG Charts. Phones get the same data as cards.

Creators sign in with Google. YouTube is connected with a read-only scope. Instagram is connected separately, with Instagram Login and one read-only permission, and only for a professional account. The brand has no account. The invite link becomes a session scoped to that one deal.

Challenges we ran into

A PayPal hold lasts 29 days, and the funds are guaranteed only for the first 3. A sponsorship still needs a real deadline. Sponing caps that deadline at 21 days after the hold, re-confirms the reserved funds just before the creator publishes, and releases a hold that is still undecided on day 28.

A published video cannot be edited, so the review has to happen while a fix is still possible. The 48-hour window opens only after every checklist item passes. An objection names one item and stops the clock. The creator uploads a new draft, or the brand accepts this one.

A spoken code such as GLOW20 is easy for speech-to-text to mishear. Exact codes are matched after the text is normalized. A near miss stays unsure, and a person decides it. A pass whose timestamp falls outside the video, or whose quote cannot be found in the transcript or the on-screen text, is rejected.

Sandbox payouts need a United States business account. A payout to an email with no PayPal account stays unclaimed. Sponing keeps the deliverable captured, shows the creator why, and sends again to a corrected email under the same request id.

What we learned

The risky line is the one between "the model says this passed" and "PayPal captures." Those are different programs. The model proposes evidence. Code accepts it or marks the item unsure. Only after a passing live check does the money module capture the hold.

A hold is also a clock. Most of the product is what happens when that clock runs out: silence on a passing draft, a missed deadline, a capture PayPal refuses, or day 28.

Try it

Open sponing.com. Sign in with Google, start a deal as the creator, and open the brand's link in a private window. Approve the hold with a PayPal sandbox account. The sandbox logins for judges are in the submission's additional info. Instagram connect, until Meta's review is finished, works for tester accounts added on the app.

Built With

Share this project:

Updates

Submission history