Legal pages
The template ships a privacy policy and terms and conditions, written for what the template does out of the box. They are a starting point, not legal advice: have them reviewed for your business before you launch.
app/pages/legal/privacy.vue— the privacy policy, at/legal/privacy.app/pages/legal/terms.vue— the terms and conditions, at/legal/terms.
Both are English-only and linked from the footer (see Footer).
Replace the company details
The company that runs the site is the data controller in the privacy policy and the party customers contract with in the terms. Both pages read it from constants at the top of the file:
const lastUpdated = '2026-10-15'
const companyName = 'Squared Sums Pte Ltd'
const companyAddress = '160 Robinson Road, #14-04 SBF Centre, Singapore 068914'
const contactEmail = `legal@${siteDomain}`
- Set
companyNameandcompanyAddressto your own, in both files. contactEmailis built fromNUXT_PUBLIC_SITE_DOMAIN. Make sure that mailbox exists, or change it.- Set
lastUpdatedwhenever you change a page.
The terms are governed by Singapore law (section 16 of the terms), and the privacy policy names Singapore's data protection authority. Change both if your company is registered elsewhere.
Check what depends on how you run it
Some statements are true only if your setup and processes make them true. Check each one, and change the text where it doesn't hold:
| Page | Statement | Make sure |
|---|---|---|
| Privacy | Data is encrypted at rest | Your database and storage providers encrypt at rest (most managed providers do). |
| Privacy | Regular security audits, limited access | Your team actually does this. |
| Privacy | Retention periods: payments 7 years, messages 2 years, technical data 60 days | Something deletes the data when a period ends. The template only deletes accounts. |
| Privacy | Privacy requests answered within one month, account deletion also by email | Someone reads the mailbox and can act on requests. |
| Privacy | Data processed in Singapore, the United States and other countries | This matches where your hosting and providers are. |
| Terms | Refunds case by case within 30 days | This is your refund policy. |
| Terms | Some features "may" be on a free plan, and trials aren't mentioned | This matches your plans in payments.config.ts. If you set trialPeriodDays, add how trials work to section 5. |
Trim what your features don't use
The pages describe every feature the template includes. If you remove a feature, remove what the pages say about it, and if you add one that collects or shares personal data, add it.
| Feature | Privacy policy | Terms |
|---|---|---|
| AI chat | Conversations in 2.1, the AI paragraph in 3, "AI providers" in 4 | "chatting with an AI model" in 3, section 7 |
| Geolocation | "Approximate location" in 2.2, local currency in 3, "location lookup" in 4, the last item in 6 | — |
| File storage | Files in 2.1, "private file storage" in 8 | "storing your files" in 3, section 6 |
| Payments | Payment details in 2.1, 2.3 and 6, "payment processing" in 4 | Section 5 |
| Analytics | "Usage information" in 2.2, analytics in 4 and 5 | — |
| Feedback and contact form | "Messages you send us" in 2.1 and 6 | — |
If you add cookies beyond sign-in, security and preferences, or analytics that store anything on the device, section 5 of the privacy policy no longer holds, and you may need a consent banner.
Related
- Footer - Where the legal links appear
- Geolocation - What the location lookup sends
- Analytics - Why the analytics need no cookie banner
Changelog
Maintain the public changelog: where the entry data lives, its shape, the feature, improvement and fix taxonomy, adding a release, and removing the page.
Environment variables
Reference for every environment variable: site configuration, database, authentication, email, trusted proxies, blog source, Stripe keys and analytics.

