Development Lilypadfrogtalk.xyz runs the dev branch. Breakage expected.
For everyday use, go to frogtalk.app (production hub). · Do not store sensitive data here.
⚠️ Dev Lilypad — unstable 🔧 frogtalk.xyz · dev branch 🌐 Federation testbed · 📦 Self-host · 🔒 Same E2E stack

Help build
FrogTalk

The development instance on frogtalk.xyz ships the dev branch first — API changes, mobile builds, and federation fixes land here before frogtalk.app. Open PRs, run your own Lilypad (node), and test cross-Lilypad chat without touching production users. Pre-alpha: not audited; do not store sensitive data here.

🐸 Open dev app Contribute on GitHub Run a Lilypad →
This node

FrogTalk Development & support

AU-hosted testbed for the dev branch. Imageboard title FrogTalk Development & support · topic dev. Federation and mobile QA happen here before promotion to the main hub.

Compare

Dev vs production

Dev (.xyz)Main (.app)
Latest merged PRsPromoted pre-alpha hub
May reset or 502Best-effort uptime
Test federation hereOfficial directory
Client default: .xyzClient default: .app
Contributor flow

Ship to dev first

Fork → branch from dev → test on this node or locally → PR into dev → after review, changes merge to master for frogtalk.app. Hub directory and release hashes always reference frogtalk.app.

dev
Branch first
🌐
Federation QA
🔒
Same E2E stack
📦
Self-host docs
🖼️
Frog Channel
0
Production data
What to test on this Lilypad
Same FrogTalk feature set as production — use frogtalk.xyz to validate changes before they ship to frogtalk.app.
🔒

Encryption regressions

Signal Protocol DMs and AES-GCM private channels — verify ratchet, safety numbers, and key rotation after server changes.

🌐

Federation mesh

Join against frogtalk.app, pin peer keys, push inbox/outbox traffic, and confirm board peer pills sync.

📱

Mobile & desktop builds

Point the app wizard at frogtalk.xyz (default on dev branch). Test APK handoff and WebSocket stability.

🔁

Discord / Telegram bridges

Exercise live bridge sync, media, and voice notes on a non-production node before promoting config.

🖼️

Frog Channel board

Board identity: Development & support · topic dev. Test moderation and federation nav.

📘

API & admin

Hit /docs/api and Server Admin flows — federation tokens, contacts, release hash checks.

Contributor workflow
Keep production users on frogtalk.app; land code on dev first.
1

Fork & branch from dev

Clone github.com/deadinternetfox/frogtalk, create a feature branch off dev, not master.

2

Run locally or on this Lilypad

bash node/scripts/install.sh setup — or test against frogtalk.xyz/app after deploy.

3

Open a PR into dev

One focused change per PR. Note federation / mobile impact in the description.

4

Promote to master

After review and QA here, merge to master for frogtalk.app. Only client/official-node.json differs between branches (.xyz vs .app).

Federation testing on dev

The official directory and hub registration always use frogtalk.app. This node should appear as a peer after node_federation_join.sh — verify hash badges, onion handoffs, and release feed polling against the main hub.

DIRECTORY SYNC PUBKEY PIN BOARD PEERS RELEASE HASH
Test builds (from main hub)
Pre-alpha APK and desktop artifacts are published from frogtalk.app — install here to test against this dev node. 🤖 Android is now in open testing on Google Play.
🐳 Spin up a throwaway test Lilypad with Docker
A Lilypad is a FrogTalk node. One command brings up the backend container (app + imageboard on :8080) so you can exercise federation, bridges, and the dev branch without touching production users. Front it with nginx / Cloudflare for TLS.
git clone -b dev https://github.com/deadinternetfox/frogtalk
cd frogtalk && docker compose up -d
docker-compose.yml Lilypad guide →

Same privacy model — not production

Dev runs the same client-side encryption as main, but databases may be wiped, configs may break, and code is unaudited.

Read security model →
🔧

Ship something to the swamp

Test on frogtalk.xyz, open a PR into dev, and help harden FrogTalk before it reaches frogtalk.app.

Contribute on GitHub →