Skip to content
Merged
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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions src/routes/blog/post/10-best-mcp-server-client/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,19 @@ timeToRead: 10
author: veeresh-mulge
unlisted: true
category: product
faqs:
- question: "What is the Model Context Protocol (MCP)?"
answer: "MCP is an open protocol that gives AI assistants a shared language for connecting to external tools, APIs, and data sources. Instead of building one-off integrations for every service, you expose capabilities through an MCP server and any compatible client (like Cursor, Claude Desktop, or VS Code) can use them. Read more in the [what is MCP](/blog/post/what-is-mcp) post."
- question: "What is the difference between an MCP server and an MCP client?"
answer: "An MCP server exposes capabilities (tools, resources, data sources) for AI to consume, while an MCP client is the interface the user interacts with, such as an IDE or chat app. The client connects to one or more servers and routes the AI's tool calls to them. You almost always pick the client first, then attach the servers you need."
- question: "How do I use the Appwrite MCP server?"
answer: "The [Appwrite MCP server](/docs/tooling/mcp/api) exposes your Appwrite project to AI clients so they can create users, manage databases, upload files, and trigger Functions through prompts. You install it in your MCP-compatible client (Cursor, Claude Desktop, VS Code) and authenticate with an API key scoped to the actions you want the AI to perform."
- question: "Are MCP servers safe to use with production projects?"
answer: "MCP servers are as safe as the credentials you give them. Use API keys with the minimum scopes needed, prefer staging or dev projects for exploratory work, and audit what tools each server exposes before connecting it. For Appwrite, scope keys to specific products (databases, functions, etc.) instead of using a full-access key."
- question: "Can I build my own MCP server?"
answer: "Yes. The MCP spec is open and there are SDKs in TypeScript, Python, and other languages. You can wrap any internal API, database, or service so your AI tools can call it. The Appwrite, GitHub, and Stripe MCP servers are all good reference implementations to study."
- question: "Do I need a separate MCP server for every tool I use?"
answer: "Yes, each external service typically ships its own MCP server, but a single MCP client can connect to many servers at once. So your IDE can talk to Appwrite, GitHub, Sentry, and Stripe simultaneously through one assistant, with each server handling its own domain."
---
Imagine opening your IDE and asking, “Why did my last deployment fail?” and your assistant instantly pulls details from Vercel, checks Sentry for recent errors, and reviews your last commit on GitHub, all without you leaving your editor.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@ author: ebenezer-don
category: tutorial
featured: false
callToAction: true
faqs:
- question: "What is the difference between git switch and git checkout?"
answer: "`git switch` is a newer command focused only on branch operations (switching and creating branches), while `git checkout` is older and overloaded with branch switching, file restoration, and commit checkout. Use `git switch` for branches and `git restore` for files. It removes a whole class of accidental mistakes."
- question: "When should I use git restore instead of git reset?"
answer: "Use `git restore` when you want to discard changes to specific files in the working directory or unstage them, without touching your branch state. Use `git reset` when you actually need to move HEAD or rewrite history. `git restore` is safer because it cannot accidentally move your branch pointer."
- question: "What does git maintenance do?"
answer: "`git maintenance` schedules background tasks like garbage collection, repacking, and commit-graph updates that keep large repos fast. Running `git maintenance start` enables it for the current repo so you do not need to remember to run `git gc` manually. It is especially useful on long-lived monorepos."
- question: "Should I use git sparse-checkout on a monorepo?"
answer: "Yes, if you only work on a subset of the repo, sparse-checkout drastically reduces the files on disk and the time `git status` takes. Run `git sparse-checkout init` and then `set` the paths you care about. Combine it with partial clone (`--filter=blob:none`) for even bigger gains."
- question: "Do I still need GitHub if I use Git locally?"
answer: "Git itself is local and works without any remote, but you need a hosting service like GitHub, GitLab, or Bitbucket to collaborate with others or back up history off your machine. Many teams pair Git with a code host plus CI provider, and some self-host their own remotes for privacy."
- question: "How can I automate workflows triggered by Git events?"
answer: "Git itself supports hooks (pre-commit, post-receive, etc.), but for cloud workflows you typically use webhooks from your Git host. With Appwrite, you can deploy [Appwrite Functions](/docs/products/functions) that run on a Git push by connecting a repo. The function redeploys automatically on every commit to the configured branch."
---

