Skip to content

Commit

Permalink
Merge pull request #1008 from appwrite/fix-relative-links
Browse files Browse the repository at this point in the history
fix: relative links treated as external
  • Loading branch information
TorstenDittmann authored Jun 4, 2024
2 parents 46fb96d + 1e3c886 commit 85b8c9c
Show file tree
Hide file tree
Showing 41 changed files with 241 additions and 241 deletions.
32 changes: 16 additions & 16 deletions src/routes/blog/post/ai-crystal-ball/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ To create an OpenAI API key, we must first create an account on the [OpenAI pla
![OpenAI API Keys](/images/blog/ai-crystal-ball/openai.png)

> Note: To use the GPT-4 API, your account must be upgraded to the Usage tier 1. To learn more, visit their [Usage tiers documentation](https://platform.openai.com/docs/guides/rate-limits/usage-tiers?context=tier-one).
>
>

## GitHub

Expand Down Expand Up @@ -99,7 +99,7 @@ Visit the collection settings, enable **Document security,** and set the followi
To build this app, we used SvelteKit, a framework to build web applications using JavaScript. There are some prerequisites, however, that must be completed before building out the features themselves.

> Note: The code snippets will focus only on the application logic. All CSS or styling-related information as well as any other miscellaneous features will be accessible in the final project repository at the end of the blog.
>
>

## Prerequisites

Expand Down Expand Up @@ -172,8 +172,8 @@ const createUser = () => {
store.set(null);
return false;
}
}
}

init();

