Skip to content

blog: add atharva as author & nextjs article#2312

Merged
adityaoberai merged 10 commits intoappwrite:mainfrom
atharvadeosthale:nextjs-article
Aug 28, 2025
Merged

blog: add atharva as author & nextjs article#2312
adityaoberai merged 10 commits intoappwrite:mainfrom
atharvadeosthale:nextjs-article

Conversation

@atharvadeosthale
Copy link
Member

@atharvadeosthale atharvadeosthale commented Aug 25, 2025

  • Adds Atharva as an author
  • Adds Next.js article

Summary by CodeRabbit

  • New Features
    • Added an author profile for Atharva Deosthale, including bio, avatar, and social links.
    • Published a new blog post: “Deploy a Next.js app to Appwrite Sites.” The guide covers building and testing, connecting a GitHub repo, configuring build settings and environment variables, deploying and monitoring logs, and next steps. Includes code snippets and screenshots for clarity.

@appwrite
Copy link

appwrite bot commented Aug 25, 2025

appwrite.io

Project ID: 684969cb000a2f6c0a02

Sites (1)
Site Status Logs Preview QR
 website
68496a17000f03d62013
Failed Failed Authorize Preview URL QR Code

Note

Appwrite has a Discord community with over 16 000 members.

@atharvadeosthale atharvadeosthale marked this pull request as draft August 25, 2025 10:35
@atharvadeosthale atharvadeosthale marked this pull request as ready for review August 26, 2025 16:58
Copy link
Member

@adityaoberai adityaoberai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly looks good, left some comments


- If you’re using a different branch for your intended production website, choose the specific branch.
- If you’re using a monorepo, Sites might not automatically detect your application. In such cases, manually provide the root directory for your Next.js app that contains the Next.js configuration file. For example, if you’re using Turborepo, your Next.js app might be located inside one of the folders in the `apps` folder, so your root directory should be something like `./apps/web`.
- Most users don’t need to change the **Build settings**, although if you want to run different commands for installation and builds, you can configure those in this section. If you don’t know anything about this, it’s worth skipping this section altogether.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's mention the expected defaults as subpoints

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 28, 2025

Walkthrough

Adds a new author profile page for Atharva Deosthale and a new blog post detailing deployment of a Next.js app to Appwrite Sites. Both are static Markdoc pages introducing content and metadata; no application logic or control flow changes.

Changes

Cohort / File(s) Summary
Author profile addition
src/routes/blog/author/atharva/+page.markdoc
Introduces an author page with front matter (layout: author) and metadata: name, slug, role, bio, avatar, and social links (twitter, github, linkedin).
New blog post
src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc
Adds a post with front matter (title, description, date, cover, timeToRead, author, category) and content on deploying Next.js to Appwrite Sites, including build steps, env vars, images, and a build command snippet.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

I thump my paws on fresh new prose,
An author hops in, a story grows.
Next.js sails to Appwrite skies,
Logs scroll by as carrots rise.
Two pages planted, content bright—
I nibble links and deploy by night. 🥕✨

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbit in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbit in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbit gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbit read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbit help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbit ignore or @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbit summary or @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbit or @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (1)
src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc (1)

5-5: Confirm publication date before merge.

Front matter date is 2025-08-28. If this should publish on Aug 27 as previously suggested, update accordingly; otherwise keep as-is for Aug 28. Be mindful of timezone when the site generates listings.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between c3d172d and e1c2425.