If you've worked with Git long enough, you've probably hit some common frustrations like operations getting slower as repositories grow, accidentally overwriting changes when switching branches, or struggling with massive monorepos.
Expand Down
13 changes: 13 additions & 0 deletions src/routes/blog/post/15-git-cli-tips/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@ author: ebenezer-don
category: tutorial
featured: false
callToAction: true
faqs:
- question: "Is it worth learning the Git CLI if I already use a Git GUI?"
answer: "Yes. GUIs are fine for everyday commits, but the moment something goes wrong (merge conflicts, detached HEAD, lost commits), the CLI is where the answers live. Most online help, scripts, and CI configs assume CLI knowledge, so learning the basics pays off quickly."
- question: "What is the difference between git add and git commit?"
answer: "`git add` stages changes (tells Git which modifications to include in the next commit), while `git commit` actually records the staged snapshot to your local history. Staging gives you the chance to group related changes together and exclude work in progress. You can also stage parts of a file with `git add -p`."
- question: "How do I undo my last commit without losing the changes?"
answer: "Run `git reset --soft HEAD~1`. That moves the branch pointer back one commit but keeps all your changes staged so you can re-commit them. Use `--mixed` (the default) to unstage too, or `--hard` to discard the changes entirely (only when you are sure)."
- question: "What does git stash do?"
answer: "`git stash` saves your uncommitted changes onto a hidden stack and reverts your working directory to a clean state. You can then switch branches, pull, or rebase, and reapply your work later with `git stash pop`. It is handy when you need to quickly jump to another task without committing half-finished work."
- question: "How do git fetch and git pull differ?"
answer: "`git fetch` downloads new commits from the remote but does not change your working branch, so you can inspect them before merging. `git pull` is `git fetch` plus an immediate merge (or rebase, with `--rebase`) into your current branch. Fetch is safer when you are not sure what changed upstream."
- question: "Can I use Git to deploy Appwrite Functions?"
answer: "Yes. [Appwrite Functions](/docs/products/functions) support Git integration so a push to a configured branch triggers a new deployment automatically. You connect a GitHub repo to your function, choose a branch and root directory, and every commit there builds and ships a new version."
---

While the command line interface can seem intimidating on the surface, it's actually a very useful tool that gives you control over your code in ways that GUIs often don't. If you can get comfortable with even a few git commands, you'll find yourself being more productive.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,19 @@ timeToRead: 8
author: aditya-oberai
category: product
featured: false
faqs:
- question: "Which Go version does the Appwrite Functions runtime support?"
answer: "Appwrite ships a Go runtime starting from version 1.6, with `go-1.23` available as a runtime identifier. You enable it by adding `go-1.23` to your `_APP_FUNCTIONS_RUNTIMES` environment variable when self-hosting, or simply selecting it from the dropdown on Appwrite Cloud."
- question: "What kinds of things can I build with the Go runtime?"
answer: "Anything you would build with a serverless function: REST APIs, webhook handlers, scheduled jobs, AI integrations, and event-driven workflows that react to user signups, database writes, or file uploads. Go is particularly good when you need low cold-start latency or high requests-per-second per memory unit."
- question: "How does the Go runtime compare to Node.js or Python in Appwrite Functions?"
answer: "In Appwrite's internal benchmarks, the Go runtime had up to 3x faster cold starts and roughly 5x lower memory usage than several interpreted runtimes including Node.js, Deno, Ruby, and Python. Build times can be slower because Go is compiled, but the runtime performance gains usually pay off for production workloads."
- question: "Can I trigger Go Appwrite Functions from events?"
answer: "Yes. Like every Appwrite Function, a Go function can be triggered by HTTP requests, CRON schedules, or events emitted by Appwrite products (user creation, document changes, file uploads, etc.). The event payload is delivered to your handler so you can route on it."
- question: "How do I deploy a Go Appwrite Function via CI/CD?"
answer: "Connect your GitHub repository to your function in the Appwrite console and pick a branch. Every push to that branch triggers a new build and deployment automatically. You can also deploy from the Appwrite CLI by running `appwrite push functions` from your local project."
- question: "Can I develop Appwrite Go functions locally before deploying?"
answer: "Yes, the Appwrite CLI supports [local development](/blog/post/announcing-local-development) for Functions, including the Go runtime. There is also a published Go module with the types you need for the runtime context, so your editor gets full autocomplete and you can iterate without redeploying."
---
In the last few years, Golang (or Go) has grown to become one of the most popular programming languages for developers building cloud-native applications. With Appwrite 1.6, we have introduced a new runtime to let developers build Appwrite Functions with Go.

