Appwrite-native developer tooling inside VS Code.
AppForge is a VS Code extension for Appwrite developers who need multi-project backend workflows without leaving the editor. It combines project management, a TreeView resource explorer, diagnostics, structured logging, and secure credential storage into a single developer cockpit.
AppForge removes the friction of bouncing between VS Code and the Appwrite console for everyday backend tasks. It is designed for developers who manage multiple Appwrite projects, need fast context switching, and want reliable visibility into what the extension is doing when data looks wrong.
It solves the problems that usually show up in real Appwrite workflows:
- Switching between tools just to inspect projects, databases, or functions
- Losing confidence in backend state when async refreshes race each other
- Debugging empty or inconsistent results without enough logging
- Managing multiple projects with unsafe shared client state
- Repeating setup work every time you return to the console
- Store multiple Appwrite projects securely in VS Code workspace state and SecretStorage
- Add, remove, and switch projects from the sidebar or command palette
- Keep project metadata isolated by project ID
- Auto-load the active project on extension activation
- Status bar indicator for quick project identification
- Hierarchical tree view of databases, collections, and documents
- Lazy-load documents for responsive navigation (first 100 documents)
- Inspect collection attributes with field types
- View indexes and their configurations
- Create, update, and delete documents directly
- Collection schema browser with attribute details
- Browse all functions per project
- View deployment metadata and configurations
- Inspect function variables and settings
- Execute functions directly from the sidebar
- Deploy new function versions without leaving VS Code
- Execution history and status tracking
- Browse buckets and file contents per project
- View bucket permissions and metadata
- Inspect file details and sizes
- Upload and delete files from the UI
- File management through context menus
- Bucket-level access control inspection
- Unified sidebar explorer for all Appwrite resources
- Expand resources lazily for responsive navigation
- Preserve expansion state across refreshes
- Use context menus for quick actions on all resource types
- Color-coded tree items for resource types
- Centralized WebView panel for operation logs
- Raw REST and SDK response inspection
- Structured logging with success/warning/error/debug levels
- Timing information for async operations
- Diagnostic traces for troubleshooting
- Export logs for support workflows
- Connect to Appwrite Cloud or self-hosted Appwrite instances
- Use Appwrite API keys for backend operations
- Validate connections before saving a project
- Run database, function, and storage workflows from within VS Code
- Support for multiple Appwrite versions
- Switch context instantly from the sidebar or status bar
- Avoid manual reconfiguration when moving between environments
- Keep each project node independent and deterministic
- Reduce stale state during fast project changes
- Status bar shows active project name
- Inspect stored project metadata and connection details
- Compare SDK responses with raw REST responses
- Troubleshoot empty database results with dedicated tooling
- Verify project and endpoint identity before chasing UI bugs
- Comprehensive runtime logging with console traces
- Structured runtime logging through the Output Channel
- Success, warning, error, and debug events
- Timing-aware logging for async operations
- Diagnostics output designed for real support workflows
- Diagnostic traces for proof of execution:
[TREE],[DATABASES],[STATUSBAR], etc.
- Validation-rich setup forms
- Loading indicators for long-running operations
- Confirmation dialogs for destructive actions
- Command palette integration for all major workflows
- Clear status feedback for project and backend actions
- Written in strict TypeScript
- Uses Zod for configuration and input validation
- Built on VS Code extension APIs with explicit service boundaries
- Keeps project state, backend state, and UI state separated
AppForge: Add ProjectAppForge: Remove ProjectAppForge: Switch ProjectAppForge: Refresh ProjectsAppForge: Refresh DatabasesAppForge: Refresh FunctionsAppForge: Refresh StorageAppForge: Create CollectionAppForge: Create DocumentAppForge: Delete DocumentAppForge: List DocumentsAppForge: Update DocumentAppForge: Execute FunctionAppForge: Deploy FunctionAppForge: View LogsAppForge: View Function LogsAppForge: Check Project StatusAppForge: View Connection InfoAppForge: Troubleshoot Empty DatabasesAppForge: Verify Appwrite Project EnvironmentAppForge: Run Diagnostics
v0.2.0-alpha introduces comprehensive resource explorers for Databases, Functions, and Storage, plus improved diagnostic tooling.
- View all databases and collections in a hierarchical tree
- Browse collection attributes, indexes, and documents
- Lazy-load documents (first 100) for responsive navigation
- Inspect document structure and field types
- Create, delete, and update documents directly from the explorer
- Collection schema with attribute types and index details
- Right-click context menus for common operations
- Browse all functions and their deployments per project
- View deployment metadata and execution history
- Display function variables and configuration
- Execute functions directly from the sidebar
- Deploy new function versions without leaving VS Code
- Monitor function status and metadata
- Browse buckets and their contents
- View bucket permissions and configuration
- Inspect file metadata and sizes
- Upload and delete files from the UI
- File management operations from context menus
- Bucket-level access controls
- Centralized logging panel for operation traces
- View raw REST and SDK responses
- Structured logging with success/warning/error levels
- Timing information for async operations
- Diagnostic tooling for database verification
- Export logs for support workflows
- Active project indicator in VS Code status bar
- LEFT alignment with priority 1000 for visibility
- Quick project switching from the status bar
- Real-time project name display
- Click-to-switch project workflow
- Comprehensive project metadata inspection
- Raw REST vs SDK response comparison
- Endpoint and project ID verification
- Runtime logging with diagnostic traces
- Proof of execution through console logs
- API call tracing for database operations
Experimental Features:
- Logs Viewer is a preview feature with roadmap updates in v0.2.1-alpha
- Function deployment via drag-and-drop (upcoming)
- Real-time document change notifications (upcoming)
This release focuses on making Appwrite resources fully visible and queryable from VS Code, with transparent logging to build confidence in multi-project workflows.
AppForge is organized around explicit boundaries so project context never depends on hidden global state.
Each Appwrite operation is created from project-specific inputs rather than a long-lived mutable client. That keeps database, function, and diagnostic calls tied to the project being acted on.
The client layer now acts as a factory for isolated SDK instances. Services are created per project and per operation, then discarded after use. That removes cross-project contamination and async race conditions caused by shared state.
src/extension.tswires activation, services, and command registrationsrc/providers/treeDataProvider.tsowns the sidebar resource explorersrc/commands/contains project, database, function, and diagnostics workflowssrc/views/contains webviews and resource panelssrc/services/contains storage and Appwrite client factoriessrc/core/contains refresh orchestration, events, and output loggingsrc/types/contains shared type definitionssrc/utils/contains validation and parsing helpers
Diagnostics are designed to answer a simple question quickly: is the problem local, configuration-related, or remote?
The current flow captures:
- Stored project metadata from workspace state
- Redacted API key context
- Endpoint and project ID identity
- SDK response payloads
- Raw REST response payloads
Commands are exposed through the command palette and sidebar interactions. Each command resolves project context explicitly before creating its Appwrite service, which keeps behavior deterministic even when multiple projects are open or switching quickly.
Replace these placeholders with real captures before publishing.
git clone https://github.com/ArhanAnsari/appforge.git
cd appforge
npm install
npm run buildnpm run watchThen press F5 in VS Code to launch the Extension Development Host.
npm run check-types
npm run lint
npm run build
npm run watchFor a deeper layout reference, see FOLDER_STRUCTURE.md.
src/
├── commands/ # Project, database, function, and diagnostics commands
├── core/ # Event bus, refresh manager, and output channel
├── providers/ # TreeView data provider
├── services/ # Appwrite and storage services
├── types/ # Shared TypeScript definitions
├── utils/ # Validation and parsing helpers
└── views/ # Webview panels
- Strict TypeScript compilation
- ESLint validation
- Explicit service boundaries
- Structured runtime diagnostics
- Secure credential storage
AppForge v0.2.0-alpha completes the core resource exploration surface for Databases, Functions, and Storage. The roadmap beyond v0.2.0 is focused on operational confidence and multi-project automation.
- Logs Viewer feature completion with filtering and export
- Function execution logs viewer
- Improved error messages for common failure modes
- Performance optimization for large databases and function counts
- API response caching for frequently-accessed resources
- Search and filter across databases, functions, and storage
- Bulk operations: delete multiple documents, manage permissions
- Resource tagging and favorite management
- Git-aware function deployment (deploy from current branch)
- Environment variable management per project
- Function execution scheduling and monitoring
- Auth management and user administration
- Real-time monitoring for logs and backend events
- AI-assisted developer tooling and smart diagnostics
- Appwrite Cloud region and environment diagnostics
- Direct resource editing for supported Appwrite entities
- Deployment workflows for functions, databases, and schemas
- Team collaboration features for shared workspaces
- Custom resource templates and scaffolding
Contributions are welcome.
Please keep changes focused, typed, and consistent with the existing architecture:
- Fork the repository and create a feature branch.
- Preserve strict TypeScript compatibility.
- Prefer explicit project-scoped logic over shared mutable state.
- Add or update diagnostics when fixing backend integration issues.
- Run typecheck and lint before opening a pull request.
- Keep the README and docs aligned with user-facing changes.
If you are proposing a larger workflow or architecture change, include the reasoning and validation path in the pull request description.
- Release notes: CHANGELOG.md
- v0.2.0-alpha release report: RELEASE_REPORT_v0.2.0-alpha.md
- Folder layout reference: FOLDER_STRUCTURE.md
- Extension does not activate: confirm VS Code
^1.120.0or newer and reload the window. - Projects do not appear in sidebar: verify the workspace contains saved AppForge project state.
- Connection test fails: check the endpoint, project ID, and API key.
- Project switching looks inconsistent: confirm the project ID in the sidebar matches the project ID stored in AppForge.
- Status bar does not show project name: enable LEFT alignment in status bar settings and check the Output Channel for diagnostics.
- Database explorer is empty: run
AppForge: Verify Appwrite Project Environmentand compare the raw REST output with the Appwrite console. - Collections do not load: check that the selected database is accessible with the stored API key.
- Documents appear truncated: document list is limited to first 100 for performance; use the Appwrite console for full browsing.
- Functions explorer shows no deployments: verify the function is deployed via the Appwrite console first.
- Storage buckets are not visible: check bucket permissions and that files are accessible with the current API key.
- No logs appear in the Logs Viewer: check the Output Channel (
View → Output → AppForge) for raw extension output. - Diagnostic traces missing: enable debug logging in VS Code settings (
"appforge.logLevel": "debug"). - API call traces not appearing: run
AppForge: Run Diagnosticsand check the Output Channel for[TREE],[DATABASES], and[STATUSBAR]trace logs.
- VS Code
^1.120.0 - Node.js 18+ for development
- An Appwrite instance or Appwrite Cloud project
MIT License.
AppForge is built for Appwrite developers who want stronger tooling, clearer diagnostics, and less context switching.



