Pranjal Sailwal

recovering from log

  1. seq 0000recovering from log

Appwrite Migration Guard

“Did the migration really move everything, and can it say why not?”

A local-first CLI that checks an Appwrite migration did what it should, and says PASS, WARN or BLOCK with a reason

11 of 11

planted changes caught in a live pass, no false positives

8

commands, all working against live Appwrite Cloud

0

passwords, emails or environment variables collected

Reel 1 of 9: Now showing

Scroll to watch. Click someone in the audience.

  • In the audience

Now showing

Appwrite Migration Guard

A local-first CLI that checks an Appwrite migration did what it should, and says PASS, WARN or BLOCK with a reason

The case in short.

The problem
After an Appwrite migration or upgrade, teams validate permissions and data by hand or not at all, then find partial transfers and permission drift when the app starts failing.
Who it is for
Teams migrating or upgrading Appwrite Cloud or self-hosted projects.
My part
Sole author.

How it was done

  1. amg inventories TablesDB, Storage, Users, Functions and Sites, and compares them across source and destination.
  2. It never collects passwords, emails, or function and site environment variables, and I test that by searching the saved manifests for them.
  3. Every check is an explicit, documented rule, not a model. The README spells out what a PASS does and does not prove.
  4. I verified it live with ten passes against a real Appwrite Cloud project, each introducing a real change and confirming amg caught it.
  5. In a regression pass I changed eleven things at once, and amg reported exactly those eleven findings, with no false positives and none missed.

What came out

All eight commands run against live Appwrite Cloud. Status is pre-alpha, with the limits and the roadmap written down.

What it rests on.

Every figure about this project, and how each one is known. The folder structure, languages and history on the right are read straight from GitHub, so they say what the code is, not what I wish it were.

11 of 11planted changes caught in a live pass, no false positives
8commands, all working against live Appwrite Cloud
0passwords, emails or environment variables collected
pre-alphathe project's own status
github.com / sailwalpranjal / appwrite-migration-guard

52

commits

90

files

18

folders

413 KB

on disk

  • Go 100%
  • appwrite-migration-guard/
  • internal/64 files
    • cli/
    • appwrite/
    • inventory/
  • docs/7 files
    • images/
    • acceptance-test-fixture.md
    • architecture.md
  • .github/6 files
    • ISSUE_TEMPLATE/
    • workflows/
    • PULL_REQUEST_TEMPLATE.md
  • cmd/1 files
    • amg/
  • lab/1 files
    • lab_test.go
  • .env.example
  • .gitattributes
  • .gitignore
  • .goreleaser.yaml
  • CHANGELOG.md
  • CODE_OF_CONDUCT.md
Sep 2026 → Sep 2026.go ×66.md ×14.yml ×3.example ×1.gitattributes ×1

Growth Intelligence Lab

A growth analytics platform that finds why cost per conversion jumps 4x when spend rises 19x, using only public data

If you want to talk about how this was built, write to me.

  1. seq 0001you arrived
  2. seq 0002write back