Expand Down
13 changes: 13 additions & 0 deletions src/routes/blog/post/30-dev-tools-for-agencies/+page.markdoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@ author: veeresh-mulge
callToAction: true
unlisted: true
category: tutorial
faqs:
- question: "What tools should a small dev agency invest in first?"
answer: "Start with a code editor (VS Code or Cursor), a version control host (GitHub or GitLab), a project management tool (Linear or Notion), and a backend platform that covers auth, database, and storage so you do not glue together three vendors. [Appwrite](/docs/products/auth) fills the backend slot for most agency projects."
- question: "Should agencies build a custom backend or use a backend-as-a-service?"
answer: "For most client work, a BaaS like Appwrite saves weeks of plumbing on every project. You get auth, databases, storage, functions, and messaging out of the box, and you can self-host or use Appwrite Cloud depending on the client's compliance needs. Reserve custom backends for cases where you have genuinely unique architectural requirements."
- question: "How do dev tools affect project margins?"
answer: "Tooling choices compound: the right editor, BaaS, and CI setup can shave days off each project, which directly improves agency margins. Standardizing the stack across projects also reduces onboarding time for new developers, which is one of the biggest hidden costs in agency work."
- question: "What is the difference between an IDE and a code editor?"
answer: "An IDE (like IntelliJ or Visual Studio) bundles compilers, debuggers, refactoring tools, and project templates for a specific language stack. A code editor (like VS Code or Sublime) is more lightweight and gets those features through extensions. Editors are now powerful enough for most workflows, which is why VS Code dominates."
- question: "How can agencies handle multiple client projects without context switching?"
answer: "Use project-isolated environments: separate Appwrite projects per client, named workspaces in your editor, and dedicated channels in your chat tool. Tools like Linear and Notion help keep each client's roadmap distinct. The more isolation you build into your tooling, the less mental overhead per switch."
- question: "Which tools help with collaboration on remote teams?"
answer: "Real-time collaboration tools (Slack, Discord, Loom for async video), real-time editors (Zed, VS Code Live Share), and shared infrastructure (GitHub, Appwrite Cloud) are the core. For design and product, Figma and Notion cover most needs. Pick one of each category and standardize so the team is not constantly relearning tools."
---

