reelmimic
좋아하는 영상을 보여주면 같은 스타일의 새 영상을 AI 팀이 함께 기획·제작·검토해 줍니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기⬡⏣⬢ community-curated archive of chainlink memes ⬢⏣⬡
README 전체를 불러오는 중입니다.
README 전문 보기 ↗⬢ A community-curated archive of Chainlink memes — chainlinkme.me.
Browse, search, favorite, and react. Every meme has a permalink that unfurls beautifully in Discord, Twitter, and Telegram. The memeverse flies you through the whole archive as a 3D galaxy and can rebuild your face out of it; a tag constellation maps the archive as a cosmos; weekly snapshots preserve the top 7 memes each week; a Discord slash command pulls memes into any server on demand.
GitHub repo ─► jsDelivr (image CDN, automatic)
│
│
├──► GitHub Pages (Astro, 100% pre-rendered)
│
└──► Cloudflare Worker ─► D1 (/api/reactions · /discord/interactions)
Everything else is derived at build time. The live site can be rebuilt from scratch with git clone && pnpm install && pnpm build — the only external state is the D1 reactions table, which is allowed to be lossy.
memes/ # source of truth: one .jpg/.gif/.png/.webp + one .toml per meme
site/ # Astro frontend (GitHub Pages)
worker/ # Cloudflare Worker + D1 (reactions + Discord bot)
scripts/ # build-time + one-off tooling
.github/workflows/ # CI: validate PRs, deploy on merge, weekly snapshot
/verse)Every meme in the archive as a hex tile in one WebGL 2 galaxy.
/ lights up a tag, r warps to a random meme, t starts an autopilot tour (good on a TV), ? shows the keys.#m=<slug> (every permalink has a "find it in the memeverse" button), #tag=pepe, #tour, #assemble, and #callsign=rory-clippy-fud, which flies a ccip.dev LinkMarine through the three dog-tag tags their callsign was drawn from./verse/#assemble)Drop in a photo (or take a selfie, or pick a meme, or the chainlink mark) and the galaxy pours out of its orbits to rebuild it as a honeycomb portrait made of the archive. Download it as a hex PFP or a poster, share it, or record a clip of the galaxy assembling it (MP4 where the browser can encode it, WebM otherwise; filmed straight off the canvas, no UI).
site/src/lib/tag-rail.ts); one tap filters the wall/m/<slug>) with full OG + Twitter cardsr for a random meme; / to focus search; j/k to navigate; f to favorite; i to copy the image; ? for the full keymapprefers-color-scheme)atlas/hero.webp, ~145 KB) is rendered by scripts/build-verse-og.ts/api/reactions, edge-cachedlikes table preserved so pre-migration hearts still count/map)/week)site/src/data/weekly/YYYY-Www.jsonSummon any meme in your Discord server with /clmeme <tag>:
/clmeme sergey → a random sergey meme/clmeme moon wagmi → a meme matching either tag (weighted by score)/clmeme → a random meme from the archiveServer admins only need applications.commands scope — no bot user, no gateway, no ongoing permissions. Every invocation hits the Cloudflare Worker, which verifies Discord's Ed25519 signature and embeds the meme inline.
Summon any meme in Telegram with either entry point:
@chainlinkmemebot sergey in any chat. A picker appears; tap a thumbnail to send the meme. Works in DMs, groups, channels, and comment threads — no install step, no bot permissions./clmeme sergey. Empty query returns a random meme.Like the Discord bot, there's no gateway or polling — Telegram POSTs each update to the Cloudflare Worker (/telegram/webhook), which verifies the secret-token header and replies with the send-photo action inline.
Once a day at 14:00 UTC, /tweet-daily posts the meme-of-the-day — the same meme the site's hero shows — as a native image (the GIF itself for animated memes) with its tags. The post carries no link on purpose: a URL-free post bills at X's $0.015 Post: Create rate instead of the $0.200 Content: Create with URL rate, and native media out-reaches link posts on X anyway.
Secrets (X_API_KEY / X_API_SECRET / X_ACCESS_TOKEN / X_ACCESS_SECRET) live in GitHub Actions.
Each permalink has a save as sticker button that exports to Signal-spec 512×512 — WebP for static memes, APNG for animated (≤300 KB, ≤3s loop). The APNG branch runs UPNG quantization entirely in-browser, adaptively dropping the color palette until it fits the 300 KB budget; the whole encoder bundle is lazy-loaded (~95 KB) and only ships when someone actually clicks the button. Drop the output straight into Signal, Telegram, Discord, or Slack.
Every meme has a pre-rendered 1200×630 OG card (baked by scripts/build-og-images.ts with Satori + Resvg, CI-cached by content hash). The home page has a custom 77-meme honeycomb mosaic. The memeverse's card (og/_verse.png) is the real galaxy layout, projected and composited by scripts/build-verse-og.ts.
/grid)Every meme in the archive, at once, as a single hex tessellation. Wheel to zoom, drag to pan, click any tile to open. Zoomed out, tiles come from the memeverse's sprite sheets (two images for the whole archive); full images take over as you zoom in.
Press s anywhere on the site for fullscreen one-meme-at-a-time mode. Space / → for next, ← for previous, Esc to exit. Unlisted — find it in the ? help dialog.
The canonical data source is manifest.json — the full archive, CORS-open, regenerated on every deploy. Worker endpoints on top of it:
| Endpoint | Description |
|---|---|
GET /api/random | JSON for a random meme. ?tag=xxx filters by tag. ?redirect=1 returns a 302 to the permalink. |
GET /api/search?q=... | Tag + synonym + title/description search. &limit=N (default 24, max 100). |
GET /api/tags | Every tag with its meme count, sorted by popularity. |
GET /api/reactions | Bulk { slug: { heart, laugh, bolt, diamond } } map (edge-cached 60s). |
Worker base URL: https://chainlinkmeme-api.pilgrim.workers.dev.
Each permalink has a copy embed button that gives you an <iframe> snippet you can drop into blogs, Notion, Discord embeds, etc. The embed page lives at /embed/:slug.
pnpm install
pnpm --filter site dev # site at http://localhost:4321
pnpm --filter worker dev # worker at http://localhost:8787
pnpm --filter site build # pre-render every meme page (~1,800 pages, ~5s)
Useful workspace scripts:
pnpm manifest # regenerate site/public/manifest.json from memes/*.toml
pnpm og # rebuild OG images (cache-friendly)
pnpm atlas # pack the memeverse's sprite sheets + mosaic features, render its OG card
pnpm validate # PR-style schema + vocab + uniqueness checks
pnpm weekly # compute this week's top-7 snapshot
pnpm tweet:daily -- --dry-run # preview today's daily post
pnpm discord:register # (re)register the /clmeme slash command
pnpm telegram:register # (re)register Telegram webhook + bot commands
Drop yourfile.jpg + yourfile.toml into memes/, open a PR.
title = "short display title" # optional
tags = ["sergey", "moon"] # required, must exist in memes/_vocab.toml
description = "context or lore" # optional
credit = "@someone" # optional
source_url = "https://..." # optional
nsfw = false # default false
# submitted_by + date_added are auto-filled by CI
See CONTRIBUTING.md for the full walkthrough.
main → deploy.yml runs three jobs:
backfill-meta — auto-fills submitted_by and date_added on new TOMLs, commits backbuild-and-deploy — builds manifest, renders OG images, packs the memeverse atlas, runs astro build, publishes to GitHub Pagesdeploy-worker — ships the Worker via wrangler deployweekly.yml writes the new snapshot and commits it to mainD1 migrations under worker/migrations/ are applied with pnpm wrangler d1 migrations apply chainlinkmeme --remote.
LICENSE)