mirror of
https://github.com/LukeHagar/website.git
synced 2025-12-06 04:22:07 +00:00
Merge branch 'main' into #1499-update-contributing-guide
This commit is contained in:
29
.github/workflows/tests.yml
vendored
29
.github/workflows/tests.yml
vendored
@@ -7,6 +7,35 @@ on:
|
||||
permissions: read-all
|
||||
|
||||
jobs:
|
||||
format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- name: Install corepack
|
||||
run: npm i -g corepack@latest
|
||||
- name: Install pnpm
|
||||
run: corepack enable
|
||||
- name: Get pnpm store directory
|
||||
shell: bash
|
||||
run: |
|
||||
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
|
||||
- uses: actions/cache@v4
|
||||
name: Setup pnpm cache
|
||||
with:
|
||||
path: ${{ env.STORE_PATH }}
|
||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pnpm-store-
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
- name: Check formatting
|
||||
run: pnpm format:check
|
||||
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"dev": "vite dev",
|
||||
"download-contributors": "node ./scripts/download-contributor-data.js",
|
||||
"format": "prettier --write .",
|
||||
"format:check": "prettier --check .",
|
||||
"icons:build": "node ./src/icons/build.js",
|
||||
"icons:generate": "node ./src/icons/optimize.js && node ./src/icons/build.js",
|
||||
"icons:optimize": "node ./src/icons/optimize.js",
|
||||
|
||||
95
src/lib/components/CommunitySupportChat.svelte
Normal file
95
src/lib/components/CommunitySupportChat.svelte
Normal file
@@ -0,0 +1,95 @@
|
||||
<ul class="web-chat-list">
|
||||
<li class="web-chat-item is-user-a">
|
||||
<div class="web-chat-message">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/community/avatars/walter.avif"
|
||||
height="40"
|
||||
width="40"
|
||||
alt="Avatar of Walter"
|
||||
/>
|
||||
<div class="web-user-box-name flex gap-2">
|
||||
<span class="text-sub-body font-medium">Walter O'Brien</span>
|
||||
<time class="text-caption web-u-color-text-tertiary">8:32 AM</time>
|
||||
</div>
|
||||
<div class="web-user-box-content text-caption text-primary">
|
||||
Hello devs! I am getting a CORS error when sending a request to the backend. Can
|
||||
you help me?
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="web-chat-item is-user-b">
|
||||
<div class="web-chat-message reply">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/avatars/steven.avif"
|
||||
width="48"
|
||||
height="48"
|
||||
alt="Avatar of Steven"
|
||||
/>
|
||||
<div class="web-user-box-name flex gap-2">
|
||||
<span class="text-sub-body font-medium">Steven</span>
|
||||
<time class="text-caption web-u-color-text-tertiary">8:38 AM</time>
|
||||
</div>
|
||||
<div class="web-user-box-content text-caption text-primary">
|
||||
Hey Walter! Is this the message you get
|
||||
<a class="web-link is-pink" href="/blog/post/cors-error" target="_blank"
|
||||
>"Access blocked by CORS policy"</a
|
||||
>?
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="web-chat-item is-user-a">
|
||||
<div class="web-chat-message">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/community/avatars/walter.avif"
|
||||
height="40"
|
||||
width="40"
|
||||
alt="Avatar of Walter"
|
||||
/>
|
||||
<div class="web-user-box-name flex gap-2">
|
||||
<span class="text-sub-body font-medium">Walter O'Brien</span>
|
||||
<time class="text-caption web-u-color-text-tertiary">9:05 AM</time>
|
||||
</div>
|
||||
<div class="web-user-box-content text-caption text-primary">Yes!</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="web-chat-item is-user-b">
|
||||
<div class="web-chat-message reply">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/avatars/steven.avif"
|
||||
width="48"
|
||||
height="48"
|
||||
alt="Avatar of Steven"
|
||||
/>
|
||||
<div class="web-user-box-name flex gap-2">
|
||||
<span class="text-sub-body font-medium">Steven</span>
|
||||
<time class="text-caption web-u-color-text-tertiary">9:08 AM</time>
|
||||
</div>
|
||||
<div class="web-user-box-content text-caption text-primary">
|
||||
You should be able to debug this with a few steps. Just follow this blog:
|
||||
<a class="web-link is-pink" href="/blog/post/cors-error" target="_blank"
|
||||
>https://appwrite.io/blog/post/cors-error</a
|
||||
>. Let me know if this helps 🙂
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<style>
|
||||
@media (max-width: 768px) {
|
||||
.web-chat-list {
|
||||
gap: 2rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -1,4 +1,6 @@
|
||||
<script lang="ts" context="module">
|
||||
import type { ComponentType } from 'svelte';
|
||||
|
||||
export type NavLink = {
|
||||
label: string;
|
||||
href?: string;
|
||||
@@ -10,7 +12,7 @@
|
||||
|
||||
<script lang="ts">
|
||||
import { classNames } from '$lib/utils/classnames';
|
||||
import type { ComponentType } from 'svelte';
|
||||
import { trackEvent } from '$lib/actions/analytics';
|
||||
|
||||
export let initialized = false;
|
||||
|
||||
@@ -39,6 +41,12 @@
|
||||
href={link.href}
|
||||
data-initialized={initialized ? '' : undefined}
|
||||
data-badge={link.showBadge ? '' : undefined}
|
||||
on:click={() => {
|
||||
trackEvent({
|
||||
plausible: { name: `${link.label} in header` },
|
||||
posthog: { name: `${link.label.toLowerCase()}_nav_click` }
|
||||
});
|
||||
}}
|
||||
>{link.label}
|
||||
</a>
|
||||
{/if}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
import { slide } from 'svelte/transition';
|
||||
import { products, sublinks } from './ProductsSubmenu.svelte';
|
||||
import { dev } from '$app/environment';
|
||||
import { trackEvent } from '$lib/actions/analytics';
|
||||
|
||||
export let label: string;
|
||||
|
||||
@@ -35,6 +36,12 @@
|
||||
<a
|
||||
href={product.href}
|
||||
class="group flex gap-3 rounded-xl p-2 text-white outline-none transition-colors focus:bg-white/8"
|
||||
on:click={() =>
|
||||
trackEvent({
|
||||
plausible: {
|
||||
name: `${product.name} in products submenu`
|
||||
}
|
||||
})}
|
||||
>
|
||||
<div
|
||||
class="flex size-12 shrink-0 items-center justify-center rounded-lg border border-white/12 bg-white/6"
|
||||
|
||||
@@ -17,12 +17,16 @@
|
||||
import { writable } from 'svelte/store';
|
||||
import { Feedback } from '$lib/components';
|
||||
import { scrollToTop } from '$lib/actions/scrollToTop';
|
||||
import type { Language } from '$lib/utils/code';
|
||||
|
||||
export let title: string;
|
||||
export let toc: Array<TocItem>;
|
||||
export let back: string | undefined = undefined;
|
||||
export let date: string | undefined = undefined;
|
||||
|
||||
// Shared writable store for a selected language.
|
||||
setContext('language-context', writable<Language>());
|
||||
|
||||
const reducedArticleSize = setContext('articleHasNumericBadge', writable(false));
|
||||
</script>
|
||||
|
||||
|
||||
@@ -93,8 +93,13 @@
|
||||
|
||||
.overlay {
|
||||
inset: 0;
|
||||
z-index: 25;
|
||||
/* docs side nav have a z-index of 35 */
|
||||
z-index: 36;
|
||||
position: fixed;
|
||||
background-color: rgba(228, 228, 228, 0.98);
|
||||
}
|
||||
|
||||
:global(.dark) .overlay {
|
||||
background-color: rgba(27, 27, 27, 0.98);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,4 +19,5 @@
|
||||
height={sizes[size]}
|
||||
style:width={sizes[size]}
|
||||
style:vertical-align="middle"
|
||||
style:min-width={sizes[size]}
|
||||
/>
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
content: writable('')
|
||||
});
|
||||
|
||||
const languageContext = getContext<Writable<string>>('language-context');
|
||||
|
||||
const { snippets, selected, content } = getContext<CodeContext>('multi-code');
|
||||
|
||||
snippets.subscribe((n) => {
|
||||
@@ -29,6 +31,24 @@
|
||||
}
|
||||
});
|
||||
|
||||
selected.subscribe((language) => {
|
||||
// apply if exists in snippets
|
||||
if (language && $snippets.has(language as Language)) {
|
||||
languageContext?.set(language);
|
||||
}
|
||||
});
|
||||
|
||||
languageContext?.subscribe((language) => {
|
||||
if (
|
||||
language &&
|
||||
language !== $selected &&
|
||||
// apply if exists in snippets
|
||||
$snippets.has(language as Language)
|
||||
) {
|
||||
selected.set(language);
|
||||
}
|
||||
});
|
||||
|
||||
enum CopyStatus {
|
||||
Copy = 'Copy',
|
||||
Copied = 'Copied!'
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
import Copy from './Copy.svelte';
|
||||
|
||||
const title = 'Assets' + TITLE_SUFFIX;
|
||||
const description = "This page features Appwrite's key brand assets including the logotype, colors, product visuals, and practical guidelines for their usage.";
|
||||
const description =
|
||||
"This page features Appwrite's key brand assets including the logotype, colors, product visuals, and practical guidelines for their usage.";
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
|
||||
enum Section {
|
||||
|
||||
@@ -20,7 +20,7 @@ In this blog, we’ll learn to build a URL shortener using Appwrite Functions te
|
||||
You can find the source code on our [templates GitHub repository](https://github.com/appwrite/templates/tree/main/node/url-shortener).
|
||||
|
||||
# Setting up the Template
|
||||
To get started, you need to navigate to the functions page on the **[Appwrite](https://appwrite.io/cloud)** console. From there, we will select the **Templates** tab, search for and select the **URL Shortener** function template.
|
||||
To get started, you need to navigate to the functions page on the **[Appwrite](https://cloud.appwrite.io/)** console. From there, we will select the **Templates** tab, search for and select the **URL Shortener** function template.
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -62,5 +62,5 @@ We’ve covered the basics, and now it’s your time to shine! With a few change
|
||||
For more information about Appwrite and Appwrite Functions:
|
||||
|
||||
1. **[Appwrite Function Docs](https://appwrite.io/docs/functions)**: These documents provide more information on how to use Appwrite Functions.
|
||||
2. **[Appwrite Cloud](https://appwrite.io/cloud)**: Try our cloud service to get started quickly.
|
||||
2. **[Appwrite Cloud](https://cloud.appwrite.io/)**: Try our cloud service to get started quickly.
|
||||
3. **[Appwrite Discord](https://discord.com/invite/appwrite)**: Connect with other developers and the Appwrite team for discussion, questions, and collaboration.
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
|
||||
const seo = {
|
||||
title: 'Changelog' + TITLE_SUFFIX,
|
||||
description: "Explore Appwrite's changelog to stay on top of all the product updates and track our journey.",
|
||||
description:
|
||||
"Explore Appwrite's changelog to stay on top of all the product updates and track our journey.",
|
||||
ogImage: `${DEFAULT_HOST}/images/open-graph/website.png`
|
||||
};
|
||||
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
import { DEFAULT_DESCRIPTION, DEFAULT_HOST } from '$lib/utils/metadata';
|
||||
|
||||
const title = 'Company' + TITLE_SUFFIX;
|
||||
const description = "At Appwrite, we aim to remove technical barriers with our backend solutions. Click here to learn more about our organization, its mission and goals.";
|
||||
const description =
|
||||
'At Appwrite, we aim to remove technical barriers with our backend solutions. Click here to learn more about our organization, its mission and goals.';
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -39,7 +39,8 @@
|
||||
}
|
||||
|
||||
const title = 'Contact us' + TITLE_SUFFIX;
|
||||
const description = "Fill in this short form to get in touch with the Appwrite team. Questions, feature requests or bug reports - all input is welcome!";
|
||||
const description =
|
||||
'Fill in this short form to get in touch with the Appwrite team. Questions, feature requests or bug reports - all input is welcome!';
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -51,7 +51,8 @@
|
||||
}
|
||||
|
||||
const title = 'Enterprise' + TITLE_SUFFIX;
|
||||
const description = "Want to learn more about Appwrite's Enterprise plan? Send us a message, and we'll propose a pricing solution that fits your unique use case.";
|
||||
const description =
|
||||
"Want to learn more about Appwrite's Enterprise plan? Send us a message, and we'll propose a pricing solution that fits your unique use case.";
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -128,6 +128,11 @@
|
||||
new: true,
|
||||
label: 'Fair use',
|
||||
href: '/docs/advanced/platform/fair-use-policy'
|
||||
},
|
||||
{
|
||||
new: true,
|
||||
label: 'Abuse',
|
||||
href: '/docs/advanced/platform/abuse'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
14
src/routes/docs/advanced/platform/abuse/+page.markdoc
Normal file
14
src/routes/docs/advanced/platform/abuse/+page.markdoc
Normal file
@@ -0,0 +1,14 @@
|
||||
---
|
||||
layout: article
|
||||
title: Abuse policy
|
||||
description: Guidelines on abusive behavior, prohibited activities, and reporting mechanisms under our Fair Use Policy.
|
||||
---
|
||||
|
||||
Appwrite is committed to providing a fair, secure, and high-quality experience for all users. This Abuse Policy, as part of our overall Fair Use Policy, outlines unacceptable behaviors and the steps you can take to report any suspected abuse. Our goal is to maintain a safe environment where everyone can build, innovate, and collaborate without fear of harmful or illegal activity.
|
||||
|
||||
{% partial file="prohibited-activities.md" /%}
|
||||
|
||||
# Reporting Abuse {% #reporting-abuse %}
|
||||
If you observe or suspect any prohibited activity, please report it as soon as possible to [abuse@appwrite.io](mailto:abuse@appwrite.io).
|
||||
|
||||
Please include any relevant details (e.g., specific URLs, project IDs, or screenshots) so that we can effectively investigate and address the issue. We will review each report confidentially and take any necessary actions, which may include account suspension, service termination, or referral to law enforcement.
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB |
@@ -1,5 +1,5 @@
|
||||
<script>
|
||||
import Chat from '../(assets)/chat.png';
|
||||
<script lang="ts">
|
||||
import CommunitySupportChat from '$lib/components/CommunitySupportChat.svelte';
|
||||
</script>
|
||||
|
||||
<div class="container grid items-center gap-8 md:grid-cols-2">
|
||||
@@ -9,8 +9,8 @@
|
||||
</h2>
|
||||
<p class="text-secondary text-pretty">
|
||||
Join a growing community of developers and students who use Appwrite to build their
|
||||
products. Gain access to a wealth of knowledge, support, and shared experiences
|
||||
needed to grow and advance your tech career.
|
||||
products. Gain access to a wealth of knowledge, support, and shared experiences needed
|
||||
to grow and advance your tech career.
|
||||
</p>
|
||||
<a
|
||||
href="/discord"
|
||||
@@ -20,5 +20,8 @@
|
||||
Join our Discord</a
|
||||
>
|
||||
</div>
|
||||
<img src={Chat} alt="Chat" class="mx-auto" />
|
||||
|
||||
<div class="px-4">
|
||||
<CommunitySupportChat />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
},
|
||||
{
|
||||
question: 'Who is eligible to apply?',
|
||||
answer: 'Any student enrolled in the GitHub Student Developer Pack can apply for free and receive Appwrite\'s Education plan until graduation.'
|
||||
answer: "Any student enrolled in the GitHub Student Developer Pack can apply for free and receive Appwrite's Education plan until graduation."
|
||||
},
|
||||
{
|
||||
question: 'How do I apply?',
|
||||
|
||||
@@ -21,8 +21,7 @@
|
||||
},
|
||||
{
|
||||
label: 'Join a vibrant community',
|
||||
description:
|
||||
'Get community support in the Appwrite Discord server.',
|
||||
description: 'Get community support in the Appwrite Discord server.',
|
||||
icon: ChatIcon
|
||||
}
|
||||
];
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
</p>
|
||||
|
||||
<p class="font-medium">
|
||||
This credit is available only for users who are verified through the GitHub program
|
||||
as students. The plan is valid until you graduate from GitHub Education.
|
||||
This credit is available only for users who are verified through the GitHub program as
|
||||
students. The plan is valid until you graduate from GitHub Education.
|
||||
</p>
|
||||
</div>
|
||||
<img src={Kickstart} alt="Kickstart" class="mx-auto" />
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
import Faq from './(components)/FAQ.svelte';
|
||||
|
||||
const title = 'Education' + TITLE_SUFFIX;
|
||||
const description = "Students, here's your chance to expand your skillset without spending a penny. Sign up for Appwrite Education program to get access to our Pro plan.";
|
||||
const description =
|
||||
"Students, here's your chance to expand your skillset without spending a penny. Sign up for Appwrite Education program to get access to our Pro plan.";
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -8,7 +8,8 @@
|
||||
import FloatingHead from '$lib/components/FloatingHead.svelte';
|
||||
|
||||
const title = 'Heroes' + TITLE_SUFFIX;
|
||||
const description = "If you're passionate about helping developers build great products with Appwrite - join our Heroes program and get access to a number of exclusive perks.";
|
||||
const description =
|
||||
"If you're passionate about helping developers build great products with Appwrite - join our Heroes program and get access to a number of exclusive perks.";
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
|
||||
const heroCards: HeroCardProps[] = [
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
export let data;
|
||||
|
||||
const title = 'Integrations' + TITLE_SUFFIX;
|
||||
const description = "Connect your favorite apps to Appwrite for one unified tech stack. Explore our catalog of integrations now.";
|
||||
const description =
|
||||
'Connect your favorite apps to Appwrite for one unified tech stack. Explore our catalog of integrations now.';
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
|
||||
// search functionality
|
||||
|
||||
@@ -54,7 +54,8 @@
|
||||
}
|
||||
|
||||
const title = 'Become a Technology Partner' + TITLE_SUFFIX;
|
||||
const description = "Want to integrate your app with Appwrite's API? Apply to our Technology Partners program by filling a short form.";
|
||||
const description =
|
||||
"Want to integrate your app with Appwrite's API? Apply to our Technology Partners program by filling a short form.";
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -49,10 +49,10 @@
|
||||
<div class="flex flex-col gap-4">
|
||||
<h1 class="font-aeonik-pro text-title text-primary text-pretty">Partner Tiers</h1>
|
||||
<p class="text-body text-secondary text-pretty font-medium">
|
||||
As you continue to grow, so do your opportunities with Appwrite.
|
||||
Our Partner Program is designed to scale with you as you grow.
|
||||
With flexible tiers tailored to your success. A partnership built to
|
||||
scale together for lasting success in a competitive market.
|
||||
As you continue to grow, so do your opportunities with Appwrite. Our Partner
|
||||
Program is designed to scale with you as you grow. With flexible tiers tailored
|
||||
to your success. A partnership built to scale together for lasting success in a
|
||||
competitive market.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
import Features from './(components)/features/Features.svelte';
|
||||
|
||||
const title = 'Auth' + TITLE_SUFFIX;
|
||||
const description = 'Enable secure and reliable user login with Appwrite Auth. We support multiple authentication methods with compliance features out of the box.';
|
||||
const description =
|
||||
'Enable secure and reliable user login with Appwrite Auth. We support multiple authentication methods with compliance features out of the box.';
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -18,7 +18,8 @@
|
||||
import { PUBLIC_APPWRITE_DASHBOARD } from '$env/static/public';
|
||||
|
||||
const title = 'Functions' + TITLE_SUFFIX;
|
||||
const description = "Appwrite Functions offer everything you need to deploy and scale serverless functions easily, without any server management overhead.";
|
||||
const description =
|
||||
'Appwrite Functions offer everything you need to deploy and scale serverless functions easily, without any server management overhead.';
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@
|
||||
import { PUBLIC_APPWRITE_DASHBOARD } from '$env/static/public';
|
||||
|
||||
const title = 'Messaging' + TITLE_SUFFIX;
|
||||
const description = "Appwrite Messaging allows you to communicate with your audience across various mediums. Push notifications, SMS and emails - set up within minutes!";
|
||||
const description =
|
||||
'Appwrite Messaging allows you to communicate with your audience across various mediums. Push notifications, SMS and emails - set up within minutes!';
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
|
||||
const codeTopic = [
|
||||
|
||||
@@ -17,7 +17,8 @@
|
||||
import Optimized from './(components)/Optimized.svelte';
|
||||
|
||||
const title = 'Storage' + TITLE_SUFFIX;
|
||||
const description = "Get to know Appwrite Storage - our robust infrastructure allows you to store, optimize and encrypt all of your project files in one place.";
|
||||
const description =
|
||||
'Get to know Appwrite Storage - our robust infrastructure allows you to store, optimize and encrypt all of your project files in one place.';
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
</script>
|
||||
|
||||
|
||||
@@ -20,9 +20,11 @@
|
||||
import { PUBLIC_GROWTH_ENDPOINT } from '$env/static/public';
|
||||
import Faq from './faq.svelte';
|
||||
import { getReferrerAndUtmSource } from '$lib/utils/utm';
|
||||
import CommunitySupportChat from '$lib/components/CommunitySupportChat.svelte';
|
||||
|
||||
const title = 'Startups' + TITLE_SUFFIX;
|
||||
const description = "Get $20,000 in cloud credits to fulfill all your startup's backend needs. Apply for Appwrite's Startups Program today.";
|
||||
const description =
|
||||
"Get $20,000 in cloud credits to fulfill all your startup's backend needs. Apply for Appwrite's Startups Program today.";
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
|
||||
let personName: string;
|
||||
@@ -481,145 +483,7 @@
|
||||
<div
|
||||
class="web-chat web-u-max-width-580 web-u-margin-block-start-40-mobile"
|
||||
>
|
||||
<ul class="web-chat-list">
|
||||
<li class="web-chat-item is-user-a">
|
||||
<div class="web-chat-message">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/community/avatars/walter.avif"
|
||||
height="40"
|
||||
width="40"
|
||||
alt="Avatar of Walter"
|
||||
/>
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Walter O'Brien</span
|
||||
>
|
||||
<time
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>8:32 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
Hello devs! I am getting a CORS
|
||||
error when sending a request to the
|
||||
backend. Can you help me?
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="web-chat-item is-user-b">
|
||||
<div class="web-chat-message">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/avatars/steven.avif"
|
||||
width="48"
|
||||
height="48"
|
||||
alt="Avatar of Steven"
|
||||
/>
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Steven</span
|
||||
>
|
||||
<time
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>8:38 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
Hey Louis! Is this the message you
|
||||
get
|
||||
<a
|
||||
class="web-link is-pink"
|
||||
href="/blog/post/cors-error"
|
||||
target="_blank"
|
||||
>"Access blocked by CORS policy"</a
|
||||
>?
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="web-chat-item is-user-a">
|
||||
<div class="web-chat-message">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/community/avatars/walter.avif"
|
||||
height="40"
|
||||
width="40"
|
||||
alt="Avatar of Walter"
|
||||
/>
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Walter O'Brien</span
|
||||
>
|
||||
<time
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>9:05 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
Yes!
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li class="web-chat-item is-user-b">
|
||||
<div class="web-chat-message">
|
||||
<div class="web-user-box">
|
||||
<img
|
||||
class="web-user-box-image"
|
||||
src="/images/avatars/steven.avif"
|
||||
width="48"
|
||||
height="48"
|
||||
alt="Avatar of Steven"
|
||||
/>
|
||||
<div
|
||||
class="web-user-box-name flex gap-2"
|
||||
>
|
||||
<span
|
||||
class="text-sub-body font-medium"
|
||||
>Steven</span
|
||||
>
|
||||
<time
|
||||
class="text-caption web-u-color-text-tertiary"
|
||||
>9:08 AM</time
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
class="web-user-box-content text-caption text-primary"
|
||||
>
|
||||
You should be able to debug this
|
||||
with a few steps. Just follow this
|
||||
blog:
|
||||
<a
|
||||
class="web-link is-pink"
|
||||
href="/blog/post/cors-error"
|
||||
target="_blank"
|
||||
>https://appwrite.io/blog/post/cors-error</a
|
||||
>. Let me know if this helps 🙂
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<CommunitySupportChat />
|
||||
</div>
|
||||
</div>
|
||||
<div class="web-mx-auto-mobile ml-auto flex flex-col gap-4">
|
||||
|
||||
@@ -4,8 +4,7 @@ title: Terms and Conditions
|
||||
description: Review our Terms of Service to understand the rules and guidelines for using our open-source backend-as-a-service platform.
|
||||
---
|
||||
|
||||
|
||||
These Terms and Conditions ("Terms," "Terms and Conditions") govern your relationship with [Appwrite (https://appwrite.io)](https://appwrite.io) website (the "Service") operated by Appwrite ("Us," "We," or "Our").
|
||||
These Terms and Conditions ("Terms," "Terms and Conditions") govern your relationship with [Appwrite](https://appwrite.io) website (the "Service") operated by Appwrite ("Us," "We," or "Our").
|
||||
|
||||
Please read these Terms and Conditions carefully before using the Service.
|
||||
|
||||
@@ -13,36 +12,28 @@ Your access to and use of the Service is conditioned on your acceptance of and c
|
||||
|
||||
By accessing or using the Service, you agree to be bound by these Terms. If you disagree with any part of the terms, then you may not access the Service.
|
||||
|
||||
|
||||
|
||||
# Subscriptions
|
||||
|
||||
Some parts of the Service are billed on a subscription basis ("Subscriptions"). You will be billed in advance on a recurring and periodic basis ("Billing Cycle"). Billing cycles are set on a monthly basis.
|
||||
|
||||
At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or Appwrite cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting Appwrite customer support team.
|
||||
At the end of each Billing Cycle, your Subscription will automatically renew under the exact same conditions unless you cancel it or Appwrite cancels it. You may cancel your Subscription renewal either through your online account management page or by contacting the Appwrite customer support team.
|
||||
|
||||
A valid payment method, including credit card or PayPal, is required to process the payment for your Subscription. You shall provide Appwrite with accurate and complete billing information, including full name, address, state, zip code, telephone number, and valid payment method information. By submitting such payment information, you automatically authorize Appwrite to charge all Subscription fees incurred through your account to any such payment instruments.
|
||||
|
||||
Should automatic billing fail to occur for any reason, Appwrite will issue an electronic invoice indicating that you must proceed manually, within a certain deadline date, with the full payment corresponding to the billing period as indicated on the invoice.
|
||||
|
||||
|
||||
|
||||
# Fee Changes
|
||||
|
||||
Appwrite, in its sole discretion and at any time, may modify the Subscription fees for the Subscriptions. Any Subscription fee change will become effective at the end of the then-current Billing Cycle.
|
||||
|
||||
Appwrite will provide you with a reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.
|
||||
Appwrite will provide you with reasonable prior notice of any change in Subscription fees to give you an opportunity to terminate your Subscription before such change becomes effective.
|
||||
|
||||
Your continued use of the Service after the Subscription fee change comes into effect constitutes your agreement to pay the modified Subscription fee amount.
|
||||
|
||||
|
||||
|
||||
# Refunds
|
||||
|
||||
Certain refund requests for Subscriptions may be considered by Appwrite on a case-by-case basis and granted in the sole discretion of Appwrite.
|
||||
|
||||
|
||||
|
||||
# Content
|
||||
|
||||
Our Service allows you to post, link, store, share, and otherwise make available certain information, text, graphics, videos, or other material ("Content"). You are responsible for the Content that you post to the Service, including its legality, reliability, and appropriateness.
|
||||
@@ -51,10 +42,9 @@ By posting Content to the Service, you grant us the right and license to use, mo
|
||||
|
||||
You represent and warrant that: (i) the Content is yours (you own it) or you have the right to use it and grant us the rights and license as provided in these Terms, and (ii) the posting of your Content on or through the Service does not violate the privacy rights, publicity rights, copyrights, contract rights, or any other rights of any person.
|
||||
|
||||
|
||||
# Accounts
|
||||
|
||||
When you create an account with us, you must provide us information that is accurate, complete, and current at all times. Failure to do so constitutes a breach of the Terms, which may result in immediate termination of your account on our Service.
|
||||
When you create an account with us, you must provide information that is accurate, complete, and current at all times. Failure to do so constitutes a breach of the Terms, which may result in immediate termination of your account on our Service.
|
||||
|
||||
You are responsible for safeguarding the password that you use to access the Service and for any activities or actions under your password, whether your password is with our Service or a third-party service.
|
||||
|
||||
@@ -64,29 +54,25 @@ You agree not to disclose your password to any third party. You must notify us i
|
||||
|
||||
The Service and its original content (excluding Content provided by users), features, and functionality are and will remain the exclusive property of Appwrite and its licensors. The Service is protected by copyright, trademark, and other laws of both Israel and foreign countries. Our trademarks and trade dress may not be used in connection with any product or service without the prior written consent of Appwrite.
|
||||
|
||||
Notwithstanding any other provision of these Terms, to the maximum extent permitted by law, we may collect, generate, process, use and/or publish Anonymous Information (defined below) relating to your, your users’ use of the Service, and/or disclose it, in order to provide, improve and publicize the Service and our products and services, in order to track general industry trends, develop and publish white papers, reports and summaries, and for other legitimate business purposes, all the foregoing without restriction or limitation of any kind. “Anonymous Information” means information that does not enable the identification of an individual, such as aggregated and analytics information. For clarity, Anonymous Information will not include any personally identifiable information, and Appwrite shall own all Anonymous Information collected or obtained by Appwrite.
|
||||
Notwithstanding any other provision of these Terms, to the maximum extent permitted by law, we may collect, generate, process, use, and/or publish Anonymous Information (defined below) relating to your and your users’ use of the Service, and/or disclose it, in order to provide, improve, and publicize the Service and our products and services, track general industry trends, develop and publish white papers, reports, and summaries, and for other legitimate business purposes, all without restriction or limitation of any kind. "Anonymous Information" means information that does not enable the identification of an individual, such as aggregated and analytics information. For clarity, Anonymous Information will not include any personally identifiable information, and Appwrite shall own all Anonymous Information collected or obtained by Appwrite.
|
||||
|
||||
# Prohibited Use of the SMS Messages Service
|
||||
{% partial file="prohibited-activities.md" /%}
|
||||
|
||||
You agree not to use the Service for the sending of unsolicited or spam SMS messages. This includes but is not limited to the prohibition of
|
||||
- using the Service in connection with any content, product, or service the recipient has not explicitly requested.
|
||||
- sending SMS messages through the Service unless you have obtained prior express consent from the recipients, as required by applicable law.
|
||||
## Prohibited Use of the SMS Messages Service
|
||||
|
||||
Failure to adhere to these prohibitions and/or any applicable law relating to the use of such SMS Service can result in immediate termination of your account and further legal action. You shall comply with any and all applicable laws and regulations.
|
||||
You agree not to use the Service for the sending of unsolicited or spam SMS messages. This includes but is not limited to the prohibition of:
|
||||
|
||||
- Using the Service in connection with any content, product, or service the recipient has not explicitly requested.
|
||||
|
||||
- Sending SMS messages through the Service unless you have obtained prior express consent from the recipients, as required by applicable law.
|
||||
|
||||
Failure to adhere to these prohibitions and any applicable laws relating to the use of the SMS Service can result in immediate termination of your account and further legal action. You shall comply with all applicable laws and regulations.
|
||||
|
||||
Furthermore, you agree to indemnify and hold harmless Appwrite, its affiliates, directors, employees, and agents against any claims, proceedings, damages, liabilities, fines, or costs arising from your misuse of the SMS services, which includes, but is not limited to the sending of unsolicited SMS messages, your failure to secure the necessary consents from recipients or not adhering to applicable laws and regulations in relevant jurisdictions.
|
||||
|
||||
# Privacy
|
||||
# Reporting Abuse
|
||||
|
||||
Appwrite’s privacy policy is available at [https://appwrite.io/privacy](https://appwrite.io/privacy).
|
||||
|
||||
# Links To Other Web Sites
|
||||
|
||||
Our Service may contain links to third-party web sites or services that are not owned or controlled by Appwrite.
|
||||
|
||||
Appwrite has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third-party web sites or services. You further acknowledge and agree that Appwrite shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods, or services available on or through any such web sites or services.
|
||||
|
||||
We strongly advise you to read the terms and conditions and privacy policies of any third-party web sites or services that you visit.
|
||||
If you become aware of any misuse of the Service, including any prohibited conduct or content, please report it immediately to us at [abuse@appwrite.io](mailto:abuse@appwrite.io).
|
||||
|
||||
# Termination
|
||||
|
||||
@@ -94,20 +80,25 @@ We may terminate or suspend your account immediately, without prior notice or li
|
||||
|
||||
Upon termination, your right to use the Service will immediately cease. If you wish to terminate your account, you may simply discontinue using the Service.
|
||||
|
||||
# Limitation Of Liability
|
||||
# Limitation of Liability
|
||||
|
||||
In no event shall Appwrite, nor its directors, employees, partners, agents, suppliers, or affiliates, be liable for any indirect, incidental, special, consequential, or punitive damages, including without limitation, loss of profits, data, use, goodwill, or other intangible losses, resulting from (I) your access to or use of or inability to access or use the Service; (II) any conduct or content of any third party on the Service; (III) any content obtained from the Service; and (IV) unauthorized access, use, or alteration of your transmissions or content, whether based on warranty, contract, tort (including negligence) or any other legal theory, whether or not we have been informed of the possibility of such damage, and even if a remedy set forth herein is found to have failed of its essential purpose.
|
||||
|
||||
Whether based on warranty, contract, tort (including negligence), or any other legal theory, whether or not we have been informed of the possibility of such damage, and even if a remedy set forth herein is found to have failed of its essential purpose.
|
||||
|
||||
# Disclaimer
|
||||
|
||||
Your use of the Service is at your sole risk. The Service is provided on an "AS IS" and "AS AVAILABLE" basis. The Service is provided without warranties of any kind, whether express or implied, including, but not limited to, implied warranties of merchantability, fitness for a particular purpose, non-infringement or course of performance.
|
||||
Your use of the Service is at your sole risk. The Service is provided on an "AS IS" and "AS AVAILABLE" basis. The Service is provided without warranties of any kind, whether express or implied, including but not limited to, implied warranties of merchantability, fitness for a particular purpose, non-infringement, or course of performance.
|
||||
|
||||
Appwrite its subsidiaries, affiliates, and its licensors do not warrant that:
|
||||
- the Service will function uninterrupted, secure or available at any particular time or location;
|
||||
- any errors or defects will be corrected;
|
||||
- the Service is free of viruses or other harmful components; or
|
||||
- the results of using the Service will meet your requirements.
|
||||
Appwrite, its subsidiaries, affiliates, and its licensors do not warrant that:
|
||||
|
||||
- The Service will function uninterrupted, secure, or available at any particular time or location.
|
||||
|
||||
- Any errors or defects will be corrected.
|
||||
|
||||
- The Service is free of viruses or other harmful components.
|
||||
|
||||
- The results of using the Service will meet your requirements.
|
||||
|
||||
# Governing Law
|
||||
|
||||
@@ -121,6 +112,21 @@ We reserve the right, at our sole discretion, to modify or replace these Terms a
|
||||
|
||||
By continuing to access or use our Service after those revisions become effective, you agree to be bound by the revised terms. If you do not agree to the new terms, please stop using the Service.
|
||||
|
||||
# Privacy
|
||||
|
||||
Appwrite’s privacy policy is available at [https://appwrite.io/privacy](https://appwrite.io/privacy).
|
||||
|
||||
# Links to Other Websites
|
||||
|
||||
Our Service may contain links to third-party websites or services that are not owned or controlled by Appwrite.
|
||||
|
||||
Appwrite has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third-party websites or services. You further acknowledge and agree that Appwrite shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods, or services available on or through any such websites or services.
|
||||
|
||||
We strongly advise you to read the terms and conditions and privacy policies of any third-party websites or services that you visit.
|
||||
|
||||
# Contact Us
|
||||
|
||||
If you have any questions about these Terms, please [contact us](/contact-us).
|
||||
|
||||
To report abuse or violations, please contact us at [abuse@appwrite.io](mailto:abuse@appwrite.io).
|
||||
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
import Input from '$lib/components/ui/Input.svelte';
|
||||
|
||||
const title = 'Threads' + TITLE_SUFFIX;
|
||||
const description = "Appwrite's Threads page showcases our community interactions on Discord. Join the conversation, ask questions, or assist other members with their issues.";
|
||||
const description =
|
||||
"Appwrite's Threads page showcases our community interactions on Discord. Join the conversation, ask questions, or assist other members with their issues.";
|
||||
const ogImage = DEFAULT_HOST + '/images/open-graph/website.png';
|
||||
|
||||
export let data;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@use '../abstract' as *;
|
||||
|
||||
.#{$p}-select {
|
||||
--p-select-min-width: #{pxToRem(130)};
|
||||
--p-select-min-width: #{pxToRem(145)};
|
||||
|
||||
all:unset; display:flex; align-items:center; position:relative; line-height:1; user-select:none; cursor:pointer;
|
||||
color:hsl(var(--web-color-primary)); font-size:pxToRem(14); min-width: var(--p-select-min-width); height: pxToRem(30);
|
||||
|
||||
@@ -21,6 +21,22 @@
|
||||
@media #{$break1} {
|
||||
|
||||
}
|
||||
|
||||
/* reversed arrow on replies */
|
||||
&.reply {
|
||||
&::before {
|
||||
rotate: 180deg;
|
||||
inset-block-end: auto;
|
||||
inset-block-start: pxToRem(-16);
|
||||
background-color: var(--border-color);
|
||||
}
|
||||
|
||||
&::after {
|
||||
rotate: 180deg;
|
||||
inset-block-start: pxToRem(-14.5);
|
||||
inset-block-end: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* user 'b' messages */
|
||||
|
||||
Reference in New Issue
Block a user