Vibe Coder's Guide

The privacy policy you can write yourself

April 26, 2026 · complianceprivacylegal

Founders avoid writing privacy policies because the genre feels intimidating. They reach for a generator like termsfeed.com, plug in their company name, and ship a generic three-page document that says they collect cookies and respect user rights — without ever specifying which cookies, which rights under which laws, or which third parties they share data with.

Generic policies are worse than no policy in three ways:

  1. They claim things you don't do. Most templates mention practices (Google Workspace, intercom chat, hotjar tracking) that don't apply, which means the policy is technically misleading.
  2. They miss things you actually do. AdSense, OpenAI, Stripe — none of these get listed because templates can't know your stack.
  3. GDPR specifically requires accuracy. An inaccurate policy is non-compliance, not partial-compliance.

The good news: writing your own takes thirty minutes if you know the structure. Here it is.

The eight required sections

1. What you collect

List every category of data you collect. Be specific. Not "user data." Specifically:

If you have a lib/track.ts or similar event-recording helper, list the event names you currently fire.

2. Why you collect each thing (the legal basis under GDPR)

For EU users (and best practice for everyone), each processing activity needs a legal basis:

For an MVP, most processing is "contract" (account data) plus "legitimate interest" (security, basic analytics). Marketing email is "consent."

Don't claim "legitimate interest" for analytics or marketing — these specifically need consent under modern interpretations.

3. Who you share data with (sub-processors)

List every third party that processes user data on your behalf, by name. Not "third-party providers" — by name.

A typical MVP's list:

For each, link to their privacy policy. This is the sub-processor list under GDPR Art. 28.

4. Data retention

How long do you keep each category of data?

Be specific. Don't say "as long as necessary." Pick numbers and stick to them.

5. User rights

Explain in plain English what users can do:

6. How to exercise rights

Give users a single way to contact you for privacy requests. Ask the user what email they want to use — don't invent privacy@<domain>. Many founders prefer to use their existing inbox at MVP stage. Document the contact in the policy.

If you do set up an alias (privacy@<your-domain>), set up email forwarding from that alias to your real inbox. Most domain registrars include this for free.

7. Cookies

If you have any cookies, list them. Separate strictly-necessary (session, CSRF) from analytics (_ga, _ga_XXXX) from marketing (DoubleClick from AdSense).

For each non-essential category, explain how the user can opt out:

8. Contact and changes

CCPA-specific section

For California residents (and de facto for everyone, since AdSense forces it):

A section anchored at #ccpa-rights covering:

Add a "Do Not Sell or Share My Personal Information" link to your footer pointing at this anchor. Even if you don't formally sell data, AdSense personalized ads count as "sharing" under the CPRA.

What to leave out

Example structure

For reference, vibecodersguidetomvp.help/privacy/ follows this structure exactly. You can crib it.

What this is not

A privacy policy is not a substitute for a lawyer. If your product handles regulated data (healthcare, finance, education, children's data), processes serious volumes of EU user data, or is being prepared for an enterprise sale, get a lawyer.

For an MVP with normal data practices, the eight-section structure above is what a lawyer would draft for you. It's also legally adequate for a beta launch.

What the skills do

The skill bundle's compliance skill (sub-skill 08) drafts both Privacy Policy and Terms of Service tailored to your specific product, after the agent asks: what do you collect, who uses it, where do they live, what email should go on the policy, and what URL is the canonical URL for the site.

The result is a policy with your specific stack, your specific sub-processors, and your specific contact email. Not a template. Twenty minutes of dialogue and the agent ships the policy as a static MDX page.

Write it once, update it when material things change, link from your footer. That's the whole job.


← All posts