The way software is built today is drastically different from even five years ago. Teams are more distributed. Deadlines are tighter. And expectations, be it from clients, product leads, or users, are higher than ever. Whether you're running a fast-paced development agency, juggling multiple client projects, or leading an internal team building and maintaining a product, the tools you use directly impact your delivery speed, code quality, and team effectiveness.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,19 @@ timeToRead: 5
author: aishwari
category: ai
featured: false
faqs:
- question: "What is the difference between a Claude prompt and a brief?"
answer: "A prompt is usually a single question or instruction (e.g., \"Write a launch email\"). A brief gives Claude the surrounding context: audience, tone, format, examples of bad output to avoid, and constraints. Briefs consistently outperform prompts because Claude is good at steering away from things you name explicitly."
- question: "When should I use Claude Projects?"
answer: "Use Claude Projects whenever you find yourself pasting the same context (codebase, style guide, product docs, brand voice) into multiple chats. The project description acts as persistent context for every conversation inside it, so set it up like you would onboard a new hire."
- question: "Can Claude help me think through a problem instead of answering it directly?"
answer: "Yes. Ask Claude to interview you with the five most important questions about the problem, then answer them yourself before asking Claude to synthesize the result. This surfaces constraints and assumptions you had not named and is especially useful for fuzzy decisions like architecture or product specs."
- question: "What are Claude Artifacts useful for?"
answer: "Artifacts let you generate small interactive tools (regex testers, diff viewers, CSV converters, timezone calculators) in seconds without searching for or installing third-party apps. The real value is fast iteration: \"add dark mode\" or \"remember my last five inputs\" tweaks the tool to your workflow with one sentence."
- question: "Does Claude work with screenshots?"
answer: "Yes, Claude is multimodal. For UI bugs, design comparisons, error panels, or anything visual, screenshot first and describe later. Annotate the image (a red circle around the issue) for even better results. It saves a round trip compared to trying to explain a visual problem in words."
- question: "How do I integrate Claude into an Appwrite-backed app?"
answer: "Use [Appwrite Functions](/docs/products/functions) to call Anthropic's Claude API from your backend, keeping the API key server-side. You can also use the [Appwrite plugin for Claude Code](/blog/post/announcing-appwrite-claude-code-plugin) to give Claude direct access to your Appwrite project while coding."
---

You can spot someone who's good at Claude within about ten seconds of watching them work. They barely type. They skip the elaborate prompts, the over-explaining, the second-guessing. Just five specific moves that almost nobody teaches.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,19 @@ author: ebenezer-don
category: tutorial
featured: false
callToAction: true
faqs:
- question: "Is Thunder Client a full replacement for Postman?"
answer: "For day-to-day API development and testing, yes. Thunder Client covers collections, environment variables, Git sync, and CI/CD integration without leaving VS Code. Postman still wins for advanced features like API monitoring and mock servers, so pick based on what your workflow actually needs."
- question: "Are these VS Code extensions safe to use with proprietary code?"
answer: "It depends on each extension's data handling. AI extensions like BlackBox AI may send code snippets to remote servers; check the privacy policy and configure local-only modes when available. Extensions like GitDoc, Dendron, and Time Master are local and do not transmit your code, but always verify before installing on company projects."
- question: "Will too many VS Code extensions slow down the editor?"
answer: "Yes, each extension consumes memory and can contribute to startup time. VS Code has a built-in profiler (`Help > Show Running Extensions`) that shows which ones cost you the most. Disable per-workspace what you do not need, and uninstall extensions you no longer use."
- question: "Is there a VS Code extension for Appwrite?"
answer: "You can connect VS Code to Appwrite via the [Appwrite CLI](/docs/tooling/command-line) for deploying and managing functions, or through the [Appwrite MCP server](/docs/tooling/mcp/api) if you use an MCP-compatible AI assistant inside the editor. Both let you operate on your Appwrite project without leaving VS Code."
- question: "What does GitDoc actually do differently from a normal Git workflow?"
answer: "GitDoc auto-commits on save, similar to Google Docs version history. By default it only commits when your code is error-free, so you do not preserve broken states. It is most useful for docs, notes, or solo feature work where you want a fine-grained timeline without crafting commit messages."
- question: "Are these extensions worth using if I already have paid tools?"
answer: "If you genuinely use the advanced features of the paid tools (Postman monitoring, Notion collaboration), keep them. The extensions earn their place when you mostly used the basic features and want to cut context switches, subscriptions, or memory usage. Try the free versions for a week before deciding."
---

Look at your system tray and count the development tools running. It adds up fast; each tool consumes memory, requires updates, and competes for your attention.
Expand Down
Loading
Loading