Skip to content

Commit b31e58b

Browse files
Merge branch 'main' into 1950-Search-bar-UI
2 parents f1fd33e + 9fe4c76 commit b31e58b

File tree

44 files changed

+498
-41
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+498
-41
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"@appwrite.io/console": "^0.6.4",
3636
"@appwrite.io/pink": "~0.26.0",
3737
"@appwrite.io/pink-icons": "~0.26.0",
38-
"@appwrite.io/repo": "github:appwrite/appwrite#1.7.x",
38+
"@appwrite.io/repo": "github:appwrite/appwrite#main",
3939
"@eslint/compat": "^1.2.7",
4040
"@eslint/js": "^9.21.0",
4141
"@fingerprintjs/fingerprintjs": "^4.5.1",

pnpm-lock.yaml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/lib/components/shared/dialog.svelte

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,20 @@
2222
const { url, title = 'YouTube video player', children, inlineVideo = true }: Props = $props();
2323
</script>
2424

25-
<div
26-
class="contents cursor-pointer"
27-
use:melt={inlineVideo ? $trigger : null}
28-
onclick={() => {
29-
if (!inlineVideo && browser && window) {
30-
window.open(url, '_blank');
31-
}
32-
}}
33-
>
34-
{@render children()}
35-
</div>
25+
{#if inlineVideo}
26+
<div class="contents cursor-pointer" use:melt={$trigger}>
27+
{@render children()}
28+
</div>
29+
{:else}
30+
<div
31+
class="contents cursor-pointer"
32+
on:click={() => {
33+
if (browser && window) window.open(url, '_blank');
34+
}}
35+
>
36+
{@render children()}
37+
</div>
38+
{/if}
3639

3740
{#if $open}
3841
<div class="fixed inset-0 z-1000 flex items-center justify-center">

src/lib/utils/references.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ export const Service = {
3232
Storage: 'storage',
3333
Teams: 'teams',
3434
Users: 'users',
35-
Sites: 'sites'
35+
Sites: 'sites',
36+
Tokens: 'tokens'
3637
} as const;
3738

3839
export type ServiceType = typeof Service;
@@ -145,7 +146,8 @@ export const serviceMap: Record<ServiceValue, string> = {
145146
[Service.Storage]: 'Storage',
146147
[Service.Teams]: 'Teams',
147148
[Service.Users]: 'Users',
148-
[Service.Sites]: 'Sites'
149+
[Service.Sites]: 'Sites',
150+
[Service.Tokens]: 'Tokens'
149151
};
150152

151153
export const preferredVersion = writable<Version | null>(

src/routes/(init)/init/(components)/day.svelte

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
content = [],
4141
announcementVideo = undefined,
4242
links = [],
43-
title,
43+
title: featureTitle,
4444
description,
4545
url,
4646
index
@@ -80,7 +80,7 @@
8080
class="border-offset relative z-10 col-span-5 flex h-full flex-col justify-center gap-4 border-x-2 border-none px-4 py-8 md:border-dashed md:p-8"
8181
>
8282
<h2 class="text-display font-aeonik-pro text-primary">
83-
{title}<span class="text-accent">_</span>
83+
{featureTitle}<span class="text-accent">_</span>
8484
</h2>
8585
<p class="text-secondary text-body max-w-sm font-medium">
8686
{description}
@@ -116,7 +116,7 @@
116116
'after:border-offset after:-mt-px after:block after:h-0.5 after:w-full after:border-t-2 after:border-dashed'
117117
)}
118118
>
119-
{#each content as { type, title, url, label }}
119+
{#each content as { type, title: contentTitle, url, label }}
120120
<a href={url} class="group block cursor-pointer">
121121
<div
122122
class={classNames(
@@ -129,7 +129,9 @@
129129
<span class="bg-smooth w-fit rounded-[4px] px-2 py-0.5"
130130
>{type}</span
131131
>
132-
<span class="font-aeonik-pro text-label">{title}</span>
132+
<span class="font-aeonik-pro text-label"
133+
>{contentTitle}</span
134+
>
133135
</div>
134136
<div class="flex items-center gap-2">
135137
{label ?? 'Read article'}

src/routes/(init)/init/+page.svelte

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -80,21 +80,21 @@
8080
]
8181
},
8282
{
83-
title: 'Hosting for Flutter Web',
83+
title: 'Flutter Web',
8484
release: addDays(otherFeaturesBase, 1),
8585
illustration: Flutter,
8686
description:
8787
'Appwrite and Flutter have always worked well together, and now, you can deploy your Flutter web apps directly from Appwrite Sites.',
88-
url: '/',
88+
url: '/blog/post/hosting-flutter-web',
8989
content: [
9090
{
9191
title: 'How to set up the Flutter starter template on Appwrite Sites',
92-
url: '/blog/post',
92+
url: '/blog/post/flutter-starter-sites',
9393
type: 'Blog'
9494
},
9595
{
9696
title: 'Building with Appwrite Sites template',
97-
url: '/blog/post/src/building-with-sites-templates',
97+
url: '/blog/post/building-with-sites-templates',
9898
type: 'Blog'
9999
},
100100
{
@@ -128,7 +128,7 @@
128128
]
129129
},
130130
{
131-
title: 'new image formats',
131+
title: 'Image formats',
132132
release: addDays(otherFeaturesBase, 3),
133133
illustration: Formats,
134134
description:
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
---
2+
layout: author
3+
slug: steven
4+
name: Steven Nguyen
5+
role: Customer Success lead
6+
bio: Always has an answer to your question.
7+
avatar: /images/avatars/steven.png
8+
twitter: https://x.com/g33kdev
9+
github: https://github.com/stnguyen90
10+
linkedin: https://www.linkedin.com/in/stnguyen90/
11+
---

src/routes/blog/post/announcing-appwrite-sites/+page.markdoc

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ featured: true
1111
callToAction: true
1212
---
1313

14-
You love using Appwrite to power your backend, but when its time to actually *ship* your website, youre bouncing between tools, platforms, and extra accounts. That ends today.
14+
You love using Appwrite to power your backend, but when it's time to actually *ship* your website, you're bouncing between tools, platforms, and extra accounts. That ends today.
1515

1616
Introducing **Appwrite Sites**.
1717

@@ -31,18 +31,18 @@ The best part: **Appwrite is a fully open-source platform to offer both frontend
3131

3232
Building Sites as part of the Appwrite ecosystem was a deliberate choice to deliver a seamless experience from crafting your backend to deploying your web apps and websites. To ensure your usage of the platform feels consistent and robust, we set out to match the high standards of other Appwrite products when developing Sites over the past year.
3333

34-
Weve introduced several critical features to elevate the hosting experience. Helping you scale efficiently, keep data secure, and deliver lightning-fast performance.
34+
We've introduced several critical features to elevate the hosting experience. Helping you scale efficiently, keep data secure, and deliver lightning-fast performance.
3535

36-
## Whats part of Sites?
36+
## What's part of Sites?
3737

3838
- **Static hosting**: Ideal for single-page applications (SPAs), landing pages, documentation sites, and any project that compiles down to static files.
3939
- **Server-side rendering (SSR)**: Full support for frameworks like Flutter, React, Next.js, Nuxt, SvelteKit, Astro, Remix, and more right out of the box.
40-
- **[Git integrations](docs/products/sites/deploy-from-git)**: Connect your GitHub repository to enable automatic deployments on every push.
40+
- **[Git integrations](/docs/products/sites/deploy-from-git)**: Connect your GitHub repository to enable automatic deployments on every push.
4141
- **Deployment previews**: Get a unique preview URL for each pull request—review, test, and merge with confidence.
4242
- **Global CDN**: Distribute your content worldwide with a powerful content delivery network to ensure low-latency access from anywhere.
4343
- **DDoS protection**: Built-in protection mechanisms to help safeguard your apps from denial-of-service attacks.
44-
- **[The Appwrite Network](docs/products/network)**: Take advantage of a growing number of cloud regions, Points of Presence (PoPs), and edge network capabilities, reducing latency and enhancing performance globally.
45-
- **[The Appwrite DNS](docs/products/network/dns):** Appwrite provides a dedicated DNS (Domain Name System) service through its `appwrite.zone` nameservers to help you manage domain records for your applications.
44+
- **[The Appwrite Network](/docs/products/network)**: Take advantage of a growing number of cloud regions, Points of Presence (PoPs), and edge network capabilities, reducing latency and enhancing performance globally.
45+
- **[The Appwrite DNS](/docs/products/network/dns):** Appwrite provides a dedicated DNS (Domain Name System) service through its `appwrite.zone` nameservers to help you manage domain records for your applications.
4646

4747
All this is managed from your Appwrite Console or CLI, and deployable in both [**Cloud**](https://cloud.appwrite.io/) and **self-hosted** environments.
4848

@@ -64,14 +64,14 @@ From polished landing pages to waitlist forms and simple promo sites, Sites temp
6464

6565
Getting started with Sites Templates takes just a few clicks:
6666

67-
1. In the Appwrite Console's sidebar, click **Sites**.
68-
2. Click on the **Create site** button.
69-
3. After clicking on **Connect Git repository**, select your repository.
67+
1. In the Appwrite Console's sidebar, click **Sites**.
68+
2. Click on the **Create site** button.
69+
3. After clicking on **Connect Git repository**, select your repository.
7070
4. After connecting to GitHub, (optionally) add a name and site ID.
7171
5. Verify that the correct framework is selected.
7272
6. Confirm the install command, build command, and output directory in the build settings. To learn more, visit your preferred [framework quick-start](/docs/products/sites/quick-start#framework-quick-starts).
7373
7. Add any environment variables required by the site.
74-
8. The site will be created, and a build will begin. Once the build is completed, you'll have created your first site. You can use your site's **domain** to access the deployment.
74+
8. The site will be created, and a build will begin. Once the build is completed, you'll have created your first site. You can use your site's **domain** to access the deployment.
7575

7676
We have added quick starts for popular frameworks to help you set up faster with your preferred framework, with more to come. As of today you can follow quick starts for [Flutter](/docs/products/sites/quick-start/flutter), [Nuxt](/docs/products/sites/quick-start/sveltekit), [Next.js](/docs/products/sites/quick-start/nextjs), Angular, [SvelteKit](/docs/products/sites/quick-start/sveltekit), [Remix](/docs/products/sites/quick-start/remix), [Astro](/docs/products/sites/quick-start/sveltekit), [Vue.js](/docs/products/sites/quick-start/sveltekit), [React](/docs/products/sites/quick-start/sveltekit), and [Vanilla.JS](/docs/products/sites/quick-start/sveltekit).
7777

@@ -85,13 +85,14 @@ Appwrite Sites is free to use until July 1st, 2025. We will inform you before in
8585

8686
# One platform to build, host, scale
8787

88-
Like many developer tools, we are here to make you more productive. By bringing hosting into Appwrite, you spend less time on setup and more time on what matters: building. Fewer moving parts means fewer things to break, and everything works seamlessly with your existing Appwrite services like Databases, Functions, Storage, and Auth. Its Appwrites goal to improve your time to production. We make you move faster with [Sites](/products/sites).
88+
Like many developer tools, we are here to make you more productive. By bringing hosting into Appwrite, you spend less time on setup and more time on what matters: building. Fewer moving parts means fewer things to break, and everything works seamlessly with your existing Appwrite services like Databases, Functions, Storage, and Auth. It's Appwrite's goal to improve your time to production. We make you move faster with [Sites](/products/sites).
8989

9090
Sites will be available on both **Appwrite Cloud** and **self-hosted** deployments.
9191

9292
Spin up your first site from the Console or [CLI](/docs/tooling/command-line/sites) and go live in minutes. No more stitching platforms together, no more waiting for deploys, just fast, integrated shipping.
9393

9494
# More resources
95+
9596
- [Appwrite Sites docs](/docs/producst/sites)
9697
- [Appwrite compared to Vercel](/blog/post/open-source-vercel-alternative)
9798
- [Appwrite Sites product tour](https://youtu.be/VtDe6hDw91k)
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
layout: post
3+
title: How to setup the Flutter starter template on Appwrite Sites
4+
description: Learn the process of deploying the Flutter starter template on Appwrite Sites.
5+
date: 2025-05-20
6+
cover: /images/blog/flutter-starter-sites/cover.png
7+
timeToRead: 5
8+
author: aditya-oberai
9+
category: tutorial
10+
featured: false
11+
callToAction: true
12+
---
13+
14+
Most web hosting platforms don't support Flutter Web out of the box, often forcing developers to jump through hoops just to get their apps online. This lack of native support can make deploying Flutter Web projects unnecessarily complex and time-consuming.
15+
16+
Appwrite Sites changes that by offering built-in support for Flutter Web, making it easy to host and scale your applications. Alongside Flutter, Appwrite also provides starter kits for popular frameworks like Next.js, React, Vue, Nuxt, Angular, and SvelteKit. In this blog, you'll learn how to set up the Flutter starter template and deploy it to [Appwrite Sites](/products/sites).
17+
18+
# Overview of the starter template
19+
20+
Flutter Web is a part of the Flutter framework that allows developers to build responsive, high-performance web applications using a single Dart codebase.
21+
22+
Appwrite's Flutter starter template includes:
23+
24+
- A clean, single-page UI
25+
- Integration with Appwrite's SDK
26+
- Pre-configured deployment settings for Appwrite Sites' Static rendering strategy
27+
28+
![Deployed app](/images/blog/flutter-starter-sites/deployed.png)
29+
30+
# Deploy the starter template on Appwrite
31+
32+
Firstly, you must head to Appwrite Cloud and [create an account](https://cloud.appwrite.io/console/register) if you haven't already (or [self-host Appwrite 1.7](https://appwrite.io/docs/advanced/self-hosting)). Next, create your first project, which will lead you to the project overview page.
33+
34+
![Add platform](/images/blog/flutter-starter-sites/add-platform.png)
35+
36+
Head to the **Sites** page from the left sidebar, click on the **Create site** button, and select the **Clone a template** option. This will take you to the Appwrite Sites templates listing, where you should search `Flutter starter` and click on the template.
37+
38+
![Starter template](/images/blog/flutter-starter-sites/template.png)
39+
40+
After selecting the template, you can choose to connect a GitHub repository now or at a later time. If you choose to connect a repository, ensure you select a production branch (leave the root directory as is). Then, review the preset environment variables, update the domain name if you want, and click on the **Deploy** button. You can watch the deployment logs as the site is built.
41+
42+
{% info title="Alternative method to deploy starter template" %}
43+
44+
As an alternative to the Appwrite console, you can create and deploy websites using the [Appwrite CLI](/docs/products/sites/deploy-manually#cli). Create your Flutter starter using the following shell command and configuration:
45+
46+
```bash
47+
appwrite init sites
48+
? What would you like to name your site? Flutter starter
49+
? What ID would you like to have for your site? unique()
50+
? What framework would you like to use? Flutter (flutter)
51+
? What specification would you like to use? 0.5 CPU, 512MB RAM
52+
```
53+
54+
You can then make any edits to the website and deploy it using the following command:
55+
56+
```bash
57+
appwrite push sites
58+
```
59+
60+
{% /info %}
61+
62+
# Test the starter template
63+
64+
After your site has been successfully deployed, Appwrite will show you a **Congratulations** page. You can then either choose to view the site by clicking on the **Visit site** button or view the site configuration (deployments, logs, domains, usage, and settings) by clicking on the **Go to dashboard** button.
65+
66+
![Congratulations](/images/blog/flutter-starter-sites/congrats.png)
67+
68+
# Next steps
69+
70+
And with that, the Flutter starter kit is deployed to Appwrite Sites. You can explore other templates or deploy any other websites you'd like.
71+
72+
For more information about Appwrite Sites:
73+
74+
- [Appwrite Sites product docs](/docs/products/sites)
75+
- [Quick start to deploy any Flutter Web app](/docs/products/sites/quick-start/flutter)
76+
- [Appwrite Discord server](/discord)

0 commit comments

Comments
 (0)