{#each posts.filter((p) => p.title !== title).slice(0, 3) as post}
- {@const author = authors.find((a) => a.name.includes(post.author))}
+ {@const author = authors.find((a) => a.slug === post.author)}
{#if author}
\ No newline at end of file
diff --git a/src/markdoc/nodes/_Module.svelte b/src/markdoc/nodes/_Module.svelte
index 5e9337d947..3ea5b49f75 100644
--- a/src/markdoc/nodes/_Module.svelte
+++ b/src/markdoc/nodes/_Module.svelte
@@ -5,6 +5,7 @@
export { default as Heading } from './Heading.svelte';
export { default as List } from './List.svelte';
export { default as Paragraph } from './Paragraph.svelte';
+ export { default as Strong } from './Strong.svelte';
export { default as Image } from './Image.svelte';
export { default as Item } from './Item.svelte';
export { default as Link } from './Link.svelte';
diff --git a/src/partials/account-vs-user.md b/src/partials/account-vs-user.md
index 638d806300..6d217e258f 100644
--- a/src/partials/account-vs-user.md
+++ b/src/partials/account-vs-user.md
@@ -3,7 +3,7 @@
Appwrite provides two APIs to manager user accounts.
The Account API is the API you should use in your **client applications** like web, Flutter, mobile, and native apps.
-Account API creates sessions, which represent an authenticated user and is attached to a user's [account](/docs/products/auth/account).
+Account API creates sessions, which represent an authenticated user and is attached to a user's [account](/docs/products/auth/accounts).
Sessions respect [permissions](/docs/advanced/platform/permissions), which means users can only access resources if they have been granted the correct permissions.
You'll notice that the Account API doesn't allow you to view or make changes to other users.
diff --git a/src/partials/auth-events.md b/src/partials/auth-events.md
index e7ebf909b4..43340cf335 100644
--- a/src/partials/auth-events.md
+++ b/src/partials/auth-events.md
@@ -2,31 +2,31 @@
| Name | Payload | Description |
|----------------------------------------|------------------------------------|-----------------------------------------------------|
-| `teams.*` | [Team Object](/docs/models/team) | This event triggers on any teams event. |
-| `teams.*.create` | [Team Object](/docs/models/team) | This event triggers when a team is created. |
-| `teams.*.delete` | [Team Object](/docs/models/team) | This event triggers when a team is deleted. |
-| `teams.*.memberships.*` | [Membership Object](/docs/models/membership) | This event triggers on any team memberships event. |
-| `teams.*.memberships.*.create` | [Membership Object](/docs/models/membership) | This event triggers when a membership is created. |
-| `teams.*.memberships.*.delete` | [Membership Object](/docs/models/membership) | This event triggers when a membership is deleted. |
-| `teams.*.memberships.*.update` | [Membership Object](/docs/models/membership) | This event triggers when a membership is updated. |
-| `teams.*.memberships.*.update.status` | [Membership Object](/docs/models/membership) | This event triggers when a team memberships status is updated. |
-| `teams.*.update` | [Team Object](/docs/models/team) | This event triggers when a team is updated. |
-| `teams.*.update.prefs` | [Team Object](/docs/models/team) | This event triggers when a team's preferences are updated. |
-| `users.*` | [User Object](/docs/models/user) | This event triggers on any user's event. |
-| `users.*.create` | [User Object](/docs/models/user) | This event triggers when a user is created. |
-| `users.*.delete` | [User Object](/docs/models/user) | This event triggers when a user is deleted. |
-| `users.*.recovery.*` | [Token Object](/docs/models/token) | This event triggers on any user's recovery token event. |
-| `users.*.recovery.*.create` | [Token Object](/docs/models/token) | This event triggers when a recovery token for a user is created. |
-| `users.*.recovery.*.update` | [Token Object](/docs/models/token) | This event triggers when a recovery token for a user is validated. |
-| `users.*.sessions.*` | [Session Object](/docs/models/session) | This event triggers on any user's sessions event. |
-| `users.*.sessions.*.create` | [Session Object](/docs/models/session) | This event triggers when a session for a user is created. |
-| `users.*.sessions.*.delete` | [Session Object](/docs/models/session) | This event triggers when a session for a user is deleted. |
-| `users.*.update` | [User Object](/docs/models/user) | This event triggers when a user is updated. |
-| `users.*.update.email` | [User Object](/docs/models/user) | This event triggers when a user's email address is updated. |
-| `users.*.update.name` | [User Object](/docs/models/user) | This event triggers when a user's name is updated. |
-| `users.*.update.password` | [User Object](/docs/models/user) | This event triggers when a user's password is updated. |
-| `users.*.update.prefs` | [User Object](/docs/models/user) | This event triggers when a user's preferences is updated. |
-| `users.*.update.status` | [User Object](/docs/models/user) | This event triggers when a user's status is updated. |
-| `users.*.verification.*` | [Token Object](/docs/models/token) | This event triggers on any user's verification token event. |
-| `users.*.verification.*.create` | [Token Object](/docs/models/token) | This event triggers when a verification token for a user is created. |
-| `users.*.verification.*.update` | [Token Object](/docs/models/token) | This event triggers when a verification token for a user is validated. |
\ No newline at end of file
+| `teams.*` | [Team Object](/docs/references/cloud/models/team) | This event triggers on any teams event. |
+| `teams.*.create` | [Team Object](/docs/references/cloud/models/team) | This event triggers when a team is created. |
+| `teams.*.delete` | [Team Object](/docs/references/cloud/models/team) | This event triggers when a team is deleted. |
+| `teams.*.memberships.*` | [Membership Object](/docs/references/cloud/models/membership) | This event triggers on any team memberships event. |
+| `teams.*.memberships.*.create` | [Membership Object](/docs/references/cloud/models/membership) | This event triggers when a membership is created. |
+| `teams.*.memberships.*.delete` | [Membership Object](/docs/references/cloud/models/membership) | This event triggers when a membership is deleted. |
+| `teams.*.memberships.*.update` | [Membership Object](/docs/references/cloud/models/membership) | This event triggers when a membership is updated. |
+| `teams.*.memberships.*.update.status` | [Membership Object](/docs/references/cloud/models/membership) | This event triggers when a team memberships status is updated. |
+| `teams.*.update` | [Team Object](/docs/references/cloud/models/team) | This event triggers when a team is updated. |
+| `teams.*.update.prefs` | [Team Object](/docs/references/cloud/models/team) | This event triggers when a team's preferences are updated. |
+| `users.*` | [User Object](/docs/references/cloud/models/user) | This event triggers on any user's event. |
+| `users.*.create` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user is created. |
+| `users.*.delete` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user is deleted. |
+| `users.*.recovery.*` | [Token Object](/docs/references/cloud/models/token) | This event triggers on any user's recovery token event. |
+| `users.*.recovery.*.create` | [Token Object](/docs/references/cloud/models/token) | This event triggers when a recovery token for a user is created. |
+| `users.*.recovery.*.update` | [Token Object](/docs/references/cloud/models/token) | This event triggers when a recovery token for a user is validated. |
+| `users.*.sessions.*` | [Session Object](/docs/references/cloud/models/session) | This event triggers on any user's sessions event. |
+| `users.*.sessions.*.create` | [Session Object](/docs/references/cloud/models/session) | This event triggers when a session for a user is created. |
+| `users.*.sessions.*.delete` | [Session Object](/docs/references/cloud/models/session) | This event triggers when a session for a user is deleted. |
+| `users.*.update` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user is updated. |
+| `users.*.update.email` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user's email address is updated. |
+| `users.*.update.name` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user's name is updated. |
+| `users.*.update.password` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user's password is updated. |
+| `users.*.update.prefs` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user's preferences is updated. |
+| `users.*.update.status` | [User Object](/docs/references/cloud/models/user) | This event triggers when a user's status is updated. |
+| `users.*.verification.*` | [Token Object](/docs/references/cloud/models/token) | This event triggers on any user's verification token event. |
+| `users.*.verification.*.create` | [Token Object](/docs/references/cloud/models/token) | This event triggers when a verification token for a user is created. |
+| `users.*.verification.*.update` | [Token Object](/docs/references/cloud/models/token) | This event triggers when a verification token for a user is validated. |
\ No newline at end of file
diff --git a/src/partials/databases-events.md b/src/partials/databases-events.md
index c41ba581af..5ae5d03e9d 100644
--- a/src/partials/databases-events.md
+++ b/src/partials/databases-events.md
@@ -2,21 +2,21 @@
| Name | Payload | Description |
| ----------------------------------------- | ------------------------------ | --------------------------------------- |
-| `databases.*` | [Database Object](/docs/models/database) | This event triggers on any database event. |
-| `databases.*.collections.*` | [Collection Object](/docs/models/collection) | This event triggers on any collection event. |
-| `databases.*.collections.*.attributes.*` | [Attribute Object](/docs/models/attribute) | This event triggers on any attributes event. |
-| `databases.*.collections.*.attributes.*.create` | [Attribute Object](/docs/models/attribute) | This event triggers when an attribute is created. |
-| `databases.*.collections.*.attributes.*.delete` | [Attribute Object](/docs/models/attribute) | This event triggers when an attribute is deleted. |
-| `databases.*.collections.*.create` | [Collection Object](/docs/models/collection) | This event triggers when a collection is created. |
-| `databases.*.collections.*.delete` | [Collection Object](/docs/models/collection) | This event triggers when a collection is deleted. |
-| `databases.*.collections.*.documents.*` | [Document Object](/docs/models/document) | This event triggers on any documents event. |
-| `databases.*.collections.*.documents.*.create` | [Document Object](/docs/models/document) | This event triggers when a document is created. |
-| `databases.*.collections.*.documents.*.delete` | [Document Object](/docs/models/document) | This event triggers when a document is deleted. |
-| `databases.*.collections.*.documents.*.update` | [Document Object](/docs/models/document) | This event triggers when a document is updated. |
-| `databases.*.collections.*.indexes.*` | [Index Object](/docs/models/index) | This event triggers on any indexes event. |
-| `databases.*.collections.*.indexes.*.create` | [Index Object](/docs/models/index) | This event triggers when an index is created. |
-| `databases.*.collections.*.indexes.*.delete` | [Index Object](/docs/models/index) | This event triggers when an index is deleted. |
-| `databases.*.collections.*.update` | [Collection Object](/docs/models/collection) | This event triggers when a collection is updated. |
-| `databases.*.create` | [Database Object](/docs/models/database) | This event triggers when a database is created. |
-| `databases.*.delete` | [Database Object](/docs/models/database) | This event triggers when a database is deleted. |
-| `databases.*.update` | [Database Object](/docs/models/database) | This event triggers when a database is updated. |
+| `databases.*` | [Database Object](/docs/references/cloud/models/database) | This event triggers on any database event. |
+| `databases.*.collections.*` | [Collection Object](/docs/references/cloud/models/collection) | This event triggers on any collection event. |
+| `databases.*.collections.*.attributes.*` | [Attribute Object](/docs/references/cloud/models/attributeList) | This event triggers on any attributes event. |
+| `databases.*.collections.*.attributes.*.create` | [Attribute Object](/docs/references/cloud/models/attributeList) | This event triggers when an attribute is created. |
+| `databases.*.collections.*.attributes.*.delete` | [Attribute Object](/docs/references/cloud/models/attributeList) | This event triggers when an attribute is deleted. |
+| `databases.*.collections.*.create` | [Collection Object](/docs/references/cloud/models/collection) | This event triggers when a collection is created. |
+| `databases.*.collections.*.delete` | [Collection Object](/docs/references/cloud/models/collection) | This event triggers when a collection is deleted. |
+| `databases.*.collections.*.documents.*` | [Document Object](/docs/references/cloud/models/document) | This event triggers on any documents event. |
+| `databases.*.collections.*.documents.*.create` | [Document Object](/docs/references/cloud/models/document) | This event triggers when a document is created. |
+| `databases.*.collections.*.documents.*.delete` | [Document Object](/docs/references/cloud/models/document) | This event triggers when a document is deleted. |
+| `databases.*.collections.*.documents.*.update` | [Document Object](/docs/references/cloud/models/document) | This event triggers when a document is updated. |
+| `databases.*.collections.*.indexes.*` | [Index Object](/docs/references/cloud/models/index) | This event triggers on any indexes event. |
+| `databases.*.collections.*.indexes.*.create` | [Index Object](/docs/references/cloud/models/index) | This event triggers when an index is created. |
+| `databases.*.collections.*.indexes.*.delete` | [Index Object](/docs/references/cloud/models/index) | This event triggers when an index is deleted. |
+| `databases.*.collections.*.update` | [Collection Object](/docs/references/cloud/models/collection) | This event triggers when a collection is updated. |
+| `databases.*.create` | [Database Object](/docs/references/cloud/models/database) | This event triggers when a database is created. |
+| `databases.*.delete` | [Database Object](/docs/references/cloud/models/database) | This event triggers when a database is deleted. |
+| `databases.*.update` | [Database Object](/docs/references/cloud/models/database) | This event triggers when a database is updated. |
diff --git a/src/partials/functions-events.md b/src/partials/functions-events.md
index 20f59c35f8..c6c574c71d 100644
--- a/src/partials/functions-events.md
+++ b/src/partials/functions-events.md
@@ -2,15 +2,15 @@
| Name | Payload | Description |
| ------------------------------------------- | --------------------------------- | ----------------------------------------- |
-| `functions.*` | [Function Object](/docs/models/function) | This event triggers on any functions event. |
-| `functions.*.create` | [Function Object](/docs/models/function) | This event triggers when a function is created. |
-| `functions.*.delete` | [Function Object](/docs/models/function) | This event triggers when a function is deleted. |
-| `functions.*.deployments.*` | [Deployment Object](/docs/models/deployment) | This event triggers on any deployments event. |
-| `functions.*.deployments.*.create` | [Deployment Object](/docs/models/deployment) | This event triggers when a deployment is created. |
-| `functions.*.deployments.*.delete` | [Deployment Object](/docs/models/deployment) | This event triggers when a deployment is deleted. |
-| `functions.*.deployments.*.update` | [Deployment Object](/docs/models/deployment) | This event triggers when a deployment is updated. |
-| `functions.*.executions.*` | [Execution Object](/docs/models/execution) | This event triggers on any executions event. |
-| `functions.*.executions.*.create` | [Execution Object](/docs/models/execution) | This event triggers when an execution is created. |
-| `functions.*.executions.*.delete` | [Execution Object](/docs/models/execution) | This event triggers when an execution is deleted. |
-| `functions.*.executions.*.update` | [Execution Object](/docs/models/execution) | This event triggers when an execution is updated. |
-| `functions.*.update` | [Function Object](/docs/models/function) | This event triggers when a function is updated. |
\ No newline at end of file
+| `functions.*` | [Function Object](/docs/references/cloud/models/function) | This event triggers on any functions event. |
+| `functions.*.create` | [Function Object](/docs/references/cloud/models/function) | This event triggers when a function is created. |
+| `functions.*.delete` | [Function Object](/docs/references/cloud/models/function) | This event triggers when a function is deleted. |
+| `functions.*.deployments.*` | [Deployment Object](/docs/references/cloud/models/deployment) | This event triggers on any deployments event. |
+| `functions.*.deployments.*.create` | [Deployment Object](/docs/references/cloud/models/deployment) | This event triggers when a deployment is created. |
+| `functions.*.deployments.*.delete` | [Deployment Object](/docs/references/cloud/models/deployment) | This event triggers when a deployment is deleted. |
+| `functions.*.deployments.*.update` | [Deployment Object](/docs/references/cloud/models/deployment) | This event triggers when a deployment is updated. |
+| `functions.*.executions.*` | [Execution Object](/docs/references/cloud/models/execution) | This event triggers on any executions event. |
+| `functions.*.executions.*.create` | [Execution Object](/docs/references/cloud/models/execution) | This event triggers when an execution is created. |
+| `functions.*.executions.*.delete` | [Execution Object](/docs/references/cloud/models/execution) | This event triggers when an execution is deleted. |
+| `functions.*.executions.*.update` | [Execution Object](/docs/references/cloud/models/execution) | This event triggers when an execution is updated. |
+| `functions.*.update` | [Function Object](/docs/references/cloud/models/function) | This event triggers when a function is updated. |
\ No newline at end of file
diff --git a/src/partials/storage-events.md b/src/partials/storage-events.md
index 70813ae29b..362ddf5f0a 100644
--- a/src/partials/storage-events.md
+++ b/src/partials/storage-events.md
@@ -2,11 +2,11 @@
| Name | Payload | Description |
|---------------------------------|-------------------------------------------------|----------------------------------------------|
-| `buckets.*` | [Bucket Object](/docs/models/bucket) | This event triggers on any buckets event. |
-| `buckets.*.create` | [Bucket Object](/docs/models/bucket) | This event triggers when a bucket is created.|
-| `buckets.*.delete` | [Bucket Object](/docs/models/bucket) | This event triggers when a bucket is deleted.|
-| `buckets.*.files.*` | [File Object](/docs/models/file) | This event triggers on any files event. |
-| `buckets.*.files.*.create` | [File Object](/docs/models/file) | This event triggers when a file is created. |
-| `buckets.*.files.*.delete` | [File Object](/docs/models/file) | This event triggers when a file is deleted. |
-| `buckets.*.files.*.update` | [File Object](/docs/models/file) | This event triggers when a file is updated. |
-| `buckets.*.update` | [Bucket Object](/docs/models/bucket) | This event triggers when a bucket is updated.|
\ No newline at end of file
+| `buckets.*` | [Bucket Object](/docs/references/cloud/models/bucket) | This event triggers on any buckets event. |
+| `buckets.*.create` | [Bucket Object](/docs/references/cloud/models/bucket) | This event triggers when a bucket is created.|
+| `buckets.*.delete` | [Bucket Object](/docs/references/cloud/models/bucket) | This event triggers when a bucket is deleted.|
+| `buckets.*.files.*` | [File Object](/docs/references/cloud/models/file) | This event triggers on any files event. |
+| `buckets.*.files.*.create` | [File Object](/docs/references/cloud/models/file) | This event triggers when a file is created. |
+| `buckets.*.files.*.delete` | [File Object](/docs/references/cloud/models/file) | This event triggers when a file is deleted. |
+| `buckets.*.files.*.update` | [File Object](/docs/references/cloud/models/file) | This event triggers when a file is updated. |
+| `buckets.*.update` | [Bucket Object](/docs/references/cloud/models/bucket) | This event triggers when a bucket is updated.|
\ No newline at end of file
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index ef609186e4..570e145388 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -50,13 +50,13 @@
-
+
@@ -180,7 +180,7 @@
Self-Hosted
-
Own your data or host it on a region of choice.
+
Own your data or host it on a cloud region of choice.
@@ -191,16 +191,16 @@
-
Abuse Protection
+
Abuse protection
- Protect users from abuse with built-in protection.
+ Protect your APIs from abuse with built-in protection.
-
Data Migrations
+
Data migrations
- Move data between 3rd parties, cloud or self-hosting.
+ Easily transfer data from 3rd parties or between Cloud and self-hosted.
@@ -244,73 +244,65 @@
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in ultrices lacus.
- Duis pellentesque quis purus in posuere.
+ Been a huge supporter of Appwrite for over a year, championing
+ it even at the companies I was working at. Their community is second-to-none,
+ speed of feature release is exceptional, and the support in their Discord is incredible.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in @ultrices lacus. Duis pellentesque quis purus in posuere Duis pellentesque quis purus in posuere.
+ Recently, I embarked on a journey to create a Real-Time Chat Application that would redefine seamless communication. Along the way, I discovered an incredible tool that transformed my backend game - Appwrite!
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in ultrices lacus.
- Duis pellentesque quis purus in posuere.
+ Backend Engineers, you will agree with me that building the authentication process for your app with each new API development is a pain. Here's my secret: I let @appwrite handle my authentication process while I focus on the business logic.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in ultrices lacus.
- Duis pellentesque quis purus in posuere.
+ Absolutely in love with Appwrite and the commitment to the community!
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in @ultrices lacus. Duis pellentesque quis purus in posuere Duis pellentesque quis purus in posuere.
+ I have used Appwrite twice, and the experience of using it was great as I got to build a full-stack application. I would gladly recommend it to anyone looking to explore an alternative database option. Appwrite is simply the best.
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin in ultrices lacus.
- Duis pellentesque quis purus in posuere.
-
+ If you're looking for a backend server that is both powerful and easy to use, check out @appwrite. With its robust feature set and open-source nature, it's the perfect choice for developers who want to build secure and scalable applications.
+
{#each data.posts as post}
{@const author = data.authors.find(
- (author) => author.name.toLowerCase() === post.author.toLowerCase()
+ (author) => author.slug === post.author
)}
{#if author}
{
+ const authors = Object.values(authorsGlob).map((authorList) => {
const { frontmatter } = authorList as {
frontmatter: AuthorData;
};
- const name = frontmatter.id ?? frontmatter.name.toLowerCase().replace(' ', '-');
-
return {
name: frontmatter.name,
+ slug: frontmatter.slug,
role: frontmatter.role,
avatar: frontmatter.avatar,
bio: frontmatter.bio,
twitter: frontmatter.twitter,
linkedin: frontmatter.linkedin,
github: frontmatter.github,
- href: `${base}/blog/author/${name}`
+ href: `${base}/blog/author/${frontmatter.slug}`
};
});
diff --git a/src/routes/blog/author/arman/+page.markdoc b/src/routes/blog/author/arman/+page.markdoc
index 95797672e6..acdea39e2d 100644
--- a/src/routes/blog/author/arman/+page.markdoc
+++ b/src/routes/blog/author/arman/+page.markdoc
@@ -1,7 +1,7 @@
---
layout: author
name: Arman
-id: arman
+slug: arman
role: Frontend Developer
bio: In ♥ with Svelte and Vue, currently working at Appwrite
avatar: /images/avatars/arman.png
diff --git a/src/routes/blog/author/christy-jacob/+page.markdoc b/src/routes/blog/author/christy-jacob/+page.markdoc
new file mode 100644
index 0000000000..2ab9086191
--- /dev/null
+++ b/src/routes/blog/author/christy-jacob/+page.markdoc
@@ -0,0 +1,12 @@
+---
+layout: author
+slug: christy-jacob
+name: Christy Jacob
+role: Engineering lead
+bio: Leading Appwrite's Cloud development.
+avatar: /images/avatars/christy.png
+twitter: https://twitter.com/christyjacob4
+github: https://github.com/christyjacob4
+linkedin: https://www.linkedin.com/in/christyjacob4
+---
+
diff --git a/src/routes/blog/author/eldad-fux/+page.markdoc b/src/routes/blog/author/eldad-fux/+page.markdoc
new file mode 100644
index 0000000000..dcd8ad6915
--- /dev/null
+++ b/src/routes/blog/author/eldad-fux/+page.markdoc
@@ -0,0 +1,12 @@
+---
+layout: author
+name: Eldad Fux
+slug: eldad-fux
+role: Founder and CEO
+bio: Appwrite's first open-source contributor.
+avatar: /images/avatars/eldad.png
+twitter: https://twitter.com/eldadfux
+github: https://github.com/eldadfux
+linkedin: https://www.linkedin.com/in/eldadfux
+---
+
diff --git a/src/routes/blog/author/eldad/+page.markdoc b/src/routes/blog/author/eldad/+page.markdoc
deleted file mode 100644
index b895800f5e..0000000000
--- a/src/routes/blog/author/eldad/+page.markdoc
+++ /dev/null
@@ -1,12 +0,0 @@
----
-layout: author
-name: Eldad
-id: eldad
-role: Big boss
-bio: Creator of Appwrite
-avatar: /images/avatars/eldad.png
-twitter: https://twitter.com/eldadfux
-github: https://github.com/eldadfux
-linkedin: https://www.linkedin.com/in/eldadfux/
----
-
diff --git a/src/routes/blog/author/laura-du-ry/+page.markdoc b/src/routes/blog/author/laura-du-ry/+page.markdoc
new file mode 100644
index 0000000000..e32257e301
--- /dev/null
+++ b/src/routes/blog/author/laura-du-ry/+page.markdoc
@@ -0,0 +1,12 @@
+---
+layout: author
+name: Laura Du Ry
+slug: laura-du-ry
+role: Growth manager
+bio: Managing Appwrite's growth effort.
+avatar: /images/avatars/laura.png
+twitter: https://twitter.com/LDRVBH
+github: https://github.com/LauraDuRy
+linkedin: https://www.linkedin.com/in/laura-du-ry-53203b94
+---
+
diff --git a/src/routes/blog/author/sara-kaandorp/+page.markdoc b/src/routes/blog/author/sara-kaandorp/+page.markdoc
new file mode 100644
index 0000000000..dc5c43e417
--- /dev/null
+++ b/src/routes/blog/author/sara-kaandorp/+page.markdoc
@@ -0,0 +1,11 @@
+---
+layout: author
+name: Sara Kaandorp
+slug: sara-kaandorp
+role: Design lead
+bio: Leading Appwrite's product and visual design teams.
+avatar: /images/avatars/sara.png
+twitter: https://twitter.com/sara_k_48
+github: https://github.com/sarakaandorp
+linkedin: https://www.linkedin.com/in/sara-k-78468a116/
+---
\ No newline at end of file
diff --git a/src/routes/blog/author/vincent-ge/+page.markdoc b/src/routes/blog/author/vincent-ge/+page.markdoc
new file mode 100644
index 0000000000..69cc1f00f1
--- /dev/null
+++ b/src/routes/blog/author/vincent-ge/+page.markdoc
@@ -0,0 +1,12 @@
+---
+layout: author
+name: Vincent Ge
+slug: vincent-ge
+role: Developer Advocate
+bio: Focusing on developer experience and documentation.
+avatar: /images/avatars/vincent.png
+twitter: https://twitter.com/WenYuGe1
+github: https://github.com/gewenyu99
+linkedin: https://www.linkedin.com/in/wen-yu-ge/
+---
+
diff --git a/src/routes/blog/category/design/+page.markdoc b/src/routes/blog/category/design/+page.markdoc
index f995f78ecc..e934c87285 100644
--- a/src/routes/blog/category/design/+page.markdoc
+++ b/src/routes/blog/category/design/+page.markdoc
@@ -1,6 +1,6 @@
---
layout: category
name: Design
-description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam euismod, nisl eget aliquam ultricies, nunc nisl aliquet nunc, quis aliquam nisl nunc quis nisl. Nullam euismod, nisl eget aliquam ultricies, nunc nisl aliquet nunc, quis aliquam nisl nunc quis nisl.
+description: Explore the extensive research and thought that fuel Appwrite's design strategy in this section. Our design team dives deep into understanding user needs, industry standards, and emerging trends. We iterate and refine our designs based on robust feedback and testing to ensure an intuitive and enjoyable developer experience. The insights shared here reflect the blend of creativity and data-driven decisions that shape Appwrite's aesthetic and functionality. Each post offers a glimpse into our design realm, highlighting how research contributes to enhancing Appwrite's interfaces.
---
diff --git a/src/routes/blog/post/accessibility-in-pink-design/+page.markdoc b/src/routes/blog/post/accessibility-in-pink-design/+page.markdoc
index 85f93af7da..8e07252bf0 100644
--- a/src/routes/blog/post/accessibility-in-pink-design/+page.markdoc
+++ b/src/routes/blog/post/accessibility-in-pink-design/+page.markdoc
@@ -5,7 +5,7 @@ description: Lorem Ipsum dolor et amet.
date: 2023-11-14
cover: /images/pages/homepage/dashboard.svg
timeToRead: 3
-author: Arman
+author: arman
category: design, accessibility, appwrite, community, accessiblity
---
diff --git a/src/routes/blog/post/announcing-new-docs/+page.markdoc b/src/routes/blog/post/announcing-new-docs/+page.markdoc
new file mode 100644
index 0000000000..f0e4d3138c
--- /dev/null
+++ b/src/routes/blog/post/announcing-new-docs/+page.markdoc
@@ -0,0 +1,12 @@
+---
+layout: post
+title: Announcing new docs post by Vincent
+description: TBD
+date: 2023-05-02
+cover: /images/pages/homepage/dashboard.svg
+timeToRead: 5
+author: vincent-ge
+category: docs, devex
+---
+
+TODO
\ No newline at end of file
diff --git a/src/routes/blog/post/announcing-pricing/+page.markdoc b/src/routes/blog/post/announcing-pricing/+page.markdoc
new file mode 100644
index 0000000000..f362133af8
--- /dev/null
+++ b/src/routes/blog/post/announcing-pricing/+page.markdoc
@@ -0,0 +1,62 @@
+---
+layout: post
+title: Announcing Cloud pricing plans
+description: Appwrite Cloud pricing are now available.
+date: 2023-05-02
+cover: /images/pages/homepage/dashboard.svg
+timeToRead: 5
+author: laura-du-ry
+category: cloud
+---
+
+An important day has come for Appwrite, where we finally announce the pricing for Appwrite Cloud. Many of you mentioned that in order to continue building with Appwrite Cloud it is important to know what the potential costs are. So due to the high number of requests and to provide clarity we decided to share our pricing models before they're live. Please note that Appwrite Cloud continues to be free while in beta and pricing will be effective once we are generally available.
+
+Now let's dive in.
+
+## Building for the future
+
+As part of our mission to make software more accessible, we wanted to make sure our pricing compliments that mission but also enable us to have the resources to continue building a strong company that can reach new levels. We have put a lot of effort into creating Appwrite's pricing that aligns with our values, transparency, ambition, and simplicity.
+
+## Value framework
+
+We created a set of principles to guide us through the pricing process. We like to call this the “Value Framework” as it focuses on delivering the maximum value to our users without compromising on the affordability and accessibility of our products and services.
+
+- Equally plan for being accessible to all and our continued growth.
+- Make adoption easy and ensure the developer's growth and success matches pricing.
+- The developer's success helps Appwrite grow and deliver better products.
+- Features should be consistent across tiers unless they are clearly focused on enterprise.
+- Focus on value based profit. Limits should generally be applied to usage. Not functionality.
+- Be fair.
+
+## Affordable and accessible
+
+The above framework supports our goal to make Appwrite Cloud affordable and accessible to as many developers as possible. We worked together with developers in the Appwrite community to create a transparent and predictable pricing model. We took insights from current costs made, interviews, surveys, as well as pricing of similar products as a baseline to work towards a fair model. A model where costs should never get in the way of your ambitions, the costs are always transparent, and it is as simple for you to get started as it is to stop. With all this in mind, we believe we will build a strong trust with our community, which will eventually lead to Appwrite's growth.
+
+## Pricing plans
+
+
+
+**Starter Plan** a free tier for every developer working on a side project or SaaS product that can thrive on our starter plan limits.
+Free
+
+**Pro Plan** a plan that supports your ambitions to scale your production project and allows you to grow. With flexible budget control tools to ensure you never get a surprise bill.
+$15, per month, per member
+
+**Scale plan** a plan that offers more support as you continue to scale your commercial product and team. With higher limits and more support from our team to ensure we support the demand of scaling teams.
+$685, per month, per organization
+
+## Business model: Pay per organization member
+
+We chose a model that differs from most in the industry, a business model that focuses on you as a developer instead of a plan around the number of projects you build. We see value in unlimited building, we see value in exploration and in learning. We never want to get in the way of your imagination or ideation.
+
+Our business model is designed to support developers with a lot of freedom to build and explore, as well as to scale. We've designed our pricing model to reflect a shared journey of growth and success. As your organization flourishes and expands, welcoming new team members, our pricing plan mirrors this journey. Instead of viewing it as a simple fee per new member, think of it as a tangible marker of your organization's progress and evolution. Each addition to your team is a sign of your success and, in turn, contributes to our shared advancement. In this way, we evolve together in a business model that's designed to be as fair and as reflective of our collective growth. We believe in growing together because your success is our success.
+
+## Our commitment to the open source community
+
+One thing we cannot dismiss is our OSS program. We strongly believe in helping other Open Source (OSS) maintainers. We know very well where we came from and Appwrite has been built with and by the open-source community. Therefore we have a free program to support the OSS community and show our appreciation. Interested developers can apply on our website once pricing is available.
+
+## Next steps
+This is a big step forward for Appwrite and the community and we are excited to see the response to our plans. The coming weeks we will work hard on making our pricing available, but until then developers can continue to build on Appwrite free of charge.
+
+- [Review the pricing comparsion](/pricing)
+- [Sign up for Cloud in beta](https://cloud.appwrite.io/)
\ No newline at end of file
diff --git a/src/routes/blog/post/example-2/+page.markdoc b/src/routes/blog/post/example-2/+page.markdoc
index eede48502e..63d10601e5 100644
--- a/src/routes/blog/post/example-2/+page.markdoc
+++ b/src/routes/blog/post/example-2/+page.markdoc
@@ -5,7 +5,7 @@ description: Lorem Ipsum dolor et amet.
date: 2022-11-12
cover: /images/blog/placeholder.png
timeToRead: 5
-author: Eldad
+author: eldad-fux
category: design, accessibility, appwrite, community, accessiblity
---
diff --git a/src/routes/blog/post/example/+page.markdoc b/src/routes/blog/post/example/+page.markdoc
deleted file mode 100644
index cddbbeedd1..0000000000
--- a/src/routes/blog/post/example/+page.markdoc
+++ /dev/null
@@ -1,77 +0,0 @@
----
-layout: post
-title: Example
-description: Lorem Ipsum dolor et amet.
-date: 2023-11-16
-cover: /images/blog/placeholder.png
-timeToRead: 15
-author: Arman
-category: design, accessibility, appwrite, community, accessiblity
----
-
-When creating products, accessibility can be an afterthought. Understandably, we want to ship our products fast and deliver value to our users. We might think that accessibility is needed for edge cases and therefore not prioritize it. It's good to be reminded that the World Health Organization (WHO) estimates that 16% of the global population has some form of disability (Dec 2022).Ignoring such a significant part of your user base simply doesn't create a good user experience.Creating accessible products is everyone's responsibility. Designers, developers, content authors, and whoever else is involved in creating products should do their part and strive towards achieving a better experience for everyone.
-
-It's not always easy to maintain a high level of accessibility, but it's definitely easier with a design system. The components we created in Pink Design, Appwrite's fully open source UI library, have an accessibility level of AA. This is the recommended level of accessibility for most products.
-
-To ensure our products will maintain a high accessibility level, we did the following:
-- Use high color contrast
-- Not relying on color
-- Allow keyboard navigation
-- Define font size in REM
-- Allow users to reduce motion
-
-## Use high color contrast
-
-Color contrast might be the first thing that comes to mind when thinking about accessibility. A lack of contrast between the text and background might mean some people would be unable or have difficulty reading the text. Similarly, bright colors with high luminance are not readable for others. W3C recommends a contrast ratio between text and background of 4.5 to 1 for conformance level AA.
-
-| Item | Price | # In stock |
-|--------------|-----------|------------|
-| Apples | 1.99 | *7* |
-| Bananas | **1.89** | 5234 |
-
-## Not relying on color
-
-The term “color blindness” is often used to describe people who have trouble identifying and distinguishing between certain colors, but color blindness, the inability to see any color, is extremely rare. According to the United Kingdom National Health Service (NHS), red-green color blindness affects 1 out of 12 men and 1 out of 200 women. People with this color vision deficiency may have difficulty differentiating between reds, oranges, yellows, browns, and greens. They also might find it hard to distinguish between shades of purple and may confuse red with black.Similarly, people with “blue-yellow” color vision deficiency may have difficulty differentiating between blues, greens, and yellows.
-
-BIG LINK
-
-We use four system colors in Pink Design — red, orange, green, and blue. Each of these colors represents a state in the Appwrite console — red indicates an error or danger, orange indicates a warning, green indicates success, and blue indicates information. Knowing the difficulties our users might face while seeing these colors, we don't rely on color to make critical information understandable.
-
->“Lorem ipsum dolor sit amet consectetur. Diam fermentum tellus ante purus nullam eget sit id ac. Purus viverra ultrices fusce posuere sed enim duis aliquam sit. Vitae fames potenti donec ultricies in. Quis sed iaculis consectetur cras feugiat nibh gravida tincidunt volutpat. Eleifend vel blandit cras tempor sed nam quis aliquet. Facilisi tempor amet id integer gravida duis. Aliquet nulla tellus risus tortor neque vestibulum arcu.” Author
-
-
-## Allow keyboard navigation
-
-People with fine motor control restrictions or disabled hands or arms will be unable to use a mouse. In Pink Design, we provide distinct states for interactive elements. By designing states like focus, hover, and active, we provide the ability to navigate all interactive elements with a keyboard. This is not only an accessible experience but also a better experience for all users who prefer keyboard navigation, including Appwrite's developer community.
-
-It is possible to enhance accessibility through development as well. In collaboration with our engineering team, we decided to incorporate the following into Pink Design:
-
-
-
-## Define font size in REM
-
-Browsers have a default font size that users can change via the browser setting. A pixel is an absolute unit for fixed sizes and spaces that ignores browser settings. This means that if we are using pixels and a user (with or without vision impairment) changes the font size in their browser settings, their setting won't affect our product. That being said, pixels should not cause any problems if the user zooms in, but we make no assumptions about users' preferences. This is why we decided to define the font size in REM, which is a relative unit.
-
-```js
-import { Client, Account } from "appwrite";
-
-const client = new Client()
- .setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint
- .setProject('5df5acd0d48c2') // Your project ID
-
-const account = new Account(client);
-
-const promise = account.createVerification('https://example.com');
-
-promise.then(function (response) {
- console.log(response);
-}, function (error) {
- console.log(error);
-});
-
-```
-
-## Allow users to reduce motion
-
-There is no doubt that animations are a nice addition to every product, but animations can also distract people. In some cases, animations can cause dizziness, vertigo, or epileptic seizures. Users that are sensitive to motion might choose to reduce motion in their operating system settings. In this case, we should skip the animation for them. In Pink Design, we decided to create a big animation to show the functionality of the library on the landing page. The animation is 10 seconds long and is the first thing you see on the page. It starts immediately when the page is loaded, but if “reduce motion” is enabled in the operating system, the animation skips to the end.
-
diff --git a/src/routes/blog/post/meet-the-new-appwrite/+page.markdoc b/src/routes/blog/post/meet-the-new-appwrite/+page.markdoc
new file mode 100644
index 0000000000..e006e07c41
--- /dev/null
+++ b/src/routes/blog/post/meet-the-new-appwrite/+page.markdoc
@@ -0,0 +1,44 @@
+---
+layout: post
+title: Meet the new Appwrite
+description: Unveiling Appwrite's new fresh look and feel with a new brand, website and experience.
+date: 2023-09-22
+cover: /images/blog/logo.png
+timeToRead: 5
+author: sara-kaandorp
+category: design, brand
+---
+
+At Appwrite, we are constantly collaborating with the Appwrite community to improve Appwrite's products, services, and content. All for the sake of improving your developer experience, as well as staying true to the open-source values.
+
+Today, we took another big step in improving this experience by elevating the Appwrite brand. Not only do we have an improved look and feel, but we also focussed on delivering a better experience navigating our website and docs.
+
+We are excited to share our new brand and to see it match the maturity of our products, services, and content. And how, together, and through the power of open source, we have the capabilities of hundreds of developers.
+
+## Aligning visual identity with growth
+
+The very first design of Appwrite was created by our Founder & CEO, Eldad, in 2019 when Appwrite launched as an open-source project. Since then, the Appwrite console has been through a design upgrade, but as Appwrite grew, so did the team. Making it possible to reach new heights with Appwrite’s overall brand identity.
+
+With the Appwrite team and community growing, our product started to mature, and there was a disconnect between our broader visual identity and our product. Recognizing the need for a fresh and more mature appearance, we worked to align our visual identity with the growing maturity of our product. This rebranding effort represents our commitment to delivering a polished and sophisticated experience to developers, throughout the developer journey. From discovery to scaling in using Appwrite.
+
+## Designed for the community
+
+Our rebranding journey began with a fresh perspective on our logo. We wanted to emphasize the importance of our community, so we redesigned it to feature a globe and lines of code. This represents our global community members, working and coding together to form the letter 'a,' for Appwrite.
+
+
+
+Additionally, we've added a new element: glass. This represents our commitment to transparency and openness, echoing our open-source values. It's integrated into our website and brand visuals, highlighting our dedication to collaboration within our global community.
+
+
+
+## Introducing our enhanced website and docs
+
+Our upgraded website is the main product of our new brand bringing more pages explaining everything you need to know about Appwrite. We have more webpages to come explaining our products and features in more depth.
+
+
+
+As part of our rebranding effort, we've revamped not only our website but also our documentation. Recognizing that our documentation plays a pivotal role in a developer's workflow, we've invested in enhancing both its design and content. Our new documentation now features specialized tutorials to guide you through project setup and feature implementation step by step.
+
+## Build like a team of 100
+
+With open source at the heart of everything we do, community plays an important role at Appwrite. We believe that if we stay true to our philosophy, together, we will empower developers with the capabilities of hundreds of developers. Giving them the freedom to build, create, and innovate.
\ No newline at end of file
diff --git a/src/routes/blog/post/public-beta/+page.markdoc b/src/routes/blog/post/public-beta/+page.markdoc
new file mode 100644
index 0000000000..d1d96c6076
--- /dev/null
+++ b/src/routes/blog/post/public-beta/+page.markdoc
@@ -0,0 +1,61 @@
+---
+layout: post
+title: Appwrite Cloud is now in public beta
+description: We're happy to announce Cloud is now available for everyone to signup.
+date: 2023-05-02
+cover: /images/pages/homepage/dashboard.svg
+timeToRead: 5
+author: christy-jacob
+category: cloud
+---
+
+We're thrilled to announce a major step forward for Appwrite Cloud as we transition from our private beta to the public beta today! We're eager to hear your feedback, learn from your experiences, and continually improve Appwrite Cloud to better serve your needs.
+
+We're thrilled to announce a major step forward for Appwrite Cloud as we transition from our private beta to the public beta today! We're eager to hear your feedback, learn from your experiences, and continually improve Appwrite Cloud to better serve your needs.
+
+**TL;DR Sign up at [cloud.appwrite.io/register](https://cloud.appwrite.io/register)**
+
+## Why Appwrite Cloud?
+At Appwrite, we are committed to the open-source community and believe that developers should have access to powerful tools and services that are intuitive, developer-centric and affordable. With Appwrite Cloud, we are extending our commitment to provide developers with the best possible experience by offering a fully managed backend solution that simplifies infrastructure management and helps them focus on what they do best - building great applications!
+
+## What was the private beta?
+Over the last couple of months, we conducted a successful private beta that allowed us to get Appwrite Cloud in the hands of selected members of the community. This exercise allowed us to learn a lot about usage patterns, infrastructure performance, early feedback and lots more.
+
+We conducted cloud interviews with members of the initial cohort to understand their use cases and identify the most important features for them. These conversations have been invaluable in shaping the direction of Appwrite Cloud, allowing us to prioritize features and improvements.
+
+We also conducted a pricing survey with participants to better understand developer demographics, their needs, their budgets and expectations. This information was instrumental in helping us fine-tune our pricing strategy and deliver the best value for our developers.
+
+## What's new in the public beta?
+With the launch of the public beta, we're opening up access to the Appwrite Cloud to a broader audience, allowing more developers to explore and test our platform. The public beta retains all the features and benefits of the private beta while incorporating valuable feedback from our early adopters.
+
+Additionally, we'll continue working closely with the Appwrite community to refine the platform and introduce new features based on user feedback. We also encourage you to join our Discord community where you can get help with anything Appwrite related!
+
+## What’s next?
+We have a lot of things planned in the upcoming months while we await Cloud to become publicly available, and we’d love to share some highlights with you.
+
+### Cloud interviews and surveys
+We’re conducting a series of interviews & surveys with participants of the Public Beta to get more insights into their requirements. During these interviews, we focus on understanding their background, their reasons for using a backend server like Appwrite, their use cases, their experience so far, along with their expectations and shortcomings of the platform. These interviews have provided key insights that have prompted us to steer in the right direction.
+
+If you’re part of the Beta and would like to participate in these interviews, please reach out to me on our community Discord or my email, and we’d be glad to set up a call.
+
+### Pricing
+Our goal is to make Appwrite Cloud affordable and accessible to all developers. We’ve had some really great feedback from our initial pricing survey and are really close to sharing our model with you all. We will continue working together with the Appwrite community to refine this pricing model. Rest assured, there will be a generous free tier for all the hobby projects you’ve been wanting to create!
+
+### Self-hosted edition
+A lot of us may have questions about the open source version of Appwrite and its future. We can proudly say, we will continue to stand among the handful of companies that have been open-source first. Our vibrant community is a testament that, for the longest time, we have prioritized the open source version, and we will continue to do so. In fact, all major features will roll out to the open source version even before they hit the cloud! Appwrite will forever remain open source!
+
+### Multi-region support
+During the Beta, we’re operating with Frankfurt as our primary region. This is a careful decision to ensure we are geographically centrally located. As we get closer to general availability, we will focus on 3 more regions, namely San Francisco, New York, and Singapore with more regions to follow.
+
+### Compliance
+Compliances are frameworks that help organizations ensure they are meeting certain standards and requirements in regard to data security and privacy. For most SaaS/BaaS companies, SOC 2, HIPAA & GDPR are the essential ones. These certifications help companies demonstrate to their customers and stakeholders they are taking data security and privacy seriously, and are committed to protecting their sensitive information.
+
+These usually involve a lot of paperwork, documentation, and administrative processes. We’re in the process of ensuring we meet the highest standards for data security and privacy.
+
+### Support for more function runtimes
+While in beta, Appwrite Cloud supports five serverless runtimes, namely, Node, Python, PHP, Ruby, and Dart. As we approach general availability, we will continue to add support for our entire suite of runtimes based on the requests and requirements of the beta participants.
+
+## Coming up
+We’ve set multiple goals and key performance indicators to help us determine the success of this important stage before making the Appwrite Cloud generally available. Those indicators include the feedback and insights we get from beta participants, consumption metrics, and our infrastructure resilience during this time. Once those are achieved, we'll officially announce the release of the Appwrite Cloud platform and reach general availability.
+
+As always, huge thanks to the Appwrite community for your unwavering support. This milestone would not have been possible without your contributions. You're all incredible, and we'll continue working hard to deliver the development platform you deserve.
\ No newline at end of file
diff --git a/src/routes/community/+page.svelte b/src/routes/community/+page.svelte
index bd89c41870..df867e11ca 100644
--- a/src/routes/community/+page.svelte
+++ b/src/routes/community/+page.svelte
@@ -18,17 +18,17 @@
- Appwrite is the open-source development platform developers like you any
- application at any scale, using the language they want.
+ Inspire and get inspired. Join our community of maintainers and contributors
+ and help us make Appwrite better for developers all around the world.
- Appwrite is built by active contributors
+ The power of open source benefits us all
- Inspire and get inspired. Join our community of maintainers and contributors and help us make Appwrite better for developers all around the world.
+ Appwrite improves daily thanks to our diverse, inspiring contributors. They come from various backgrounds and experience levels, welcoming anyone to join and help us excel.
+
+
+
+
+
+
diff --git a/src/routes/docs/quick-starts/vuejs/+page.markdoc b/src/routes/docs/quick-starts/vue/+page.markdoc
similarity index 100%
rename from src/routes/docs/quick-starts/vuejs/+page.markdoc
rename to src/routes/docs/quick-starts/vue/+page.markdoc
diff --git a/src/routes/docs/references/[version]/models/[model]/+page.svelte b/src/routes/docs/references/[version]/models/[model]/+page.svelte
index 607e1d4471..226c06720e 100644
--- a/src/routes/docs/references/[version]/models/[model]/+page.svelte
+++ b/src/routes/docs/references/[version]/models/[model]/+page.svelte
@@ -32,7 +32,7 @@
{/each}
- Example
+ Example
diff --git a/src/routes/docs/sdks/+page.markdoc b/src/routes/docs/sdks/+page.markdoc
index 2a225437f6..298b39bf20 100644
--- a/src/routes/docs/sdks/+page.markdoc
+++ b/src/routes/docs/sdks/+page.markdoc
@@ -13,7 +13,7 @@ We're always working on improving and extending the current stack of available p
Client libraries for integrating with Appwrite to build client-based applications and websites. Read one of the many [quick starts](/docs/quick-starts) guides for your framework of choice to start building your first application.
{% table %}
-* {% width=80 %}
+* {% width=48 %}
* Platform
* GitHub Repository
* {% width=80 %}
@@ -48,7 +48,7 @@ Client libraries for integrating with Appwrite to build client-based application
Server libraries for integrating with Appwrite to build server side integrations or use inside your [Appwrite Functions](/docs/products/functions). Read one of the many [quick starts](/docs/quick-starts) guides for your language/runtime of choice to start building your first server integration.
{% table %}
-* {% width=80 %}
+* {% width=48 %}
* Platform
* GitHub Repository
* {% width=80 %}
diff --git a/src/routes/docs/tooling/command-line/deployment/+page.markdoc b/src/routes/docs/tooling/command-line/deployment/+page.markdoc
index 8f5a7b27e0..f885256baf 100644
--- a/src/routes/docs/tooling/command-line/deployment/+page.markdoc
+++ b/src/routes/docs/tooling/command-line/deployment/+page.markdoc
@@ -14,7 +14,7 @@ After you're logged in, the CLI needs to be initialized with your Appwrite proje
appwrite init project
```
-The following prompts will guide you through the setup process. The init command also creates an [appwrite.json](/docs/command-line-deployment#appwriteJSON) file representing your Appwrite project.
+The following prompts will guide you through the setup process. The init command also creates an [appwrite.json](/docs/tooling/command-line/deployment#appwrite-json) file representing your Appwrite project.
You can fetch all the existing databases and collections in your current project using:
@@ -64,7 +64,7 @@ appwrite deploy collection
## Deploying Teams {% #deploying-teams %}
-The Appwrite CLI can create teams to organize users. Teams can be used to grant access permissions to a group of users. [Learn more about permissions](/docs/permissions#permission-roles).
+The Appwrite CLI can create teams to organize users. Teams can be used to grant access permissions to a group of users. Learn more about permissions.
Deploy teams by running this command in the folder holding your `appwrite.json` file.
@@ -74,7 +74,7 @@ appwrite deploy team
## Deploying Storage {% #deploying-storage %}
-The Appwrite CLI allows you to configure and deploy buckets across projects. All the bucket's settings are available through the [appwrite.json](/docs/command-line-deployment#appwriteJSON) file.
+The Appwrite CLI allows you to configure and deploy buckets across projects. All the bucket's settings are available through the [appwrite.json](/docs/tooling/command-line/deployment#appwrite-json) file.
Deploy storage buckets by running this command in the folder holding your `appwrite.json` file.
@@ -98,11 +98,11 @@ Here's a complete list of all configurable options in `appwrite.json`:
| --- | --- | --- |
| `projectId` | string | ID of your Appwrite Project. |
| `projectName` | string | Name of your Appwrite Project. |
-| `functions` | array of [functions](/docs/command-line-deployment#function-options) | Configuration of functions in your project. |
-| `databases` | array of [databases](/docs/command-line-deployment#databases-options) | Configuration of databases in your project. |
-| `collections` | array of [collections](/docs/command-line-deployment#collection-options) | Configuration of collections in your project. |
-| `teams` | array of [teams](/docs/command-line-deployment#teams-options) | Configuration of teams in your project. |
-| `buckets` | array of [buckets](/docs/command-line-deployment#buckets-options) | Configuration of teams in your project. |
+| `functions` | array of functions | Configuration of functions in your project. |
+| `databases` | array of databases | Configuration of databases in your project. |
+| `collections` | array of collections | Configuration of collections in your project. |
+| `teams` | array of teams | Configuration of teams in your project. |
+| `buckets` | array of buckets | Configuration of teams in your project. |
#### Function options
@@ -110,13 +110,13 @@ Here's a complete list of all configurable options in `appwrite.json`:
| --- | --- | --- |
| `$id` | string | Function ID. |
| `name` | string | Function Name. |
-| `runtime` | string | Function runtime, must be enabled. [Learn more about runtimes](/docs/functions#supportedRuntimes). |
+| `runtime` | string | Function runtime, must be enabled. [Learn more about runtimes](/docs/products/functions/runtimes#available-runtimes). |
| `path` | string | Path to folder containing the function's source code. |
| `entrypoint` | string | Entry point of the function relative to the folder specified in path. |
-| `ignore` | array of strings | Files to ignore inside the function. [Learn more about ignoring files](/docs/functions#ignoreFiles). |
-| `execute` | array of strings | Grants execute permissions to users. [Learn more about role strings](/docs/rest#permissions). |
-| `events` | array of strings | Events that trigger the function to execute. [Learn more about events](/docs/events). |
-| `schedule` | string | Execute schedule for the function. [Learn more about scheduled executions](/docs/functions#scheduled-execution). |
+| `ignore` | array of strings | Files to ignore inside the function. [Learn more about ignoring files](/docs). |
+| `execute` | array of strings | Grants execute permissions to users. [Learn more about role strings](/docs/apis/rest#permissions). |
+| `events` | array of strings | Events that trigger the function to execute. [Learn more about events](/docs). |
+| `schedule` | string | Execute schedule for the function. [Learn more about scheduled executions](/docs/products/functions/execution#schedule). |
| `timeout` | int | Execution timeout of the function in seconds, with a maximum configurable limit of 900 seconds. |
| `variables` | JSON object | Variables provided to the function on execution stored as a key-value JSON object. |
@@ -136,9 +136,9 @@ Here's a complete list of all configurable options in `appwrite.json`:
| `databaseId` | string | ID of the database to which this collection belongs. |
| `enabled` | bool | If the collection is enabled. |
| `documentSecurity` | bool | If access permissions can be defined at the document level. |
-| `$permissions` | array of strings | Grants access permissions to users at the collection level. [Learn more about permissions](/docs/rest#permissions). |
-| `attributes` | array of objects | Defines a list of attributes in the collection. [Learn more about the Attributes List Object](/docs/models/attributeList). |
-| `indexes` | array of objects | Defines a list of indexes in the collection. [Learn more about the Indexes List Object](/docs/models/indexList). |
+| `$permissions` | array of strings | Grants access permissions to users at the collection level. [Learn more about permissions](/docs/apis/rest#permissions). |
+| `attributes` | array of objects | Defines a list of attributes in the collection. [Learn more about the Attributes List Object](/docs/references/cloud/models/attributeList). |
+| `indexes` | array of objects | Defines a list of indexes in the collection. [Learn more about the Indexes List Object](/docs/references/cloud/models/indexList). |
#### Buckets options
@@ -146,8 +146,8 @@ Here's a complete list of all configurable options in `appwrite.json`:
| --- | --- | --- |
| `$id` | string | Bucket ID. |
| `name` | string | Bucket Name. |
-| `$permissions` | array of strings | Grants access permissions to users at the bucket level. [Learn more about permissions](/docs/rest#permissions). |
-| `fileSecurity` | boolean | Whether file-level security is enabled. [Learn more about permissions](/docs/rest#permissions). |
+| `$permissions` | array of strings | Grants access permissions to users at the bucket level. [Learn more about permissions](/docs/apis/rest#permissions). |
+| `fileSecurity` | boolean | Whether file-level security is enabled. [Learn more about permissions](/docs/apis/rest#permissions). |
| `enabled` | boolean | Whether the bucket is enabled or disabled. |
| `maximumFileSize` | integer | Maximum file size supported. |
| `allowedFileExtensions` | string\[\] | List of allowed file extensions. |
diff --git a/src/routes/docs/tooling/command-line/non-interactive/+page.markdoc b/src/routes/docs/tooling/command-line/non-interactive/+page.markdoc
index 6338b1bdb8..f62f92f4b4 100644
--- a/src/routes/docs/tooling/command-line/non-interactive/+page.markdoc
+++ b/src/routes/docs/tooling/command-line/non-interactive/+page.markdoc
@@ -17,7 +17,7 @@ When you set the global configuration parameters using the `appwrite client` com
In this mode, the CLI can only interact with one project at a time.
## API Keys {% #api-keys %}
-In non-interactive mode, the CLI uses an API key to authenticate. Your API key must have sufficient permissions to execute the commands you plan to use. [Learn more about API Keys](/docs/platform/api-keys).
+In non-interactive mode, the CLI uses an API key to authenticate. Your API key must have sufficient permissions to execute the commands you plan to use. [Learn more about API Keys](/docs/advanced/platform/api-keys).
## Deployment {% #deployment %}
Appwrite's deploy commands can also be executed in a non-interactive mode. This applies to both function and collection deployment.
diff --git a/src/routes/docs/tutorials/+page.svelte b/src/routes/docs/tutorials/+page.svelte
index 34392306f8..82416adef6 100644
--- a/src/routes/docs/tutorials/+page.svelte
+++ b/src/routes/docs/tutorials/+page.svelte
@@ -1,6 +1,4 @@
diff --git a/src/routes/pricing/+page.svelte b/src/routes/pricing/+page.svelte
index b988074d7c..93e7a566fe 100644
--- a/src/routes/pricing/+page.svelte
+++ b/src/routes/pricing/+page.svelte
@@ -42,7 +42,7 @@
>
Start building
diff --git a/src/routes/pricing/faq.svelte b/src/routes/pricing/faq.svelte
index 5ebb5614df..fa87a82166 100644
--- a/src/routes/pricing/faq.svelte
+++ b/src/routes/pricing/faq.svelte
@@ -10,42 +10,42 @@
{
question: 'When will Appwrite’s paid plans be available?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'It is our aim to release pricing in the midst of Q4 2023. Please do note that this timeline is subject to many factors and, therefore, not set in stone. Everyone with an Appwrite Cloud account will receive a notification when our paid plans are available.'
},
{
question: 'Can I still self-host Appwrite for free?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'Yes! Appwrite Self Hosted will always be Open Source and free for you to use. You can find the latest version of Appwrite on our GitHub repository.'
},
{
question: 'What will happen to my current account when pricing is available?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'All current Cloud users will be notified about the pricing plans being active. Depending on your situation, you will either need to upgrade your account to a pro Plan, or you can happily continue on a Starter plan. You will receive an email once this occurs.'
},
{
question: 'Does Appwrite have a trial period?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'Yes, we offer a 14-day trial period for you to explore Appwrite Pro. After the 14-day trial, you can choose to either subscribe to the Pro plan or continue on a Starter plan.'
},
{
question: 'What payment methods does Appwrite support?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'Appwrite currently supports credit and debit card payments. We will be working to constantly add support for more methods. Please reach out to us in case this is an issue for you.'
},
{
question: 'What happens if I reach the storage limit in my Pro plan?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'Your project will continue to run, and additional charges will apply. You can find the costs for additional storage under the pricing plans comparsions. We will also notify you when you hit 75% and 100% of your storage with an alert in the dashboard and per email. You can also use our budget tools to avoid unexpected payments.'
},
{
- question: 'How can I get the OSS plan?',
+ question: 'How can I join the OSS program?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'The OSS program is exclusively for active open-source maintainers. In case you are liable for the program, you can apply here.'
},
{
- question: 'I have a Free Plan account, how do I upgrade to a paid plan?',
+ question: 'I have a Starter plan account, how do I upgrade to a paid plan?',
answer:
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer viverra nulla sit amet sapien sollicitudin, et rutrum ex auctor. Donec fringilla, tellus vitae vestibulum ullamcorper, lectus leo pellentesque arcu, a hendrerit purus tortor sed odio.'
+ 'In case you want to upgrade to a paid plan, you can do so in your Appwrite dashboard, select your organization and change your plan on the Billing section.'
}
];
@@ -87,7 +87,7 @@
{#if $isSelected(`${index}`)}
- {faqItem.answer}
+ {@html faqItem.answer}
{/if}
@@ -105,7 +105,7 @@
- {faqItem.answer}
+ {@html faqItem.answer}
diff --git a/src/scss/hljs.css b/src/scss/hljs.css
index ca8457d687..d9605d03d3 100644
--- a/src/scss/hljs.css
+++ b/src/scss/hljs.css
@@ -10,9 +10,9 @@ code.line-numbers .line:before {
content: counter(line);
display: inline-block;
text-align: right;
- padding-right: 8px;
+ padding-right: 1rem;
color: #6C6C71;
- width: 2rem;
+ width: 2.5rem;
}
.hljs-doctag,
diff --git a/static/icon-font/aw-icon.eot b/static/icon-font/aw-icon.eot
index 8668e82861..6d58f60ed0 100644
Binary files a/static/icon-font/aw-icon.eot and b/static/icon-font/aw-icon.eot differ
diff --git a/static/icon-font/aw-icon.svg b/static/icon-font/aw-icon.svg
index c832e7e116..b69620413f 100644
--- a/static/icon-font/aw-icon.svg
+++ b/static/icon-font/aw-icon.svg
@@ -108,7 +108,7 @@
horiz-adv-x="1000" d="M636.5152787342303 658.620853271609C571.1652787342302 644.520853271609 519.6152787342302 599.0708532716089 498.4152787342302 536.870853271609C489.4652787342303 510.620853271609 486.6652787342303 476.8208532716091 491.2652787342302 450.670853271609L493.3652787342302 438.620853271609L485.7152787342303 438.620853271609C473.9652787342302 438.620853271609 438.8152787342302 443.270853271609 415.6652787342303 447.870853271609C305.1652787342303 469.920853271609 199.5652787342303 529.6208532716089 127.2652787342303 610.920853271609L111.5152787342303 628.620853271609L108.6152787342303 624.870853271609C103.9652787342303 618.870853271609 92.8652787342303 589.020853271609 89.8152787342303 574.420853271609C75.8652787342303 507.120853271609 101.0152787342303 438.270853271609 155.3652787342303 394.9708532716091L167.5652787342303 385.270853271609L161.6652787342303 385.270853271609C146.2152787342303 385.270853271609 108.9652787342303 395.2208532716089 91.7652787342303 403.9208532716091C88.2152787342303 405.7208532716091 84.9152787342303 406.7208532716091 84.3152787342303 406.1708532716091C82.4152787342303 404.270853271609 87.1652787342303 371.0708532716091 91.4652787342303 356.270853271609C109.2652787342303 295.0708532716091 157.5152787342303 247.1208532716091 218.7152787342303 229.7208532716091L232.6652787342303 225.770853271609L222.0652787342303 223.4708532716091C215.1152787342303 221.920853271609 201.1152787342303 221.120853271609 181.0652787342303 221.120853271609C161.4152787342303 221.120853271609 150.6652787342303 220.520853271609 150.6652787342303 219.370853271609C150.6652787342303 215.270853271609 169.6152787342303 180.120853271609 177.1652787342303 170.170853271609C194.1652787342303 147.770853271609 217.9652787342303 128.120853271609 243.5652787342303 115.4208532716091C264.5652787342302 104.970853271609 279.1652787342303 100.970853271609 315.3152787342303 95.870853271609C318.3152787342302 95.4708532716091 320.3652787342303 94.4708532716091 319.9152787342303 93.7208532716091C317.9652787342303 90.620853271609 284.7652787342303 69.670853271609 267.0652787342303 60.370853271609C238.3652787342303 45.320853271609 206.3152787342303 33.620853271609 173.5152787342303 26.070853271609C142.7652787342303 19.070853271609 93.6652787342303 15.4708532716091 65.6652787342303 18.2208532716091C56.9652787342303 19.070853271609 49.6652787342303 19.670853271609 49.4652787342303 19.520853271609C48.5652787342303 18.870853271609 80.2152787342303 1.1708532716091 98.1652787342303 -7.729146728391C153.8152787342303 -35.2791467283909 217.2652787342303 -53.3291467283909 281.5152787342303 -59.8291467283911C309.3652787342303 -62.629146728391 369.1652787342303 -62.1791467283909 396.3152787342303 -58.9791467283909C499.2152787342303 -46.7291467283911 582.4652787342302 -13.3291467283909 660.6652787342302 46.9708532716089C681.2152787342303 62.820853271609 726.4652787342302 108.020853271609 743.9152787342302 130.120853271609C792.4652787342303 191.5708532716091 825.6152787342302 258.670853271609 844.9152787342304 334.5708532716091C855.4152787342302 375.7208532716091 859.0652787342302 402.5708532716091 860.1652787342304 446.120853271609L861.1152787342302 482.8208532716091L870.4652787342303 489.720853271609C890.3652787342303 504.370853271609 920.3652787342302 534.1208532716089 938.7652787342302 557.470853271609C954.5652787342302 577.5708532716089 954.5652787342302 577.520853271609 938.2652787342302 571.0708532716089C920.9152787342302 564.270853271609 899.5652787342303 557.970853271609 879.8152787342301 553.770853271609C862.7152787342302 550.170853271609 849.0152787342302 548.0708532716089 849.0152787342302 549.120853271609C849.0152787342302 549.470853271609 853.1152787342302 552.520853271609 858.1152787342303 555.870853271609C881.2652787342302 571.220853271609 905.3652787342302 599.370853271609 918.1152787342302 625.970853271609C930.0652787342304 650.920853271609 930.5152787342302 650.220853271609 908.7152787342304 639.3208532716089C879.9652787342302 624.870853271609 854.3152787342302 615.470853271609 822.7652787342303 607.870853271609L810.7152787342303 604.920853271609L800.2652787342303 614.420853271609C778.6652787342302 633.970853271609 751.0652787342302 648.920853271609 722.6652787342302 656.420853271609C700.0652787342302 662.420853271609 658.8152787342302 663.470853271609 636.5152787342303 658.620853271609" />
+ horiz-adv-x="1000" d="M593.042379788101 376.5289323553382L957.1230643846782 799.7432762836186H870.8475957620212L554.7163814180929 432.2722086389568L302.2233088834556 799.7432762836186H11.0024449877751L392.8215158924205 244.0619396903015L11.0024449877751 -199.7432762836185H97.2828035859821L431.1255093724531 188.3186634066829L697.7766911165445 -199.7432762836185H988.9975550122248L593.0211898940504 376.5289323553382H593.042379788101zM474.8696006519967 239.1662591687042L436.1833740831296 294.4995925020375L128.3708231458843 734.7926650366749H260.8924205378973L509.3007334963325 379.4621026894866L547.9869600651996 324.1287693561532L870.888345558272 -137.7465362673186H738.3667481662592L474.8696006519967 239.1450692746535V239.1662591687042z" />
diff --git a/static/icon-font/aw-icon.symbol.svg b/static/icon-font/aw-icon.symbol.svg
index c3ac15366f..f1487daa27 100644
--- a/static/icon-font/aw-icon.symbol.svg
+++ b/static/icon-font/aw-icon.symbol.svg
@@ -1 +1,3 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/static/icon-font/aw-icon.ttf b/static/icon-font/aw-icon.ttf
index b8f1af833f..90eac84680 100644
Binary files a/static/icon-font/aw-icon.ttf and b/static/icon-font/aw-icon.ttf differ
diff --git a/static/icon-font/aw-icon.woff b/static/icon-font/aw-icon.woff
index 489a0fc303..723c462104 100644
Binary files a/static/icon-font/aw-icon.woff and b/static/icon-font/aw-icon.woff differ
diff --git a/static/icon-font/aw-icon.woff2 b/static/icon-font/aw-icon.woff2
index fc3ac5f0c5..9426665bea 100644
Binary files a/static/icon-font/aw-icon.woff2 and b/static/icon-font/aw-icon.woff2 differ
diff --git a/static/images/avatars/aditya.png b/static/images/avatars/aditya.png
new file mode 100644
index 0000000000..a08dc8d1c0
Binary files /dev/null and b/static/images/avatars/aditya.png differ
diff --git a/static/images/avatars/arman.png b/static/images/avatars/arman.png
index e2ef3d58b3..0ebd3e9728 100644
Binary files a/static/images/avatars/arman.png and b/static/images/avatars/arman.png differ
diff --git a/static/images/avatars/bradley.png b/static/images/avatars/bradley.png
new file mode 100644
index 0000000000..95fd213f33
Binary files /dev/null and b/static/images/avatars/bradley.png differ
diff --git a/static/images/avatars/caio.png b/static/images/avatars/caio.png
new file mode 100644
index 0000000000..d37491f35a
Binary files /dev/null and b/static/images/avatars/caio.png differ
diff --git a/static/images/avatars/carla.png b/static/images/avatars/carla.png
new file mode 100644
index 0000000000..92151475ae
Binary files /dev/null and b/static/images/avatars/carla.png differ
diff --git a/static/images/avatars/chen.png b/static/images/avatars/chen.png
new file mode 100644
index 0000000000..b4db8ff1ca
Binary files /dev/null and b/static/images/avatars/chen.png differ
diff --git a/static/images/avatars/christy.png b/static/images/avatars/christy.png
new file mode 100644
index 0000000000..c40e07ba1f
Binary files /dev/null and b/static/images/avatars/christy.png differ
diff --git a/static/images/avatars/dylan.png b/static/images/avatars/dylan.png
new file mode 100644
index 0000000000..4b0424780e
Binary files /dev/null and b/static/images/avatars/dylan.png differ
diff --git a/static/images/avatars/elad.png b/static/images/avatars/elad.png
new file mode 100644
index 0000000000..86fec9a3ff
Binary files /dev/null and b/static/images/avatars/elad.png differ
diff --git a/static/images/avatars/eldad.png b/static/images/avatars/eldad.png
index b53ded114b..4208b0db82 100644
Binary files a/static/images/avatars/eldad.png and b/static/images/avatars/eldad.png differ
diff --git a/static/images/avatars/emma.png b/static/images/avatars/emma.png
new file mode 100644
index 0000000000..a88155b91f
Binary files /dev/null and b/static/images/avatars/emma.png differ
diff --git a/static/images/avatars/haimantika.png b/static/images/avatars/haimantika.png
new file mode 100644
index 0000000000..414d0a4671
Binary files /dev/null and b/static/images/avatars/haimantika.png differ
diff --git a/static/images/avatars/holly.png b/static/images/avatars/holly.png
new file mode 100644
index 0000000000..14977a5639
Binary files /dev/null and b/static/images/avatars/holly.png differ
diff --git a/static/images/avatars/jade.png b/static/images/avatars/jade.png
new file mode 100644
index 0000000000..7131a610dd
Binary files /dev/null and b/static/images/avatars/jade.png differ
diff --git a/static/images/avatars/kushboo.png b/static/images/avatars/kushboo.png
new file mode 100644
index 0000000000..4028546763
Binary files /dev/null and b/static/images/avatars/kushboo.png differ
diff --git a/static/images/avatars/laura.png b/static/images/avatars/laura.png
new file mode 100644
index 0000000000..ac9220fc9f
Binary files /dev/null and b/static/images/avatars/laura.png differ
diff --git a/static/images/avatars/luke.png b/static/images/avatars/luke.png
new file mode 100644
index 0000000000..e7f900cb78
Binary files /dev/null and b/static/images/avatars/luke.png differ
diff --git a/static/images/avatars/may.png b/static/images/avatars/may.png
new file mode 100644
index 0000000000..19796de2bf
Binary files /dev/null and b/static/images/avatars/may.png differ
diff --git a/static/images/avatars/sara.png b/static/images/avatars/sara.png
new file mode 100644
index 0000000000..78e1f10b3d
Binary files /dev/null and b/static/images/avatars/sara.png differ
diff --git a/static/images/avatars/shimon.png b/static/images/avatars/shimon.png
new file mode 100644
index 0000000000..40860b5eb2
Binary files /dev/null and b/static/images/avatars/shimon.png differ
diff --git a/static/images/avatars/shmuel.png b/static/images/avatars/shmuel.png
new file mode 100644
index 0000000000..4086537051
Binary files /dev/null and b/static/images/avatars/shmuel.png differ
diff --git a/static/images/avatars/steven.png b/static/images/avatars/steven.png
new file mode 100644
index 0000000000..f6e9e3a233
Binary files /dev/null and b/static/images/avatars/steven.png differ
diff --git a/static/images/avatars/tessa.png b/static/images/avatars/tessa.png
new file mode 100644
index 0000000000..f5b5698db4
Binary files /dev/null and b/static/images/avatars/tessa.png differ
diff --git a/static/images/avatars/thomas.png b/static/images/avatars/thomas.png
new file mode 100644
index 0000000000..db01056a8f
Binary files /dev/null and b/static/images/avatars/thomas.png differ
diff --git a/static/images/avatars/torsten.png b/static/images/avatars/torsten.png
new file mode 100644
index 0000000000..b7b4ca5192
Binary files /dev/null and b/static/images/avatars/torsten.png differ
diff --git a/static/images/avatars/vincent.png b/static/images/avatars/vincent.png
new file mode 100644
index 0000000000..21960bef69
Binary files /dev/null and b/static/images/avatars/vincent.png differ
diff --git a/static/images/avatars/wess.png b/static/images/avatars/wess.png
new file mode 100644
index 0000000000..88b8cf9dd3
Binary files /dev/null and b/static/images/avatars/wess.png differ
diff --git a/static/images/blog/glass-elements.png b/static/images/blog/glass-elements.png
new file mode 100644
index 0000000000..38620d4fd4
Binary files /dev/null and b/static/images/blog/glass-elements.png differ
diff --git a/static/images/blog/logo.png b/static/images/blog/logo.png
new file mode 100644
index 0000000000..ecc4d9d208
Binary files /dev/null and b/static/images/blog/logo.png differ
diff --git a/static/images/blog/new-logo.png b/static/images/blog/new-logo.png
new file mode 100644
index 0000000000..6e07e338c9
Binary files /dev/null and b/static/images/blog/new-logo.png differ
diff --git a/static/images/blog/new-website.png b/static/images/blog/new-website.png
new file mode 100644
index 0000000000..51715c6a3a
Binary files /dev/null and b/static/images/blog/new-website.png differ
diff --git a/static/images/blog/pricing-plans.png b/static/images/blog/pricing-plans.png
new file mode 100644
index 0000000000..6c52b822fa
Binary files /dev/null and b/static/images/blog/pricing-plans.png differ
diff --git a/static/images/community/avatars/kap.png b/static/images/community/avatars/kap.png
new file mode 100644
index 0000000000..72bb2edd42
Binary files /dev/null and b/static/images/community/avatars/kap.png differ
diff --git a/static/images/community/avatars/souvik.png b/static/images/community/avatars/souvik.png
new file mode 100644
index 0000000000..54caa2528e
Binary files /dev/null and b/static/images/community/avatars/souvik.png differ
diff --git a/static/images/community/avatars/stephen.png b/static/images/community/avatars/stephen.png
new file mode 100644
index 0000000000..5199f8db6a
Binary files /dev/null and b/static/images/community/avatars/stephen.png differ
diff --git a/static/images/community/avatars/terieyenike.png b/static/images/community/avatars/terieyenike.png
new file mode 100644
index 0000000000..92c67f52ea
Binary files /dev/null and b/static/images/community/avatars/terieyenike.png differ
diff --git a/static/images/community/avatars/terry.png b/static/images/community/avatars/terry.png
new file mode 100644
index 0000000000..ef6d107018
Binary files /dev/null and b/static/images/community/avatars/terry.png differ
diff --git a/static/images/community/avatars/varun.png b/static/images/community/avatars/varun.png
new file mode 100644
index 0000000000..656c192728
Binary files /dev/null and b/static/images/community/avatars/varun.png differ
diff --git a/static/images/community/events/hf-kickoff-bangalore.png b/static/images/community/events/hf-kickoff-bangalore.png
new file mode 100644
index 0000000000..f38f377940
Binary files /dev/null and b/static/images/community/events/hf-kickoff-bangalore.png differ
diff --git a/static/images/community/events/live-coding.png b/static/images/community/events/live-coding.png
new file mode 100644
index 0000000000..1301c9b0ab
Binary files /dev/null and b/static/images/community/events/live-coding.png differ
diff --git a/static/images/community/events/office-hours.png b/static/images/community/events/office-hours.png
new file mode 100644
index 0000000000..963f990e6a
Binary files /dev/null and b/static/images/community/events/office-hours.png differ
diff --git a/static/images/community/events/oss-celebration.png b/static/images/community/events/oss-celebration.png
new file mode 100644
index 0000000000..ee70fec37a
Binary files /dev/null and b/static/images/community/events/oss-celebration.png differ
diff --git a/static/images/community/projects/glitch.png b/static/images/community/projects/glitch.png
new file mode 100644
index 0000000000..ec3fa90874
Binary files /dev/null and b/static/images/community/projects/glitch.png differ
diff --git a/static/images/community/projects/ucanearn.png b/static/images/community/projects/ucanearn.png
new file mode 100644
index 0000000000..30bd37622a
Binary files /dev/null and b/static/images/community/projects/ucanearn.png differ
diff --git a/static/images/icons/illustrated/dark/messaging.png b/static/images/icons/illustrated/dark/messaging.png
new file mode 100644
index 0000000000..34d26b87a3
Binary files /dev/null and b/static/images/icons/illustrated/dark/messaging.png differ
diff --git a/static/images/platforms/dark/nextjs.svg b/static/images/platforms/dark/nextjs.svg
new file mode 100644
index 0000000000..8a11df820c
--- /dev/null
+++ b/static/images/platforms/dark/nextjs.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/dark/nuxt.svg b/static/images/platforms/dark/nuxt.svg
new file mode 100644
index 0000000000..530b1b509f
--- /dev/null
+++ b/static/images/platforms/dark/nuxt.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/dark/objective-c.svg b/static/images/platforms/dark/objective-c.svg
deleted file mode 100755
index 3320c79e24..0000000000
--- a/static/images/platforms/dark/objective-c.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
\ No newline at end of file
diff --git a/static/images/platforms/dark/perl.svg b/static/images/platforms/dark/perl.svg
deleted file mode 100644
index 6069f8f7b6..0000000000
--- a/static/images/platforms/dark/perl.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
diff --git a/static/images/platforms/light/android.svg b/static/images/platforms/light/android.svg
new file mode 100644
index 0000000000..e6f77411e4
--- /dev/null
+++ b/static/images/platforms/light/android.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/angular.svg b/static/images/platforms/light/angular.svg
new file mode 100644
index 0000000000..217863662e
--- /dev/null
+++ b/static/images/platforms/light/angular.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/apple.svg b/static/images/platforms/light/apple.svg
new file mode 100644
index 0000000000..e9b87e2b29
--- /dev/null
+++ b/static/images/platforms/light/apple.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/bun.svg b/static/images/platforms/light/bun.svg
new file mode 100644
index 0000000000..353960b4ff
--- /dev/null
+++ b/static/images/platforms/light/bun.svg
@@ -0,0 +1,26 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/c.svg b/static/images/platforms/light/c.svg
new file mode 100755
index 0000000000..0adbc09344
--- /dev/null
+++ b/static/images/platforms/light/c.svg
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/csharp.svg b/static/images/platforms/light/csharp.svg
new file mode 100644
index 0000000000..511337b455
--- /dev/null
+++ b/static/images/platforms/light/csharp.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/static/images/platforms/light/dart.svg b/static/images/platforms/light/dart.svg
new file mode 100644
index 0000000000..bedb1840aa
--- /dev/null
+++ b/static/images/platforms/light/dart.svg
@@ -0,0 +1,11 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/deno.svg b/static/images/platforms/light/deno.svg
new file mode 100644
index 0000000000..e0c2d6b47d
--- /dev/null
+++ b/static/images/platforms/light/deno.svg
@@ -0,0 +1,12 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/dotnet.svg b/static/images/platforms/light/dotnet.svg
new file mode 100644
index 0000000000..636dafaa5b
--- /dev/null
+++ b/static/images/platforms/light/dotnet.svg
@@ -0,0 +1,15 @@
+
+
diff --git a/static/images/platforms/light/erlang.svg b/static/images/platforms/light/erlang.svg
new file mode 100755
index 0000000000..3f0c59a91d
--- /dev/null
+++ b/static/images/platforms/light/erlang.svg
@@ -0,0 +1,6 @@
+
+
diff --git a/static/images/platforms/light/flutter.svg b/static/images/platforms/light/flutter.svg
new file mode 100644
index 0000000000..892658f560
--- /dev/null
+++ b/static/images/platforms/light/flutter.svg
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/go.svg b/static/images/platforms/light/go.svg
new file mode 100644
index 0000000000..146566c2c1
--- /dev/null
+++ b/static/images/platforms/light/go.svg
@@ -0,0 +1,38 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/java.svg b/static/images/platforms/light/java.svg
new file mode 100755
index 0000000000..fc3412b067
--- /dev/null
+++ b/static/images/platforms/light/java.svg
@@ -0,0 +1,8 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/javascript.svg b/static/images/platforms/light/javascript.svg
new file mode 100755
index 0000000000..24be9d24f0
--- /dev/null
+++ b/static/images/platforms/light/javascript.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/kotlin.svg b/static/images/platforms/light/kotlin.svg
new file mode 100644
index 0000000000..3a4fd92ffd
--- /dev/null
+++ b/static/images/platforms/light/kotlin.svg
@@ -0,0 +1,14 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/nodejs.svg b/static/images/platforms/light/nodejs.svg
new file mode 100755
index 0000000000..8fed80eafb
--- /dev/null
+++ b/static/images/platforms/light/nodejs.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/php.svg b/static/images/platforms/light/php.svg
new file mode 100755
index 0000000000..396ab6dee9
--- /dev/null
+++ b/static/images/platforms/light/php.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/python.svg b/static/images/platforms/light/python.svg
new file mode 100755
index 0000000000..92b164e216
--- /dev/null
+++ b/static/images/platforms/light/python.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/react.svg b/static/images/platforms/light/react.svg
new file mode 100644
index 0000000000..c66acae52c
--- /dev/null
+++ b/static/images/platforms/light/react.svg
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/ruby.svg b/static/images/platforms/light/ruby.svg
new file mode 100755
index 0000000000..eb7f488a06
--- /dev/null
+++ b/static/images/platforms/light/ruby.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/scala.svg b/static/images/platforms/light/scala.svg
new file mode 100644
index 0000000000..9c66c21d03
--- /dev/null
+++ b/static/images/platforms/light/scala.svg
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/svelte.svg b/static/images/platforms/light/svelte.svg
new file mode 100644
index 0000000000..08478f7405
--- /dev/null
+++ b/static/images/platforms/light/svelte.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/swift.svg b/static/images/platforms/light/swift.svg
new file mode 100755
index 0000000000..af81394483
--- /dev/null
+++ b/static/images/platforms/light/swift.svg
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/typescript.svg b/static/images/platforms/light/typescript.svg
new file mode 100644
index 0000000000..92f40e0836
--- /dev/null
+++ b/static/images/platforms/light/typescript.svg
@@ -0,0 +1,10 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/vue.svg b/static/images/platforms/light/vue.svg
new file mode 100644
index 0000000000..e607c5f08a
--- /dev/null
+++ b/static/images/platforms/light/vue.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/light/web.svg b/static/images/platforms/light/web.svg
new file mode 100755
index 0000000000..17ad0e656c
--- /dev/null
+++ b/static/images/platforms/light/web.svg
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file
diff --git a/static/images/platforms/nextjs.svg b/static/images/platforms/nextjs.svg
new file mode 100644
index 0000000000..e73e3cd195
--- /dev/null
+++ b/static/images/platforms/nextjs.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/images/platforms/nuxt.svg b/static/images/platforms/nuxt.svg
new file mode 100644
index 0000000000..7f20b55046
--- /dev/null
+++ b/static/images/platforms/nuxt.svg
@@ -0,0 +1 @@
+
diff --git a/static/images/platforms/objective-c.svg b/static/images/platforms/objective-c.svg
deleted file mode 100755
index 0114337185..0000000000
--- a/static/images/platforms/objective-c.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/static/images/platforms/perl.svg b/static/images/platforms/perl.svg
deleted file mode 100644
index 6069f8f7b6..0000000000
--- a/static/images/platforms/perl.svg
+++ /dev/null
@@ -1,57 +0,0 @@
-
diff --git a/static/images/tutorials/android.png b/static/images/tutorials/android.png
new file mode 100644
index 0000000000..7d58e01b1a
Binary files /dev/null and b/static/images/tutorials/android.png differ
diff --git a/static/images/tutorials/flutter.png b/static/images/tutorials/flutter.png
new file mode 100644
index 0000000000..ebd971471c
Binary files /dev/null and b/static/images/tutorials/flutter.png differ
diff --git a/static/images/tutorials/react.png b/static/images/tutorials/react.png
new file mode 100644
index 0000000000..0642f71498
Binary files /dev/null and b/static/images/tutorials/react.png differ
diff --git a/static/images/tutorials/svelte.png b/static/images/tutorials/svelte.png
new file mode 100644
index 0000000000..23473e4e7e
Binary files /dev/null and b/static/images/tutorials/svelte.png differ
diff --git a/static/images/tutorials/vue.png b/static/images/tutorials/vue.png
new file mode 100644
index 0000000000..dd8cf97bd7
Binary files /dev/null and b/static/images/tutorials/vue.png differ
diff --git a/svelte.config.js b/svelte.config.js
index 0a868fe8be..5bf5303c54 100644
--- a/svelte.config.js
+++ b/svelte.config.js
@@ -40,10 +40,6 @@ const config = {
$scss: './src/scss',
$appwrite: './node_modules/@appwrite.io/repo',
$markdoc: './src/markdoc'
- },
- prerender: {
- handleHttpError: 'warn',
- handleMissingId: 'warn'
}
}
};