← back to IWasCute
src/app/terms/page.tsx
128 lines
import type { Metadata } from 'next'
import Link from 'next/link'
import Navbar from '@/components/shared/Navbar'
export const metadata: Metadata = {
title: 'Terms of Service — I was Cute',
description:
'The terms that govern using I was Cute: what you keep, what you license, and what we will not do with your photographs.',
}
const UPDATED = 'September 10, 2026'
const SECTIONS: { heading: string; body: string[] }[] = [
{
heading: 'Public preview',
body: [
'I was Cute is in public preview. The licensor flow demonstrates the intended submission experience but does not yet transmit or store photographs, and no photograph can currently be listed, licensed, or earn a royalty. Where these terms describe licensing and payment, they describe how the service will operate when it opens; they are not a representation that it operates that way today.',
],
},
{
heading: 'You keep your photographs',
body: [
'You do not sell or assign your images to us. You grant a license for specific uses that you choose, and you keep ownership throughout. We act as the marketplace that documents those permissions and connects you with licensees.',
],
},
{
heading: 'What you confirm when you submit',
body: [
'That you are 18 or older. That you either hold the rights to the photograph or have the permission of the person who does. That you are the person pictured, or that the person pictured has consented to it being listed. That the person pictured is now an adult.',
'These are not formalities. A photograph submitted without the pictured person’s consent will be removed, and repeated misrepresentation will end your account.',
],
},
{
heading: 'The permissions you set',
body: [
'For each photograph you choose which uses are allowed: editorial, commercial, and AI training, each independently. A use you do not select is a use we do not offer. In particular, if you do not select AI training, your photograph is not made available for training datasets.',
'You can withdraw a photograph at any time. Withdrawal stops any new license from being granted. It cannot revoke a license already purchased, because a licensee will have relied on it — which is why the permissions you choose at submission are the decision that matters.',
],
},
{
heading: 'Rights review',
body: [
'Every submission is reviewed before it can be listed. We may decline a photograph for any reason, including incomplete rights information, doubt about consent, or an image that depicts someone who is still a minor. A decline is not an accusation; it means we could not establish the rights to our own satisfaction.',
],
},
{
heading: 'Royalties',
body: [
'When licensing is live, you receive a royalty when a licensee purchases usage of your photograph. Rates, payment thresholds and schedules will be stated in your account before you list anything, and will not be changed retroactively for licenses already granted.',
],
},
{
heading: 'Acceptable use',
body: [
'Do not submit photographs you do not have the rights to, images of people who have not consented, images of people who are currently minors, or content that is sexual, exploitative, or unlawful. Do not attempt to scrape, bulk-download, or re-license imagery from this site outside the terms of a purchased license.',
],
},
{
heading: 'Removal',
body: [
'If you are pictured in a photograph on this service and did not consent to it, contact us and we will remove it. You do not need to own the image or prove anything to have your own likeness taken down.',
],
},
{
heading: 'Changes and contact',
body: [
'We will update these terms as the service moves out of preview, and the last-updated date above will change with them. Material changes affecting photographs already listed will be communicated to the account that listed them. Questions go through the contact page.',
],
},
]
export default function TermsPage() {
return (
<>
<Navbar />
<main
className="flex-1 px-6 py-16 md:px-12"
style={{ background: 'var(--color-cream)', color: 'var(--color-brown)' }}
>
<div className="mx-auto max-w-2xl">
<p
className="text-xs uppercase tracking-[0.2em] mb-3"
style={{ color: 'var(--color-warm-gray)' }}
>
Terms
</p>
<h1 className="text-4xl font-black tracking-tighter mb-3">Terms of Service</h1>
<p className="text-sm mb-10" style={{ color: 'var(--color-warm-gray)' }}>
Last updated {UPDATED}
</p>
{SECTIONS.map(({ heading, body }) => (
<section key={heading} className="mb-10">
<h2 className="text-xl font-bold mb-3">{heading}</h2>
{body.map((p, i) => (
<p
key={i}
className="mb-3 leading-relaxed"
style={{ color: 'var(--color-warm-gray)' }}
>
{p}
</p>
))}
</section>
))}
<div className="flex flex-wrap gap-3 mt-12">
<Link
href="/privacy"
className="px-5 py-2.5 rounded-2xl text-sm font-semibold transition-all hover:scale-105"
style={{ background: 'var(--color-cream-dark)', color: 'var(--color-brown)' }}
>
Privacy Policy
</Link>
<Link
href="/contact"
className="px-5 py-2.5 rounded-2xl text-sm font-semibold transition-all hover:scale-105"
style={{ background: 'var(--color-peach)', color: 'var(--color-brown)' }}
>
Contact us
</Link>
</div>
</div>
</main>
</>
)
}