TalkJS is structured as a typical client-server application. We like new technology and we like to balance it out with proven technology. This is what we use right now, but it's always changing, and we're happy for you to learn on the job.
Core TalkJS Backend infrastructure
- Elixir
- Phoenix Framework
- PostgreSQL
Frontend (prebuilt UI + JavaScript SDK)
- TypeScript (+ a little bit JS left)
- React
- A little bit of NodeJS to prerender the prebuilt UI for faster loading
Website
Infra/devops
- Elixir/Erlang’s parallel processing keeps our server setup simple—just Docker (Compose) and GitHub Actions.
- Test releases spin up automatically by adding a label to a PR.
- Production and staging use automated blue-green deployments via GitHub Actions.
- SDK updates are automatic, as our NPM package dynamically loads JS from our site (with guaranteed backwards compatibility).
- We don’t do continuous deployment, but we release often—usually a few times a week, sometimes multiple times a day.
- Extensive monitoring with Datadog, AppSignal, LogDNA, Uptime.com, and Erlang’s Observer.
Key tooling
- TalkJS → support via a TalkJS chat widget + custom Slack integration
- GitHub → feature branch/PR workflow, issues for bugs, Discussions for specs/architecture
- Slack → main comms tool (feel free to mute for focus); Huddles for quick calls
- Notion → wiki, docs, drafts, and our jobs page
- Figma → design work
- Gmail & Google Calendar → minimal email use (mostly with customers)