Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: relative links + seo #1013

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions src/routes/blog/post/a-recap-of-init/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ We did everything in-house, which brought some challenges as we had to learn on

## The fun begins

And then, finally, we got to [announce Init](https://appwrite.io/blog/post/announcing-init) to all of you and have you join in the fun and create your tickets.
And then, finally, we got to [announce Init](/blog/post/announcing-init) to all of you and have you join in the fun and create your tickets.

![Init begins](/images/blog/a-recap-of-init/init5.png)

Expand Down Expand Up @@ -76,13 +76,13 @@ We kicked off the first Discord session with Appwrite Hero and Vonage dev advoca

### Content list

- [Best practices for sending push notifications](https://appwrite.io/blog/post/push-notifications-best-practices)
- [How tools like Twilio can simplify messaging for developers](https://appwrite.io/blog/post/simplify-messaging-twilio)
- [Best practices for sending push notifications](/blog/post/push-notifications-best-practices)
- [How tools like Twilio can simplify messaging for developers](/blog/post/simplify-messaging-twilio)
- [Product tour video](https://www.youtube.com/watch?v=QdDgPeuBZ1I)

## Another day

On day 1 we continued our same flow and announced Improved support for [server-side rendering.](https://appwrite.io/blog/post/introducing-support-for-server-side-rendering)
On day 1 we continued our same flow and announced Improved support for [server-side rendering.](/blog/post/introducing-support-for-server-side-rendering)

{% youtube src="https://www.youtube-nocookie.com/embed/jeL4cSovOBA?si=0tMDecmUucWOYASg" thumbnail="/images/blog/a-recap-of-init/thumbnails/thumbnail-ssr.png" /%}

Expand All @@ -100,9 +100,9 @@ For day 1 we invited [Hitesh Choudhary](https://twitter.com/Hiteshdotcom) to com

### Content list

- [SSR vs CSR with Next.js](https://appwrite.io/blog/post/csr-vs-ssr-with-nextjs)
- [SSR vs CSR with Next.js](/blog/post/csr-vs-ssr-with-nextjs)
- [Product tour](https://youtu.be/7LN05c-ov_0)
- [Announcement SSR](https://appwrite.io/blog/post/introducing-support-for-server-side-rendering)
- [Announcement SSR](/blog/post/introducing-support-for-server-side-rendering)

## Safety first

Expand All @@ -127,11 +127,11 @@ We got a curve ball thrown at us on day 2 of Init, as our guest for the day had
### Content list

- [Product tour 2FA](https://youtu.be/OWRju8ZZuQ8)
- [Announcement 2FA](https://appwrite.io/blog/post/announcing-two-factor-authentication)
- [From passwords to protection: Implementing 2FA in your applications](https://appwrite.io/blog/post/password-protection-2fa)
- [Announcement Enum SDK support](https://appwrite.io/blog/post/introducing-enum-sdk-support)
- [Effective use of enums in API design](https://appwrite.io/blog/post/enums-api-design)
- [Enhancing type safety in software development with enums](https://appwrite.io/blog/post/enhancing-type-safety)
- [Announcement 2FA](/blog/post/announcing-two-factor-authentication)
- [From passwords to protection: Implementing 2FA in your applications](/blog/post/password-protection-2fa)
- [Announcement Enum SDK support](/blog/post/introducing-enum-sdk-support)
- [Effective use of enums in API design](/blog/post/enums-api-design)
- [Enhancing type safety in software development with enums](/blog/post/enhancing-type-safety)

## More querying!

Expand All @@ -147,9 +147,9 @@ For day 3 of Init, we had [Danny Thompson](https://twitter.com/DThompsonDev) joi

### Content list

- [Database operators announcement](https://appwrite.io/blog/post/introducing-new-database-operators)
- [Database operators announcement](/blog/post/introducing-new-database-operators)
- [Product tour video](https://youtu.be/IMgl9f_iht4)
- [Understanding data queries in database management](https://appwrite.io/blog/post/understand-data-queries)
- [Understanding data queries in database management](/blog/post/understand-data-queries)

## The end and the beginning

Expand All @@ -163,9 +163,9 @@ The closing party got an extra special touch with five giveaways to celebrate. A

### Content list

- [New runtimes announcement](https://appwrite.io/blog/post/introducing-enum-sdk-support)
- [Sound null-safety for your Dart functions](https://appwrite.io/blog/post/sound-null-safety-for-your-dart-functions)
- [Why you need to try the new Bun function runtime](https://appwrite.io/blog/post/why-you-need-to-try-the-new-bun-runtime)
- [New runtimes announcement](/blog/post/introducing-enum-sdk-support)
- [Sound null-safety for your Dart functions](/blog/post/sound-null-safety-for-your-dart-functions)
- [Why you need to try the new Bun function runtime](/blog/post/why-you-need-to-try-the-new-bun-runtime)

# Thank you all for joining

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
---
layout: post
title: How Pink Design helped us improve web accessibility in our products.
description:
description: 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.
date: 2022-11-14
cover: /images/pages/homepage/dashboard.png
timeToRead: 3
author: arman
category: accessibility, design
---

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.
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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ Meilisearch is a flexible and powerful user-focused search engine that can be ad

To use the function, you need the following set of keys:

- `APPWRITE_KEY` - API Key to talk to Appwrite backend APIs.To generate API Keys you can follow the documentation [here](https://appwrite.io/docs/getting-started-for-server#apiKey)
- `APPWRITE_KEY` - API Key to talk to Appwrite backend APIs.To generate API Keys you can follow the documentation [here](/docs/getting-started-for-server#apiKey)
- `APPWRITE_ENDPOINT` - To get the Appwrite endpoint, you need to go to [Appwrite](https://cloud.appwrite.io/) and find it under “Settings”
- `APPWRITE_DATABASE_ID` - The ID of the Appwrite database that contains the collection to sync. You can find the documentation [here](https://appwrite.io/docs/databases).
- `APPWRITE_DATABASE_ID` - The ID of the Appwrite database that contains the collection to sync. You can find the documentation [here](/docs/databases).
- `APPWRITE_COLLECTION_ID` - The ID of the collection in the Appwrite database to sync.

To use Meilisearch, you can either self-host it using the command 👇
Expand All @@ -31,7 +31,7 @@ To use Meilisearch, you can either self-host it using the command 👇
curl -L [https://install.meilisearch.com](https://install.meilisearch.com/) | sh
```

Or use [Meilisearch Cloud](https://www.meilisearch.com/cloud). For this example, we will assume that you are using Meilisearch Cloud.
Or use [Meilisearch Cloud](https://www.meilisearch.com/cloud). For this example, we will assume that you are using Meilisearch Cloud.

Here’s the keys you need:

Expand All @@ -40,7 +40,7 @@ Here’s the keys you need:

![Overview Meilisearch](/images/blog/add-a-search-function-to-your-app/functions.png)

- `MEILISEARCH_ADMIN_API_KEY` - This is the admin API key for Meilisearch. You will find it in the Meilisearch Console under “API Key”.
- `MEILISEARCH_ADMIN_API_KEY` - This is the admin API key for Meilisearch. You will find it in the Meilisearch Console under “API Key”.
- `MEILISEARCH_SEARCH_API_KEY` - This is the API Key for Meilisearch search operations. To get this, you need you create a new index from the Meilisearch Console. Once created you will find it under `Overview` as `Default Search API Key`


Expand All @@ -51,7 +51,7 @@ Here’s the keys you need:
![Keys](/images/blog/add-a-search-function-to-your-app/connect.png)

- `MEILISEARCH_INDEX_NAME` - Name of the Meilisearch index to which the documents will be synchronized. For e.g, in the above picture, the Index name is `Newindex`. You can also find it under `Settings` as `Index Name`.


## Preparing the Function

Expand Down Expand Up @@ -90,12 +90,12 @@ How can the *template* be extended ?
Some examples are:

1. **Real-time Data Exploration:** It can be used to provide real-time search capabilities for datasets and data streams, allowing users to explore and analyze data in real-time.
2. **Content Management Systems:** The function template can be integrated into content management systems (CMS) to facilitate efficient content retrieval for editors and site visitors.
2. **Content Management Systems:** The function template can be integrated into content management systems (CMS) to facilitate efficient content retrieval for editors and site visitors.

Be sure to check out the other available Function Templates. We’ve created multiple that could be of use in your projects. You can find the [templates GitHub repository here](https://github.com/appwrite/templates).

For more information about Appwrite and Appwrite Functions:

1. **[Appwrite Function Docs](https://appwrite.io/docs/functions)**: These documents provide more information on how to use Appwrite Functions.
1. **[Appwrite Function Docs](/docs/functions)**: These documents provide more information on how to use Appwrite Functions.
2. **[Functions Announcement](https://dev.to/appwrite/serverless-your-way-unleashing-appwrite-functions-true-potential-2l4f)**: Read the full announcement on Functions 1.4.
3. **[Appwrite Discord](https://discord.com/invite/appwrite)**: Connect with other developers and the Appwrite team for discussion, questions, and collaboration.
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ category: functions
featured: false
---

Appwrite Functions are user-defined functions that can start small and scale big, deploying automatically from source control. With the introduction of function templates, you can quickly add new integrations into your app without writing additional code or managing infrastructure. Function templates are pre-built Appwrite Functions that can be integrated into your Appwrite project with just a few clicks.
Appwrite Functions are user-defined functions that can start small and scale big, deploying automatically from source control. With the introduction of function templates, you can quickly add new integrations into your app without writing additional code or managing infrastructure. Function templates are pre-built Appwrite Functions that can be integrated into your Appwrite project with just a few clicks.

A URL shortener takes a long or complex URL and generates a shorter, more concise version. The primary purpose of a URL shortener function is to make links easier to share, manage, and remember.
For e.g https://dev.to/appwrite/introducing-appwrite-migrations-effortless-data-migration-from-your-platforms-5dhh to http://tinyurl.com/bd5usb3n
For e.g https://dev.to/appwrite/introducing-appwrite-migrations-effortless-data-migration-from-your-platforms-5dhh to http://tinyurl.com/bd5usb3n

In this blog, we’ll learn to build a URL shortener using Appwrite Functions template. The template benefits from the built-in scalability, reliability, and security of Appwrite Functions.

You can find the source code on our [templates GitHub repository](https://github.com/appwrite/templates/tree/main/node/url-shortener).

# Setting up the Template
To get started, you need to navigate to the functions page on the **[Appwrite](https://appwrite.io/cloud)** console. From there, we will select the **Templates** tab, search for and select the **URL Shortener** function template.
To get started, you need to navigate to the functions page on the **[Appwrite](https://cloud.appwrite.io)** console. From there, we will select the **Templates** tab, search for and select the **URL Shortener** function template.

![Function template](/images/blog/adding-url-shortener/functions.png)

Expand Down Expand Up @@ -55,6 +55,6 @@ Be sure to check out the other available Function Templates. We’ve created man

For more information about Appwrite and Appwrite Functions:

1. **[Appwrite Function Docs](https://appwrite.io/docs/functions)**: These documents provide more information on how to use Appwrite Functions.
1. **[Appwrite Function Docs](/docs/functions)**: These documents provide more information on how to use Appwrite Functions.
2. **[Functions Announcement](https://dev.to/appwrite/serverless-your-way-unleashing-appwrite-functions-true-potential-2l4f)**: Read the full announcement on Functions 1.4.
3. **[Appwrite Discord](https://discord.com/invite/appwrite)**: Connect with other developers and the Appwrite team for discussion, questions, and collaboration.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@ Here are some technical insights into how we enhance data security:

As always, with Appwrite, developers can continue creating with peace of mind. Your personal data will not be mistreated.

Appwrite is also [HIPAA](https://appwrite.io/docs/advanced/security/hipaa) and [SOC 2](https://appwrite.io/docs/advanced/security/soc2) compliant as of April 24th, 2024.
Appwrite is also [HIPAA](/docs/advanced/security/hipaa) and [SOC 2](/docs/advanced/security/soc2) compliant as of April 24th, 2024.

Further resources: [Documentation](https://appwrite.io/docs/advanced/security/gdpr), [Privacy policy](https://appwrite.io/privacy) , [Cookie policy](https://appwrite.io/cookies)
Further resources: [Documentation](/docs/advanced/security/gdpr), [Privacy policy](/privacy) , [Cookie policy](/cookies)
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ So what did we do to comply? We’ve set measures and controls to maintain secur
- Encryption of data transmitted between Appwrite and users using transport layer security (TLS) and HTTP strict Transport Security, ensuring confidentiality both at rest and during transmission.
- Access to environments containing customer data is strictly controlled, requiring authentication and authorization through multi-factor authentication (MFA).

Appwrite safeguards personal information to the same extent it protects its own, complying with relevant privacy laws and regulations in the jurisdictions where its services are offered.
Appwrite safeguards personal information to the same extent it protects its own, complying with relevant privacy laws and regulations in the jurisdictions where its services are offered.

Please note that while Appwrite Cloud serves as a HIPAA-compliant platform to handle data,
it is the responsibility of developers to ensure that their application is also compliant with HIPAA regulations.

Looking for a HIPAA compliant backend provider? Or looking to replace Firebase? Appwrite can be your solution. Take a look at our [documentation](https://appwrite.io/docs/advanced/security) to learn more about our security.
Looking for a HIPAA compliant backend provider? Or looking to replace Firebase? Appwrite can be your solution. Take a look at our [documentation](/docs/advanced/security) to learn more about our security.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: post
title: "Announcing Messaging: Push, Email and SMS directly from your Appwrite backend"
description:
description: Appwrite is excited to announce Messaging, a new product that simplifies user communication for developers. With Messaging, you can send emails, SMS, and push notifications through a unified API, all within your Appwrite project.
date: 2024-02-26
cover: /images/blog/messaging-announcement.png
timeToRead: 6
Expand Down
Loading
Loading