Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 78 additions & 15 deletions app/privacy/page.tsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,90 @@
const sections = [
{
title: "Information we collect",
body: [
"Account information provided through Clerk, such as your name, email address, profile image, and authentication identifiers.",
"Generated post history, hashtags, writing settings, usage counts, plan status, and plan expiry stored in Supabase so the dashboard can restore your work.",
"Prompts and generation inputs you submit when asking WorktoWords to create or regenerate content.",
"Payment metadata returned by Razorpay for Pro purchases, including payment IDs, order IDs, amount, currency, plan status, and expiry dates. WorktoWords does not store card, UPI, or bank credentials.",
],
},
{
title: "How we use your information",
body: [
"To authenticate your account and protect signed-in dashboard routes.",
"To generate, save, and reload your LinkedIn-style posts and related settings.",
"To enforce daily usage limits for Free and Pro plans.",
"To verify Razorpay payments and activate Pro access for the purchased 30-day period.",
"To diagnose errors, prevent abuse, and improve product reliability.",
],
},
{
title: "Third-party services",
body: [
"Clerk handles authentication and session management.",
"Supabase stores application data such as generated posts, user settings, usage counters, and subscription records.",
"OpenAI processes generation requests that you submit through the app.",
"Razorpay processes payments for Pro upgrades and returns payment verification metadata to WorktoWords.",
],
},
{
title: "Retention and deletion",
body: [
"Generated posts, settings, usage records, and subscription records are kept while your account is active so the product can function.",
"You may request deletion of your account-related application data by contacting the support email below.",
"Some billing and security records may be retained where required for legal, accounting, fraud-prevention, or dispute-resolution purposes.",
],
},
{
title: "Your choices",
body: [
"You can choose what prompts and work details you submit for generation.",
"You can delete generated content from your account where the product interface supports it, or request deletion by email.",
"You can stop using Pro features by allowing the 30-day Pro period to expire.",
],
},
];

export default function PrivacyPage() {
return (
<main className="mx-auto flex w-full max-w-3xl flex-1 flex-col px-4 py-12 sm:px-6">
<h1 className="text-2xl font-semibold tracking-tight">Privacy Policy</h1>
<p className="mt-2 text-sm text-muted-foreground">
Last updated: April 13, 2026
</p>
<div className="mt-8 space-y-4 text-sm leading-relaxed text-muted-foreground">
<div className="mt-8 space-y-7 text-sm leading-relaxed text-muted-foreground">
<p>
This is a placeholder privacy policy. Before launch, replace this
content with a policy that describes what data you collect, how you
use it, retention, third parties (e.g. authentication and AI
providers), and how users can contact you or exercise their rights.
</p>
<p>
For questions about privacy, contact{" "}
<a
className="font-medium text-foreground underline-offset-4 hover:underline"
href="mailto:vyasyajush@gmail.com"
>
vyasyajush@gmail.com
</a>
.
WorktoWords helps you turn daily work updates into polished social
posts. This policy explains what information is handled by the app and
the services it relies on.
</p>

{sections.map((section) => (
<section key={section.title} className="space-y-3">
<h2 className="text-base font-semibold text-foreground">
{section.title}
</h2>
<ul className="list-disc space-y-2 pl-5">
{section.body.map((item) => (
<li key={item}>{item}</li>
))}
</ul>
</section>
))}

<section className="space-y-3">
<h2 className="text-base font-semibold text-foreground">Contact</h2>
<p>
For privacy questions or data deletion requests, contact{" "}
<a
className="font-medium text-foreground underline-offset-4 hover:underline"
href="mailto:vyasyajush@gmail.com"
>
vyasyajush@gmail.com
</a>
.
</p>
</section>
</div>
</main>
);
Expand Down
89 changes: 74 additions & 15 deletions app/terms/page.tsx
Original file line number Diff line number Diff line change
@@ -1,27 +1,86 @@
const terms = [
{
title: "Using WorktoWords",
body: [
"You are responsible for the information you submit and for reviewing AI-generated content before publishing it elsewhere.",
"You should not submit confidential, sensitive, illegal, or third-party private information unless you have the right to use it.",
"You agree not to misuse the service, interfere with its security, attempt to bypass rate limits, or use it to create harmful, deceptive, infringing, or abusive content.",
],
},
{
title: "Accounts and access",
body: [
"Authentication is provided through Clerk. You are responsible for keeping your account access secure.",
"Dashboard features require an active signed-in account.",
"WorktoWords may restrict or suspend access where misuse, security risk, or policy abuse is detected.",
],
},
{
title: "Plans, billing, and Pro access",
body: [
"Free users receive the daily generation allowance shown in the product.",
"Pro access is activated after successful Razorpay payment verification and remains active for 30 days from purchase.",
"When the 30-day Pro period expires, the account automatically returns to the Free plan unless another Pro purchase is completed.",
"Payments are processed by Razorpay. Any refund, chargeback, or billing dispute may require reviewing Razorpay payment records.",
],
},
{
title: "AI-generated content",
body: [
"Generated output may be inaccurate, incomplete, repetitive, or unsuitable for your intended audience.",
"You are responsible for editing, fact-checking, and ensuring published content follows platform rules, employer policies, and applicable law.",
"WorktoWords does not guarantee engagement, reach, hiring outcomes, sales outcomes, or business results from generated posts.",
],
},
{
title: "Availability and changes",
body: [
"The service may change as features, pricing, providers, and infrastructure evolve.",
"Access can be interrupted by maintenance, provider outages, API limits, payment provider issues, or technical failures.",
"These terms may be updated as the product changes. Continued use after updates means you accept the revised terms.",
],
},
];

export default function TermsPage() {
return (
<main className="mx-auto flex w-full max-w-3xl flex-1 flex-col px-4 py-12 sm:px-6">
<h1 className="text-2xl font-semibold tracking-tight">Terms of Service</h1>
<p className="mt-2 text-sm text-muted-foreground">
Last updated: April 13, 2026
</p>
<div className="mt-8 space-y-4 text-sm leading-relaxed text-muted-foreground">
<div className="mt-8 space-y-7 text-sm leading-relaxed text-muted-foreground">
<p>
This is a placeholder terms of service. Replace it with terms that
cover acceptable use, account responsibilities, limitations of
liability, subscription or billing (if applicable), and governing law
before production use.
</p>
<p>
For questions about these terms, contact{" "}
<a
className="font-medium text-foreground underline-offset-4 hover:underline"
href="mailto:vyasyajush@gmail.com"
>
vyasyajush@gmail.com
</a>
.
These terms describe the basic rules for using WorktoWords, including
AI generation, saved history, account access, and Pro billing.
</p>

{terms.map((section) => (
<section key={section.title} className="space-y-3">
<h2 className="text-base font-semibold text-foreground">
{section.title}
</h2>
<ul className="list-disc space-y-2 pl-5">
{section.body.map((item) => (
<li key={item}>{item}</li>
))}
</ul>
</section>
))}

<section className="space-y-3">
<h2 className="text-base font-semibold text-foreground">Contact</h2>
<p>
For questions about these terms, contact{" "}
<a
className="font-medium text-foreground underline-offset-4 hover:underline"
href="mailto:vyasyajush@gmail.com"
>
vyasyajush@gmail.com
</a>
.
</p>
</section>
</div>
</main>
);
Expand Down