function login() {
Expand Down Expand Up @@ -322,7 +322,7 @@ We will be calling these functions for our main application page in the file `./

async function getTopFiveLanguages(username, token) {
let languageUsage = {};

const repositories = await github.getRepos(username, token);
loadingMessage = `Checking 30 most-recently created repos...`;
for (let repo of repositories) {
Expand All @@ -349,12 +349,12 @@ We will be calling these functions for our main application page in the file `./
async function initCrystalBall(userId) {
// Check if GitHub data is already stored in Appwrite DB or not
userData = await db.getUserData(userId);

if(userData === false){
// Get GitHub token from Appwrite session
const session = await user.getSession();
const githubToken = session.providerAccessToken;

// Get GitHub user details
const githubUser = await github.getUser(githubToken);
const githubUsername = githubUser.login;
Expand Down Expand Up @@ -396,7 +396,7 @@ We will be calling these functions for our main application page in the file `./
<button id="ballClick" on:click={getDestiny}>Tap here and reveal your destiny!</button>
{:else if destinyLoading === 'loading'}
<img src={crystalball} alt="Crystal Ball">
<button on:click={getDestiny}>Reading your future...</button>
<button on:click={getDestiny}>Reading your future...</button>
{:else if destinyLoading === 'complete'}
<div class="destiny">
<div class="destinyMessage">
Expand All @@ -405,7 +405,7 @@ We will be calling these functions for our main application page in the file `./
<p>{destiny}</p>
</div>
</div>
<div class="destinyButtons">
<div class="destinyButtons">
<button class="copyButton" on:click={getLink}>Get Link to Destiny</button>
<button class="resetButton" on:click={resetDestiny}>Want a new destiny?</button>
</div>
Expand Down Expand Up @@ -434,7 +434,7 @@ export async function POST({ request }) {
});

const userData = requestBody.userData;

const prompt = `You have the following data on a developer from their GitHub account:\n\nGitHub username: ${userData.username}\nFollowers: ${userData.followers}\nFollowing: ${userData.following}\nTop 5 languages:\n${userData.languages.join(',')}\n\nBased on this data, create a humourous, realistic prediction to lightly roast the individual about what they'll be doing in 5 years from now. Do not explicitly include their GitHub data in the final message. Only use gender-neutral pronouns.`;
const response = await openai.chat.completions.create({
model: 'gpt-4',
Expand Down Expand Up @@ -514,7 +514,7 @@ export const db = {**
}
)
},

getDestiny: async(documentId) => {
try{
return await databases.getDocument(
Expand Down Expand Up @@ -548,7 +548,7 @@ export const csr = false;

export async function load({ params }) {
let destiny = await db.getDestiny(params.slug);

return {
destiny
};
Expand All @@ -568,7 +568,7 @@ We will render our page using the pre-fetched destiny here:

function discoverDestiny() {
window.open(`https://${window.location.hostname}`, '_self');
}
}
</script>

<div class="mainContainer">
Expand All @@ -592,16 +592,16 @@ Lastly, we need to add a function in `./src/routes/app/+page.svelte` to store th
async function getLink() {
let destinyToSave = await db.addDestiny(userData.username, destiny);
let url = `https://${window.location.hostname}/destiny/${destinyToSave.$id}`;
window.open(url, '_blank');
window.open(url, '_blank');
}
```

# Next steps

And with that, our AI Crystal Ball project is ready! So far, since launching this application, over **375 users** have signed up and created their destinies.
And with that, our AI Crystal Ball project is ready! So far, since launching this application, over **375 users** have signed up and created their destinies.

The web app is still live and can be tried at the following link: [aicrystalball.oberai.dev](https://aicrystalball.oberai.dev/)

You can find the application’s complete source code at this [GitHub Repo](https://github.com/adityaoberai/AI-Crystal-Ball/).

[Join us on Discord](http://appwrite.io/discord) to be the first to get updates and to be part of a vibrant community!
[Join us on Discord](https://appwrite.io/discord) to be the first to get updates and to be part of a vibrant community!
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,13 @@ You can send messages immediately or schedule them for future delivery. The Appw

To get started with messaging, you connect a provider, add topics and targets, and send your first message today for your project.

We will be adding more adopters over time and are open to contributions. Visit our [community page](https://appwrite.io/community) to learn more about contributing or add your issues directly to [GitHub](https://github.com/appwrite/appwrite/issues).
We will be adding more adopters over time and are open to contributions. Visit our [community page](/community) to learn more about contributing or add your issues directly to [GitHub](https://github.com/appwrite/appwrite/issues).

Visit our documentation to learn more about Messaging, join us on Discord to be part of the discussion, view our blog and YouTube channel, or visit our GitHub repository to see our open-source code.

- [Docs](http://appwrite.io/docs/products/messaging)
- [Docs](/docs/products/messaging)
- [Discord](https://appwrite.io/discord)
- [Blog](https://appwrite.io/blog)
- [Blog](/blog)
- [YouTube](https://www.youtube.com/channel/UCtBJ1v69gm8NgbCju_03Fiw)
- [GitHub](https://github.com/appwrite/appwrite)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Let's examine the integrations, Function templates, and what's still to come.

## AI use cases and documentation

To make your life easier, we have added technical guides to our documentation covering [computer vision](https://appwrite.io/blog/post/state-of-computer-vision), [natural language processing](https://appwrite.io/blog/post/state-of-natural-language-processing), and [audio processing](https://appwrite.io/blog/post/state-of-audio-processing). These advanced tutorials explain how to use [AI and Appwrite](https://appwrite.io/docs/products/ai) in your projects.
To make your life easier, we have added technical guides to our documentation covering [computer vision](https://appwrite.io/blog/post/state-of-computer-vision), [natural language processing](https://appwrite.io/blog/post/state-of-natural-language-processing), and [audio processing](https://appwrite.io/blog/post/state-of-audio-processing). These advanced tutorials explain how to use [AI and Appwrite](https://appwrite.io/docs/products/ai) in your projects.

![AI docs](/images/blog/ai-docs.png)

Expand All @@ -40,32 +40,32 @@ We've also added support for many AI tools so you can integrate them into your p

## AI powered Function templates

Function templates are pre-built Appwrite [Function](https://appwrite.io/docs/products/functions) that can be integrated into your Appwrite project with just a few clicks. With templates, you can easily incorporate new features and integrations into your app without writing additional code or managing infrastructure.
Function templates are pre-built Appwrite [Function](https://appwrite.io/docs/products/functions) that can be integrated into your Appwrite project with just a few clicks. With templates, you can easily incorporate new features and integrations into your app without writing additional code or managing infrastructure.

We have templates for your favorite AI tools, like OpenAI, LangChain, HuggingFace, and many more, covering many use cases, such as building an [intelligent chatbot](https://appwrite.io/blog/post/function-template-prompt-chatgpt) using OpenAI.

Find the full overview on your console under the `Templates` tab in `Fuctions`. Filter function templates by the `AI` use case and select the AI function template that you need.

![Appwrite console with AI template functions](/images/blog/ai-function-templates.png)

You can also find the full list of templates on [GitHub](https://github.com/appwrite/templates) and see what's to come.
You can also find the full list of templates on [GitHub](https://github.com/appwrite/templates) and see what's to come.

## Building more AI features

Over the coming months, we will roll out more AI features to make building AI products smoother and allow more flexibility.

### Vector database

Another advanced AI use case in the field of Natural Language Processing is the ability to use vector databases to store and process embeddings.
Another advanced AI use case in the field of Natural Language Processing is the ability to use vector databases to store and process embeddings.

> Embeddings are numerical representations of words, sentences etc., and vector databases are optimized to store and perform similarity searches on the embeddings.

Adding a vector database will be another important milestone for making Appwrite even more AI compatible.

### AI marketplace

We will add an AI marketplace to encourage more open source collaboration on AI models and improve discoverability. The marketplace will allow you to build and share popular open-source and custom models. You can also host and sell your own custom models on the marketplace.
We will add an AI marketplace to encourage more open source collaboration on AI models and improve discoverability. The marketplace will allow you to build and share popular open-source and custom models. You can also host and sell your own custom models on the marketplace.

## Building the future

The future of Appwrite is exciting, and we look forward to continuing to build exciting new features. Join us on [Discord](http://appwrite.io/discord) to participate in the discussion and have fun. For Appwrite and AI-powered projects, visit [builtwith.appwrite.io](https://apwr.dev/yAtAG8j).
The future of Appwrite is exciting, and we look forward to continuing to build exciting new features. Join us on [Discord](https://appwrite.io/discord) to participate in the discussion and have fun. For Appwrite and AI-powered projects, visit [builtwith.appwrite.io](https://apwr.dev/yAtAG8j).
14 changes: 7 additions & 7 deletions src/routes/blog/post/announcing-appwrite-pro/+page.markdoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
layout: post
title: "Announcing: Appwrite Pro"
description: We’re happy to introduce Appwrite Pro. After announcing our pricing plans for Appwrite Cloud in August, we have reached another milestone as we roll out billing and welcome our newest addition to Appwrite Cloud. A new product offering that allows you to build with more confidence.
description: We’re happy to introduce Appwrite Pro. After announcing our pricing plans for Appwrite Cloud in August, we have reached another milestone as we roll out billing and welcome our newest addition to Appwrite Cloud. A new product offering that allows you to build with more confidence.
date: 2023-12-20
cover: /images/blog/announcing-appwrite-pro/header.png
timeToRead: 5
Expand All @@ -10,7 +10,7 @@ category: cloud
featured: false
---

After [announcing our pricing plans](https://appwrite.io/blog/post/announcing-pricing) for Appwrite Cloud in August, we have reached another milestone as we roll out billing and welcome our newest addition to Appwrite Cloud, Appwrite Pro. A new product offering that allows you to build with more confidence.
After [announcing our pricing plans](https://appwrite.io/blog/post/announcing-pricing) for Appwrite Cloud in August, we have reached another milestone as we roll out billing and welcome our newest addition to Appwrite Cloud, Appwrite Pro. A new product offering that allows you to build with more confidence.

While Appwrite Cloud is still in beta, Appwrite Pro is a new chapter we write together. Pro will help us add more features and capabilities to Appwrite, making app development more accessible and enjoyable for developers like you.

Expand Down Expand Up @@ -68,17 +68,17 @@ With 300GB bandwidth and 200K monthly active users in the Pro plan, we ensure yo

## Databases, Buckets & Storage

Another essential addition to your projects is having an unlimited number of databases, allowing you to tailor and optimize your data management. You can manage different data types and patterns, separate concerns, have stricter data governance and security and optimize performance. All are very necessary for more complex and demanding software applications.
Another essential addition to your projects is having an unlimited number of databases, allowing you to tailor and optimize your data management. You can manage different data types and patterns, separate concerns, have stricter data governance and security and optimize performance. All are very necessary for more complex and demanding software applications.

Again, you’re allowed unlimited buckets. This provides several benefits, including improved organization, scalability, modularity, data redundancy, storage cost management, and data governance. With a starting point of 150GB storage, you can grow your projects instantly without reaching high costs, allowing you to grow in production at a low cost.
Again, you’re allowed unlimited buckets. This provides several benefits, including improved organization, scalability, modularity, data redundancy, storage cost management, and data governance. With a starting point of 150GB storage, you can grow your projects instantly without reaching high costs, allowing you to grow in production at a low cost.

## Functions & Executions

Having unlimited functions is a must-have for many, as it is the holy grail for building customized business logic to extend Appwrite’s capabilities. With unlimited functions and 3.5M executions, most projects won’t exceed these limits anytime soon. You can run many executions like scheduled tasks, batch processing jobs, webhooks, and some IoT use cases with this resource.

## Customization

For a production product, you need more control of your brand, as well as the flexibility to add to your plan as it evolves. Within the Pro plan, it is possible to remove Appwrite branding from emails, have custom SMTP, and get resource add-ons to fit your needs.
For a production product, you need more control of your brand, as well as the flexibility to add to your plan as it evolves. Within the Pro plan, it is possible to remove Appwrite branding from emails, have custom SMTP, and get resource add-ons to fit your needs.

## Premium support

Expand Down Expand Up @@ -110,7 +110,7 @@ We appreciate the support and feedback from early Cloud adopters. These options

Open-source software forms the foundation of modern software technologies. As lovers and builders of open-source software, we understand and appreciate the difficulty of building in the open. We’re fortunate to have the opportunity to build open-source software sustainably, and we can’t wait to give back.

Like our previous initiatives, such as the OSS Fund, Appwrite Cloud will also support open-source developers. OSS maintainers can use Appwrite to build and maintain their projects on the Appwrite Pro plan for free. Please reach out on our [contact page](https://apwr.dev/OSSplan) to enquire about this plan. As always, Appwrite also remains open-sourced and free to [self-host](https://appwrite.io/docs/advanced/self-hosting).
Like our previous initiatives, such as the OSS Fund, Appwrite Cloud will also support open-source developers. OSS maintainers can use Appwrite to build and maintain their projects on the Appwrite Pro plan for free. Please reach out on our [contact page](https://apwr.dev/OSSplan) to enquire about this plan. As always, Appwrite also remains open-sourced and free to [self-host](https://appwrite.io/docs/advanced/self-hosting).

Appwrite Pro is just the start. We will continue developing our product offering to match your growing needs and capabilities and are excited to see your projects succeed with Appwrite Cloud. While you benefit from everything Appwrite Pro has to offer, you also become advocates in our mission to make software development accessible and enjoyable for all.

Expand All @@ -126,4 +126,4 @@ In case you need help upgrading, transferring your projects, or have billing and

- [FAQ on pricing page](https://apwr.dev/pricingFAQ)
- [Project migration](https://appwrite.io/docs/advanced/migrations/cloud)
- [Discord support](http://appwrite.io/discord)
- [Discord support](https://appwrite.io/discord)
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ Join a growing community of developers and founders who use Appwrite to build th

To join the program, you must be VC-backed or have a $500k ARR, and your company has to be established within the last decade.

Visit our dedicated [startups program page](https://appwrite.io/startups) to learn more and apply. If you have questions, please [reach out to us](https://appwrite.io/contact-us).
Visit our dedicated [startups program page](/startups) to learn more and apply. If you have questions, please [reach out to us](/contact-us).

## Resources

Learn more about Appwrite in our [documentation](https://appwrite.io/docs). Check out our [blog](https://appwrite.io/blog) for the latest Appwrite news and content, and engage with the Appwrite team and community on [Discord](https://appwrite.io/discord).
Learn more about Appwrite in our [documentation](/docs). Check out our [blog](/blog) for the latest Appwrite news and content, and engage with the Appwrite team and community on [Discord](https://appwrite.io/discord).
Loading

0 comments on commit 85b8c9c

Please sign in to comment.