Skip to content

[EPIC] Airdrop full teardown (campaign paused) #1315

Description

@realproject7

Airdrop Full Teardown — campaign paused indefinitely

The PLOT airdrop is paused indefinitely. This EPIC tracks the clean, safe removal of ALL airdrop code, DB objects, cron, frontend, and config — while keeping every core PlotLink feature working (story pages, ratings, on-chain indexing, backfill cron, x-stats, profiles, sharing).

Paused, not cancelled → code is git-tagged and DB data archived before removal so it can be revived.

Background

Dependency audit (verified 2026-05-28, static)

  • lib/airdrop/award.ts = no-op stubs. The 3 callers (ratings, index/storyline, backfill cron) call it fire-and-forget: awardX(...).catch(()=>{}). Return value unused → removing calls is safe.
  • ShareButtons uses referral optionally (code ? url?ref=code : url) → degrades to plain story URL. No breakage.
  • TWITTERAPI_IO_KEY is SHARED with core x-stats (lib/x-stats.ts) → KEEP the env var; only delete lib/airdrop/twitterapi.ts.
  • NEYNAR_API_KEY + CRON_SECRET = core → KEEP.
  • No core→airdrop FK (migration scan clean) → DB DROP is safe without CASCADE.
  • Airdrop tests live under src/app/api/airdrop/ → deleted with routes (no orphans).
  • Packages siwe, @openzeppelin/merkle-tree, @electric-sql/pglite, nanoid = airdrop-only → remove.

Children

Strict execution order

  1. git tag airdrop-v5-archive (revival snapshot) — [Teardown-C] Revival git tag + Vercel env/cron cleanup #1318 C1, do FIRST
  2. [Teardown-A] Remove all airdrop code + write teardown migration #1316 code PR → RE1+RE2 review → T1 merge → prod deploy
  3. Verify no /airdrop references resolve in prod
  4. [Teardown-B] Archive + apply DB teardown migration #1317 DB archive + migration drop
  5. [Teardown-C] Revival git tag + Vercel env/cron cleanup #1318 C2 env cleanup

🚨 Critical safety rule

Code teardown + prod deploy MUST land BEFORE DB drop. The airdrop-price / airdrop-weekly crons currently run on schedule; dropping tables before removing the crons would cause them to error on missing tables.

Revival path

  • git tag airdrop-v5-archive (full code)
  • DB archive tables pl_*_archive_<date>
  • Design docs retained in operator workspace (PLOTLINK-diamond-hand-airdrop-5/6.md, PLOTLINK-airdrop-teardown-checklist.md)

Metadata

Metadata

Assignees

No one assigned

    Labels

    airdropPLOT 10x Airdrop CampaignepicEpic / master ticket

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions