diff --git a/app/(docs)/docs/[[...slug]]/page.tsx b/app/(docs)/docs/[[...slug]]/page.tsx index 7e9d20c..2b0518c 100644 --- a/app/(docs)/docs/[[...slug]]/page.tsx +++ b/app/(docs)/docs/[[...slug]]/page.tsx @@ -38,7 +38,7 @@ export async function generateMetadata({ const { title, description } = doc; return constructMetadata({ - title: `${title} – Next Template`, + title: `${title} – WR.DO`, description: description, }); } diff --git a/app/(marketing)/[slug]/page.tsx b/app/(marketing)/[slug]/page.tsx index 8163c62..91ae751 100644 --- a/app/(marketing)/[slug]/page.tsx +++ b/app/(marketing)/[slug]/page.tsx @@ -28,7 +28,7 @@ export async function generateMetadata({ const { title, description } = page; return constructMetadata({ - title: `${title} – Next Template`, + title: `${title} – WR.DO`, description: description, }); } diff --git a/app/(protected)/admin/orders/page.tsx b/app/(protected)/admin/orders/page.tsx index 6cb66f0..2767c88 100644 --- a/app/(protected)/admin/orders/page.tsx +++ b/app/(protected)/admin/orders/page.tsx @@ -7,7 +7,7 @@ import { DashboardHeader } from "@/components/dashboard/header"; import { EmptyPlaceholder } from "@/components/shared/empty-placeholder"; export const metadata = constructMetadata({ - title: "Orders – Next Template", + title: "Orders – WR.DO", description: "Check and manage your latest orders.", }); diff --git a/app/(protected)/admin/page.tsx b/app/(protected)/admin/page.tsx index 54d56d9..cb49f94 100644 --- a/app/(protected)/admin/page.tsx +++ b/app/(protected)/admin/page.tsx @@ -7,7 +7,7 @@ import InfoCard from "@/components/dashboard/info-card"; import TransactionsList from "@/components/dashboard/transactions-list"; export const metadata = constructMetadata({ - title: "Admin – Next Template", + title: "Admin – WR.DO", description: "Admin page for only admin management.", }); diff --git a/app/(protected)/dashboard/charts/page.tsx b/app/(protected)/dashboard/charts/page.tsx index b5626b9..046a15e 100644 --- a/app/(protected)/dashboard/charts/page.tsx +++ b/app/(protected)/dashboard/charts/page.tsx @@ -11,7 +11,7 @@ import { RadialTextChart } from "@/components/charts/radial-text-chart"; import { DashboardHeader } from "@/components/dashboard/header"; export const metadata = constructMetadata({ - title: "Charts – Next Template", + title: "Charts – WR.DO", description: "List of charts by shadcn-ui", }); diff --git a/app/(protected)/dashboard/settings/page.tsx b/app/(protected)/dashboard/settings/page.tsx index 3ca59ad..a5ac276 100644 --- a/app/(protected)/dashboard/settings/page.tsx +++ b/app/(protected)/dashboard/settings/page.tsx @@ -8,7 +8,7 @@ import { UserNameForm } from "@/components/forms/user-name-form"; import { UserRoleForm } from "@/components/forms/user-role-form"; export const metadata = constructMetadata({ - title: "Settings – Next Template", + title: "Settings – WR.DO", description: "Configure your account and website settings.", }); diff --git a/app/api/og/route.tsx b/app/api/og/route.tsx index 7a9fa89..daff0b2 100644 --- a/app/api/og/route.tsx +++ b/app/api/og/route.tsx @@ -54,7 +54,7 @@ export async function GET(req: Request) { color: "transparent", }} > - Next Template + WR.DO
diff --git a/config/docs.ts b/config/docs.ts index 2726b82..8133a35 100644 --- a/config/docs.ts +++ b/config/docs.ts @@ -26,6 +26,16 @@ export const docsConfig: DocsConfig = { href: "/docs/short-urls", icon: "page", }, + { + title: "Terms of Service", + href: "/terms", + icon: "page", + }, + { + title: "Privacy Policy", + href: "/privacy", + icon: "page", + }, // { // title: "Newsletter", // href: "/docs/newsletter", @@ -47,13 +57,8 @@ export const docsConfig: DocsConfig = { icon: "page", }, { - title: "Components", - href: "/docs/developer/components", - icon: "page", - }, - { - title: "Config files", - href: "/docs/developer/config-files", + title: "Email", + href: "/docs/developer/email", icon: "page", }, { @@ -62,13 +67,13 @@ export const docsConfig: DocsConfig = { icon: "page", }, { - title: "Email", - href: "/docs/developer/email", + title: "Components", + href: "/docs/developer/components", icon: "page", }, { - title: "Layout Options", - href: "/docs/developer/layouts", + title: "Config files", + href: "/docs/developer/config-files", icon: "page", }, { diff --git a/content/docs/developer/authentification.mdx b/content/docs/developer/authentification.mdx index cd545e2..c0c8606 100644 --- a/content/docs/developer/authentification.mdx +++ b/content/docs/developer/authentification.mdx @@ -31,34 +31,25 @@ Then add it to your `.env` file: AUTH_SECRET = secret; ``` -## Update google client variables +## Google config In this section, you can update these variables: -```js title=".env.local" +```js title=".env" GOOGLE_CLIENT_ID = your_secret_client_id.apps.googleusercontent.com; GOOGLE_CLIENT_SECRET = your_secret_client; ``` -### Video explanation +See config tutorial in [Authjs - Google OAuth](https://authjs.dev/getting-started/providers/google). -Watch a youtube video from [CodeWithAntonio](https://www.youtube.com/@codewithantonio) on how to configure the environment variables for NextAuth with Google authentication. +## Github config - +In this section, you can update these variables: -- GoogleAuth **local** config at [3:24:30](https://www.youtube.com/watch?v=1MTyCvS05V4&t=12270s) -- Update GoogleAuth after **deployment** at [7:52:31](https://www.youtube.com/watch?v=1MTyCvS05V4&t=12270s) +```js title=".env" +GITHUB_ID = your_secret_client_id; +GITHUB_SECRET = your_secret_client; +``` -### Google config for this repo +See config tutorial in [Authjs - Github OAuth](https://authjs.dev/getting-started/providers/github). - diff --git a/content/docs/developer/database.mdx b/content/docs/developer/database.mdx index aa1cc0a..f95fb1f 100644 --- a/content/docs/developer/database.mdx +++ b/content/docs/developer/database.mdx @@ -3,9 +3,9 @@ title: Database description: How to config your Neon database. --- -The project was start with PlanetScale like database. But the free tier has been recently removed. - -Currently this project use **Neon** on the free plan. Check their [pricing page](https://neon.tech/pricing) for more informations. +Here are some free postgres database: +- [Neon](https://neon.tech) +- [Supabase](https://supabase.com) ## Steps diff --git a/content/docs/developer/email.mdx b/content/docs/developer/email.mdx index 13161ce..ee0c568 100644 --- a/content/docs/developer/email.mdx +++ b/content/docs/developer/email.mdx @@ -8,11 +8,6 @@ description: How to manage emails in this project. You can use it in your local environment and in your own production setup. - - However, you can't test it on this demo app because I don't want to use the - premium Resend plan for this demo. - - ## Steps diff --git a/content/docs/developer/installation.mdx b/content/docs/developer/installation.mdx index bdc2854..e612a37 100644 --- a/content/docs/developer/installation.mdx +++ b/content/docs/developer/installation.mdx @@ -10,12 +10,12 @@ description: How to install the project. Start by creating a new Next.js project using `create-next-app`: ```bash -npx create-next-app my-next-project --example "https://github.com/mickasmt/next-auth-roles-template" +npx create-next-app wrdo --example "https://github.com/oiov/wr.do" ``` Or deploy with Vercel : -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fmickasmt%2Fnext-auth-roles-template) +[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Foiov%2Fwr.do) A good way to create your repository, but the deployment will fail because you @@ -28,7 +28,7 @@ Or deploy with Vercel : Enter in the folder and install dependencies for your project: ```bash -cd my-next-project +cd wrdo pnpm install ``` @@ -36,48 +36,29 @@ pnpm install Copy/paste the `.env.example` in the `.env` file: -```md title=".env" -NEXT_PUBLIC_APP_URL=http://localhost:3000 +{/* env表格 */} -AUTH_SECRET= -GOOGLE_CLIENT_ID= -GOOGLE_CLIENT_SECRET= +| Environment Variable | Value | Description | +|----------------------|-------|-------------| +| NEXTAUTH_URL | `http://localhost:3000` | The URL of the Next.js application. | +| AUTH_SECRET | `123465` | The secret used to encrypt tokens and email verification hashes. | +| DATABASE_URL | `file:./db.sqlite` | The path to the postgres database. | +| GOOGLE_CLIENT_ID | `123465` | The ID of the Google OAuth client. | +| GOOGLE_CLIENT_SECRET | `123465` | The secret of the Google OAuth client. | +| GITHUB_ID | `123465` | The ID of the GitHub OAuth client. | +| GITHUB_SECRET | `123465` | The secret of the GitHub OAuth client. | +| RESEND_API_KEY | `123465` | The API key for Resend. | +| CLOUDFLARE_ZONE_ID | `123465` | The zone ID for Cloudflare. | +| CLOUDFLARE_API_KEY | `123465` | The API key for Cloudflare. | +| CLOUDFLARE_EMAIL | `123465` | The email for Cloudflare. | +| NEXT_PUBLIC_FREE_RECORD_QUOTA | `3` | The number of free records. | +| NEXT_PUBLIC_FREE_URL_QUOTA | `100` | The number of free URLs. | +| NEXT_PUBLIC_OPEN_SIGNUP | `1` | Open signup. | -DATABASE_URL= - -RESEND_API_KEY= -``` - -### Remove parts you don't want - -You can use the command `pnpm run remove-content` in your terminal to remove specific parts of your project. This command supports the following parameters: - -- **--blog**: Removes the blog section from your project. -- **--docs**: Removes the documentation section from your project. - -#### Recommendations - -- **Remove Both Sections**: It is recommended to use `pnpm run remove-content` without specifying parameters (`--blog` or `--docs`). This ensures that all associated documents are properly removed, as some documents may not be deleted/updated if you remove "blog" after "docs" or vice versa. - -#### Examples - -1. To remove both the blog and documentation sections: - -```bash -pnpm run remove-content -``` - -2. To remove only the blog section: - -```bash -pnpm run remove-content --blog -``` - -3. To remove only the documentation section: - -```bash -pnpm run remove-content --docs -``` +- How to get `GOOGLE_CLIENT_ID`、`GITHUB_ID`, see [Authentification](/docs/developer/authentification). +- How to get `RESEND_API_KEY`, see [Email](/docs/developer/email). +- How to get `CLOUDFLARE_ZONE_ID`、`CLOUDFLARE_API_KEY`、`CLOUDFLARE_EMAIL`, see [Authentification](/docs/developer/authentification). +- How to get `DATABASE_URL`, see [Database](/docs/developer/database). ### Configuration part diff --git a/content/docs/developer/layouts.mdx b/content/docs/developer/layouts.mdx deleted file mode 100644 index ba0653a..0000000 --- a/content/docs/developer/layouts.mdx +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Dashboard Layout Options -description: Choose between two different layout options for your dashboard. ---- - -Explore the different layout options available for customizing your dashboard. You have the choice between two layouts for the dashboard. - -## Centered Sidebar and Main Content - -In this layout, both the sidebar and the main content are centered in the middle of the page, like **Stripe dashboard**. - -```tsx - -
- - -
-
- - -
- -
- - - -
- -
- {children} -
-
-
-
-``` - -## Fixed Sidebar with Centered Main Content - -In this layout, the sidebar is fixed to the left side of the window, while only the main content is centered on the page. This gives for a more **traditional look**. This is the default layout. - -```tsx -
- - -
-
- - - -
- -
- - - -
-
- -
- - {children} - -
-
-
-``` - -Feel free to choose the layout that best fits your design preferences and user experience goals. diff --git a/content/docs/dns-records.mdx b/content/docs/dns-records.mdx index e2c1058..2de6217 100644 --- a/content/docs/dns-records.mdx +++ b/content/docs/dns-records.mdx @@ -1,4 +1,24 @@ --- title: DNS Records description: Create and manage your DNS records. ---- \ No newline at end of file +--- + +## What is a DNS Record? + +A DNS record is a piece of information that is stored in a DNS zone. It is a record that contains a hostname and an IP address. A DNS record can be a CNAME or an A record. + +## When to use DNS Records? + +- When you need to redirect traffic from one domain to another. +- When you need to redirect traffic from one IP address to another. + +## Why use WR.DO DNS Records? + +WR.DO provide a **free DNS record** management service that can help you quickly create and manage DNS records. You do not need to purchase additional domains to use one short and resolve to your server. + +## Creating DNS Records with WR.DO + +1. **Navigate to DNS Management Page**: After logging in, you will see a "DNS Management" option in the navigation bar, click [DNS Management](https://wr.do/dashboard/records) to proceed. +2. **Add Record**: Click the "Add Record" button and select the type of record you need (such as CNAME, A, etc.). +3. **Fill in Details**: Enter the hostname, target address, and other details as prompted. +4. **Save Record**: After confirming everything is correct, click the "Save" button. \ No newline at end of file diff --git a/content/docs/index.mdx b/content/docs/index.mdx index 2c96432..097b992 100644 --- a/content/docs/index.mdx +++ b/content/docs/index.mdx @@ -3,7 +3,7 @@ title: Introduction description: Welcome to the WR.DO documentation. --- - + ## Features diff --git a/content/docs/quick-start.mdx b/content/docs/quick-start.mdx index 83eece8..73de6c0 100644 --- a/content/docs/quick-start.mdx +++ b/content/docs/quick-start.mdx @@ -1,4 +1,40 @@ --- -title: Quick Start +title: Quick Start Guide description: Get started with the WR.DO documentation. ---- \ No newline at end of file +--- + +Welcome to WR.DO, a multi-tenant DNS record management system based on Cloudflare DNS API, also featuring URL shortening capabilities. This guide will help you get started with using our website quickly. + +## Registration and Login + +1. **Visit the Website**: First, visit https://wr.do . +3. **Register/Log In to Your Account**: Use the registered email or Google/Github account to log in on the [Login page](https://wr.do/login). + +## Creating DNS Records + +1. **Navigate to DNS Management Page**: After logging in, you will see a "DNS Management" option in the navigation bar, click [DNS Management](https://wr.do/dashboard/records) to proceed. +2. **Add Record**: Click the "Add Record" button and select the type of record you need (such as CNAME, A, etc.). +3. **Fill in Details**: Enter the hostname, target address, and other details as prompted. +4. **Save Record**: After confirming everything is correct, click the "Save" button. + +## Generating Short Links + +1. **Navigate to Short Links Page**: Select the [Short Links](https://wr.do/dashboard/urls) option in the navigation bar. +2. **Input Long URL**: Paste or type the URL you want to shorten into the provided input box. +3. **Generate Short Link**: Click the "Generate" button, and the system will automatically create a short link for you. +4. **Copy and Use**: Click the "Copy" button to copy the short link to your clipboard, and you can use it wherever needed. + +## Real-Time Updates + +- **DNS Record Changes**: Once you update or add new DNS records, the system will immediately begin to propagate these changes. +- **Short Link Access**: The generated short link is ready to use instantly, with no additional wait time required. + +## Support and Help + +If you encounter any issues during use or need further assistance, please visit our [Discord community](https://discord.gg/d68kWCBDEs), where our team and technical community members are happy to provide support. + +Thank you for choosing WR.DO, we wish you a pleasant experience! + +--- + +© WR.DO - [MIT License](/LICENSE.md) \ No newline at end of file diff --git a/content/docs/short-urls.mdx b/content/docs/short-urls.mdx index 5d539c1..21bb72e 100644 --- a/content/docs/short-urls.mdx +++ b/content/docs/short-urls.mdx @@ -1,4 +1,11 @@ --- title: Short URLs description: Create and manage your short URLs. ---- \ No newline at end of file +--- + +## Generating Short Links + +1. **Navigate to Short Links Page**: Select the [Short Links](https://wr.do/dashboard/urls) option in the navigation bar. +2. **Input Long URL**: Paste or type the URL you want to shorten into the provided input box. +3. **Generate Short Link**: Click the "Generate" button, and the system will automatically create a short link for you. +4. **Copy and Use**: Click the "Copy" button to copy the short link to your clipboard, and you can use it wherever needed. diff --git a/content/pages/privacy.mdx b/content/pages/privacy.mdx index 4dcc9a0..5c4293c 100644 --- a/content/pages/privacy.mdx +++ b/content/pages/privacy.mdx @@ -1,22 +1,57 @@ --- title: Privacy -description: The Privacy Policy for Taxonomy App. +description: The Privacy Policy for WR.DO. --- -Blandit libero volutpat sed cras ornare arcu. Cursus sit amet dictum sit amet. Nunc vel risus commodo viverra maecenas accumsan. Libero id faucibus nisl tincidunt eget nullam non nisi est. Varius quam quisque id diam vel quam. Id donec ultrices tincidunt arcu non. +Last Updated: 2024/08/01 -## Consent +This Privacy Policy describes how WR.DO ("we", "us", or "our") collects, uses, and shares your information when you use our website and services ("Services"). By using our Services, you consent to the practices described in this Privacy Policy. -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Volutpat sed cras ornare arcu. Nibh ipsum consequat nisl vel pretium lectus quam id leo. A arcu cursus vitae congue. Amet justo donec enim diam. Vel pharetra vel turpis nunc eget lorem. Gravida quis blandit turpis cursus in. Semper auctor neque vitae tempus. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Imperdiet nulla malesuada pellentesque elit eget. +## 1. Information We Collect -Felis donec et odio pellentesque diam volutpat commodo sed. +### 1.1 Personal Information +We may collect personal information that you provide directly to us, such as: +- **Account Information**: When you create an account, we collect your email address and avatar. +- **Usage Data**: We collect information about how you interact with our Services, including your IP address, browser type, operating system, and the pages you visit. -Tortor consequat id porta nibh. Fames ac turpis egestas maecenas pharetra convallis posuere morbi leo. Scelerisque fermentum dui faucibus in. Tortor posuere ac ut consequat semper viverra. +### 1.2 Cookies and Similar Technologies +We use cookies and similar tracking technologies to collect information about your use of our Services and to remember your preferences. -## Information we collect +## 2. How We Use Your Information -Amet justo donec enim diam. In hendrerit gravida rutrum quisque non. Hac habitasse platea dictumst quisque sagittis purus sit. +We use the information we collect to: +- Provide, maintain, and improve our Services. +- Communicate with you, including sending you updates, newsletters, and other communications. +- Monitor and analyze trends, usage, and activities in connection with our Services. +- Detect, prevent, and address technical issues and security threats. -## How we use your Information +## 3. Sharing Your Information -Ut sem nulla pharetra diam sit amet nisl suscipit adipiscing. Consectetur adipiscing elit pellentesque habitant. Ut tristique et egestas quis ipsum suspendisse ultrices gravida. +We do not sell, trade, or otherwise transfer your personal information to outside parties except as described in this Privacy Policy. We may share your information: +- **With Service Providers**: We may share your information with third-party service providers who help us operate our website and provide our Services. +- **For Legal Reasons**: We may disclose your information if required by law or in response to valid requests by public authorities (e.g., a court or a government agency). + +## 4. Data Security + +We implement appropriate technical and organizational measures to protect your personal information against unauthorized access, alteration, disclosure, or destruction. + +## 5. Your Rights + +Depending on your jurisdiction, you may have the right to: +- Access, update, or delete your personal information. +- Object to or restrict the processing of your personal information. +- Withdraw your consent at any time (without affecting the lawfulness of processing based on consent before its withdrawal). + +To exercise these rights, please contact us at [support@wr.do](mailto:support@wr.do). + +## 6. Changes to This Privacy Policy + +We may update this Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the "Last Updated" date at the top of this document. + +## 7. Contact Us + +If you have any questions about this Privacy Policy, please contact us at [support@wr.do](mailto:support@wr.do). + +--- + +© WR.DO - [MIT License](/LICENSE.md) \ No newline at end of file diff --git a/content/pages/terms.mdx b/content/pages/terms.mdx index e53263c..2c596c5 100644 --- a/content/pages/terms.mdx +++ b/content/pages/terms.mdx @@ -3,28 +3,54 @@ title: Terms & Conditions description: Read our terms and conditions. --- -Lorem ipsumMagna fermentum iaculis eu non diam. Vitae purus faucibus ornare suspendisse sed nisi lacus sed. In nibh mauris cursus mattis molestie a iaculis at. Enim sit amet venenatis urna. Eget sit amet tellus cras adipiscing. +Last Updated: 2024/08/01 -## Legal Notices +Welcome to WR.DO! These Terms of Service ("Terms") govern your use of our website and services provided by WR.DO ("we", "us", or "our"). By accessing or using our services, you agree to be bound by these Terms. Please read them carefully. -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Volutpat sed cras ornare arcu. Nibh ipsum consequat nisl vel pretium lectus quam id leo. A arcu cursus vitae congue. Amet justo donec enim diam. Vel pharetra vel turpis nunc eget lorem. Gravida quis blandit turpis cursus in. Semper auctor neque vitae tempus. Elementum facilisis leo vel fringilla est ullamcorper eget nulla. Imperdiet nulla malesuada pellentesque elit eget. +## 1. Acceptance of Terms -Felis donec et odio pellentesque diam volutpat commodo sed. +By accessing our website or using our services, you acknowledge that you have read, understood, and agree to be bound by these Terms and our [Privacy Policy](/privacy-policy). If you do not agree to these Terms, please do not use our services. -Tortor consequat id porta nibh. Fames ac turpis egestas maecenas pharetra convallis posuere morbi leo. Scelerisque fermentum dui faucibus in. Tortor posuere ac ut consequat semper viverra. +## 2. Account Registration -## Warranty Disclaimer +To use certain features of our services, you must register for an account. You agree to provide accurate and complete information and keep this information up to date. You are responsible for maintaining the confidentiality of your account and password and for all activities that occur under your account. -Tellus in hac habitasse platea dictumst vestibulum. Faucibus in ornare quam viverra. Viverra aliquet eget sit amet tellus cras adipiscing. Erat nam at lectus urna duis convallis convallis tellus. Bibendum est ultricies integer quis auctor elit sed vulputate. +## 3. Use of Services -Nisl condimentum id venenatis a condimentum vitae. Ac auctor augue mauris augue neque gravida in fermentum. Arcu felis bibendum ut tristique. Tempor commodo ullamcorper a lacus vestibulum sed arcu non. +You agree to use our services only for lawful purposes and in accordance with these Terms. You must not use our services: -## General +- In any way that violates any applicable law or regulation. +- To transmit, or procure the sending of, any advertising or promotional material, including any "junk mail", "chain letter", "spam", or any other similar solicitation. +- To impersonate or attempt to impersonate WR.DO, a WR.DO employee, another user, or any other person or entity. -Magna fermentum iaculis eu non diam. Vitae purus faucibus ornare suspendisse sed nisi lacus sed. In nibh mauris cursus mattis molestie a iaculis at. Enim sit amet venenatis urna. Eget sit amet tellus cras adipiscing. +## 4. Intellectual Property -Sed lectus vestibulum mattis ullamcorper velit. Id diam vel quam elementum pulvinar. In iaculis nunc sed augue lacus viverra. In hendrerit gravida rutrum quisque non tellus. Nisl purus in mollis nunc. +The content, features, and functionality of our services are owned by WR.DO, its licensors, or other providers and are protected by copyright and other intellectual property laws. You may not reproduce, distribute, modify, create derivative works of, publicly display, publicly perform, republish, or transmit any part of our services without prior written consent. -## Disclaimer +## 5. Disclaimer of Warranties -Amet justo donec enim diam. In hendrerit gravida rutrum quisque non. Hac habitasse platea dictumst quisque sagittis purus sit. Faucibus ornare suspendisse sed nisi lacus. Nulla porttitor massa id neque aliquam vestibulum. Ante in nibh mauris cursus mattis molestie a. Mi tempus imperdiet nulla malesuada. +Our services are provided "as is" and "as available" without any warranties of any kind, either express or implied. We do not warrant that our services will be uninterrupted, timely, secure, or error-free. + +## 6. Limitation of Liability + +To the fullest extent permitted by law, WR.DO shall not be liable for any indirect, incidental, special, consequential, or punitive damages, or any loss of profits or revenues, whether incurred directly or indirectly, or any loss of data, use, goodwill, or other intangible losses, resulting from (a) your access to or use of or inability to access or use the services; (b) any conduct or content of any third party on the services. + +## 7. Indemnification + +You agree to indemnify, defend, and hold harmless WR.DO and its officers, directors, employees, agents, licensors, and service providers from and against any claims, liabilities, damages, judgments, awards, losses, costs, expenses, or fees (including reasonable attorneys' fees) arising out of or relating to your violation of these Terms or your use of the services. + +## 8. Changes to Terms + +We reserve the right, at our sole discretion, to modify or replace these Terms at any time. By continuing to access or use our services after those revisions become effective, you agree to be bound by the revised Terms. + +## 9. Governing Law + +These Terms shall be governed and construed in accordance with the laws of [Your Jurisdiction], without regard to its conflict of law provisions. + +## 10. Contact Us + +If you have any questions about these Terms, please contact us at [contact@wr.do](mailto:contact@wr.do). + +--- + +© WR.DO - [MIT License](/LICENSE.md) \ No newline at end of file diff --git a/lib/email.ts b/lib/email.ts index 69f6485..2c37047 100644 --- a/lib/email.ts +++ b/lib/email.ts @@ -16,7 +16,7 @@ export const resend = new Resend(env.RESEND_API_KEY); // try { // const { data, error } = await resend.emails.send({ -// from: 'Next Template App ', +// from: 'WR.DO App ', // to: process.env.NODE_ENV === "development" ? 'delivered@resend.dev' : identifier, // subject: authSubject, // react: MagicLinkEmail({