⛔ Files ignored due to path filters (5)
  • static/images/avatars/atharva.png is excluded by !**/*.png
  • static/images/blog/deploy-nextjs-app-to-appwrite-sites/connect-repo.png is excluded by !**/*.png
  • static/images/blog/deploy-nextjs-app-to-appwrite-sites/cover.png is excluded by !**/*.png
  • static/images/blog/deploy-nextjs-app-to-appwrite-sites/site-config.png is excluded by !**/*.png
  • static/images/blog/deploy-nextjs-app-to-appwrite-sites/site-deployed.png is excluded by !**/*.png
📒 Files selected for processing (4)
  • src/lib/layouts/Main.svelte (1 hunks)
  • src/routes/blog/author/atharva/+page.markdoc (1 hunks)
  • src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc (1 hunks)
  • static/scripts/zoominfo.js (2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: build
  • GitHub Check: tests
🔇 Additional comments (4)
static/scripts/zoominfo.js (2)

19-20: LGTM: fixes stray parenthesis in comma expression.

Syntactic cleanup only; no behavior change.


36-40: LGTM: balanced closing and load handler still correct.

Appending the script immediately if document.readyState === 'complete', else on load, remains intact.

src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc (2)

57-59: Defaults section added — looks good.

The explicit defaults for install/build/output improve clarity and address prior feedback.


61-62: Good call-out on domains.

Mentioning Appwrite Network subdomain first and custom domain later aligns with onboarding flow.

}

$: ($isHeaderHidden, updateSideNav());
$: $isHeaderHidden, updateSideNav();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

No behavior change; consider a clearer reactive effect.

Dropping the parentheses keeps the same semantics. For readability, consider an explicit effect that makes the dependency on $isHeaderHidden obvious.

-    $: $isHeaderHidden, updateSideNav();
+    // Run whenever $isHeaderHidden changes
+    $: {
+        void $isHeaderHidden;
+        updateSideNav();
+    }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
$: $isHeaderHidden, updateSideNav();
// Run whenever $isHeaderHidden changes
$: {
void $isHeaderHidden;
updateSideNav();
}
🤖 Prompt for AI Agents
In src/lib/layouts/Main.svelte around line 145, the current reactive statement
"$: $isHeaderHidden, updateSideNav();" is terse and unclear; change it to an
explicit reactive block that clearly declares the dependency, e.g. replace with
a block such as "$: { $isHeaderHidden; updateSideNav(); }" so the dependency on
$isHeaderHidden is obvious while preserving behavior.

Copy link
Member

@adityaoberai adityaoberai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a few final changes, otherwise the PR is good to go

atharvadeosthale and others added 4 commits August 28, 2025 18:07
….markdoc

Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
….markdoc

Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
….markdoc

Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
….markdoc

Co-authored-by: Aditya Oberai <adityaoberai1@gmail.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

♻️ Duplicate comments (3)
src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc (3)

16-16: Consistency: acronym expansions and hyphen usage.

Apply:

-Appwrite Sites is a frontend hosting service that can help you deploy your Next.js (or any web framework) app in minutes with full RSC (React Server Components) and SSR (server‑side rendering) functionality.
+Appwrite Sites is a frontend hosting service that can help you deploy your Next.js (or any web framework) app in minutes, with full RSC (React Server Components) and SSR (Server-Side Rendering) support.

If the site style guide prefers sentence case for expansions, flip “Server-Side Rendering” to “server-side rendering” everywhere for consistency.


56-60: Present defaults as an info note; keep bullets lean.

-- Most users don’t need to change the **Build settings**, although if you want to run different commands for installation and builds, you can configure those in this section. If you don’t know anything about this, it’s worth skipping this section altogether.
-    - The default build command for Next.js is `npm run build`.
-    - The default install command for Next.js is `npm install`.
-    - The default output directory for Next.js is `./.next`.
+{% info title="Default build settings for Next.js" %}
+- Build command: `npm run build`
+- Install command: `npm install`
+- Output directory: `./.next`
+{% /info %}

If product defaults differ from framework defaults, replace with the Appwrite Sites defaults.


61-61: Tone/clarity: domain guidance.

-- Configure an Appwrite Network subdomain to get started. You can add a custom domain or use a new Appwrite Network domain once your app is deployed.
+- Choose a domain: use an Appwrite Network subdomain now; add a custom domain later if needed.
📜 Review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between e1c2425 and 04cecfb.

📒 Files selected for processing (1)
  • src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: build
  • GitHub Check: tests
🔇 Additional comments (2)
src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc (2)

2-10: Frontmatter: verify metadata values before merge.

  • Confirm publish date 2025-08-28 is intended (time zone, scheduling).
  • Ensure author slug "atharva" matches the author page path/slug.
  • Validate category "tutorial" is a recognized category.
  • Check cover image exists at the referenced path.

1-80: Solid addition overall.

Clear steps, good screenshots, and helpful links. Once the minor edits above are addressed, this is good to ship.

Comment on lines +12 to +14
You just built your Next.js app with all the killer features you wanted. Now you want to put it out for the world to see. But you’re confused — “how do I do that?”. If you’re that person, this article is for you.

In this article, you will learn how to deploy your Next.js app completely free of cost. We will use Appwrite Sites to achieve that. Appwrite is an all-in-one open-source BaaS (backend as a service) that handles the backend part of your application so that you can focus on the app's core logic rather than unnecessary technical details.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Tighten the intro and fix BaaS capitalization.

Apply:

-You just built your Next.js app with all the killer features you wanted. Now you want to put it out for the world to see. But you’re confused — “how do I do that?”. If you’re that person, this article is for you.
-
-In this article, you will learn how to deploy your Next.js app completely free of cost. We will use Appwrite Sites to achieve that. Appwrite is an all-in-one open-source BaaS (backend as a service) that handles the backend part of your application so that you can focus on the app's core logic rather than unnecessary technical details. 
+You’ve built your Next.js app and want to share it with the world. Here’s how to deploy it for free on Appwrite Sites.
+
+Appwrite is an all-in-one, open-source Backend-as-a-Service (BaaS) that handles your backend so you can focus on core product logic.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
You just built your Next.js app with all the killer features you wanted. Now you want to put it out for the world to see. But you’re confused — “how do I do that?”. If you’re that person, this article is for you.
In this article, you will learn how to deploy your Next.js app completely free of cost. We will use Appwrite Sites to achieve that. Appwrite is an all-in-one open-source BaaS (backend as a service) that handles the backend part of your application so that you can focus on the app's core logic rather than unnecessary technical details.
You’ve built your Next.js app and want to share it with the world. Here’s how to deploy it for free on Appwrite Sites.
Appwrite is an all-in-one, open-source Backend-as-a-Service (BaaS) that handles your backend so you can focus on core product logic.
🤖 Prompt for AI Agents
In src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc around
lines 12-14, tighten the intro into two concise sentences and correct the BaaS
capitalization by referring to Appwrite as a "Backend-as-a-Service (BaaS)";
replace the current two-paragraph wording with a single short hook like "You
built your Next.js app — now let's deploy it." followed by a clear one-liner:
"This guide shows how to deploy your Next.js app for free using Appwrite Sites;
Appwrite is an open-source Backend-as-a-Service (BaaS) that handles your backend
so you can focus on app logic."

Comment on lines +20 to +21
Before you deploy your Next.js app, it’s essential to see if it builds successfully. Building is a process where Next.js bundles your app into files that can be run on a server and a browser, depending on your usage of SSR (server-side rendering).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Minor wording: clarify SSR sentence and unify hyphen.

-Building is a process where Next.js bundles your app into files that can be run on a server and a browser, depending on your usage of SSR (server-side rendering).
+Building bundles your app into files that run on the server and the browser, depending on whether you use SSR (Server-Side Rendering).
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Before you deploy your Next.js app, it’s essential to see if it builds successfully. Building is a process where Next.js bundles your app into files that can be run on a server and a browser, depending on your usage of SSR (server-side rendering).
Before you deploy your Next.js app, it’s essential to see if it builds successfully. Building bundles your app into files that run on the server and the browser, depending on whether you use SSR (Server-Side Rendering).
🤖 Prompt for AI Agents
In src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc around
lines 20 to 21, the sentence about SSR is unclear and the hyphenation is
inconsistent; reword the sentence to explicitly say "server-side rendering
(SSR)" and ensure hyphenation is consistent (use "server-side rendering" with
the hyphen and expand SSR on first use), e.g. replace the current clause with a
clearer one like "depending on whether you use server-side rendering (SSR) or
client-side rendering," so the meaning and hyphenation are unified.


![Connecting your GitHub repository to Appwrite Sites](/images/blog/deploy-nextjs-app-to-appwrite-sites/connect-repo.png)

Click **Connect** against the desired GitHub repository. The Next.js logo should be the icon of any valid Next.js app.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Avoid overpromising framework icon detection.

-Click **Connect** against the desired GitHub repository. The Next.js logo should be the icon of any valid Next.js app.
+Click **Connect** for the desired repository. If detected, a Next.js logo appears for Next.js apps.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Click **Connect** against the desired GitHub repository. The Next.js logo should be the icon of any valid Next.js app.
Click **Connect** for the desired repository. If detected, a Next.js logo appears for Next.js apps.
🤖 Prompt for AI Agents
In src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc around
line 46, the sentence "Click **Connect** against the desired GitHub repository.
The Next.js logo should be the icon of any valid Next.js app." overpromises
automatic framework icon detection; reword to a neutral, accurate statement such
as "Click **Connect** for the desired GitHub repository; if Appwrite detects a
Next.js project the repository icon may show the Next.js logo," or "Click
**Connect** for the desired GitHub repository. The repository icon may show the
Next.js logo if Appwrite recognizes a Next.js app." Replace the original line
with one of these neutral alternatives.

Comment on lines +63 to +65
{% info title="Note on environment variables" %}
In Next.js, public environment variables start with `NEXT_PUBLIC_`. These environment variables are accessible in the browser environment, so don’t store your sensitive API keys in a variable that starts with that prefix.
{% /info %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick (assertive)

Strengthen env var guidance: server-only secrets.

 {% info title="Note on environment variables" %}
 In Next.js, public environment variables start with `NEXT_PUBLIC_`. These environment variables are accessible in the browser environment, so don’t store your sensitive API keys in a variable that starts with that prefix.
+Server-only secrets must not be prefixed with `NEXT_PUBLIC_` and are available only in server code (API routes, Route Handlers, Server Components, or `getServerSideProps`).
 {% /info %}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{% info title="Note on environment variables" %}
In Next.js, public environment variables start with `NEXT_PUBLIC_`. These environment variables are accessible in the browser environment, so don’t store your sensitive API keys in a variable that starts with that prefix.
{% /info %}
{% info title="Note on environment variables" %}
In Next.js, public environment variables start with `NEXT_PUBLIC_`. These environment variables are accessible in the browser environment, so don’t store your sensitive API keys in a variable that starts with that prefix.
Server-only secrets must not be prefixed with `NEXT_PUBLIC_` and are available only in server code (API routes, Route Handlers, Server Components, or `getServerSideProps`).
{% /info %}
🤖 Prompt for AI Agents
In src/routes/blog/post/deploy-nextjs-app-to-appwrite-sites/+page.markdoc around
lines 63 to 65, the current note only warns about NEXT_PUBLIC_ prefixed
variables but doesn't instruct how to store and use server-only secrets; update
the guidance to explicitly instruct readers to never prefix secrets with
NEXT_PUBLIC_, store them in server-only environment files (e.g., .env.local or
platform secret manager), access them only from server-side code (API routes,
server components, getServerSideProps) or via Appwrite server SDKs/functions,
and mention rotating/limiting scope for long-lived keys.

@adityaoberai adityaoberai merged commit 2aa4c61 into appwrite:main Aug 28, 2025
3 of 5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants