Profile
Back to NewsBack
GitHub Trending 3 min
Reader Mode
langx/langx: We connect language learners worldwide. Practice and immerse yourself in different languages.

langx/langx: We connect language learners worldwide. Practice and immerse yourself in different languages.

12 hours ago

LangX

LangX | Practice, Learn, Succeed!

CI Better Stack Badge GitHub release Activity GitHub contributors GitHub issues GitHub license

Discord Reddit Twitter Telegram Instagram TikTok Facebook YouTube Bluesky LinkedIn

chat on Discord

Download on the App Store Get it on Google Play Open the web app

Help someone speak yours. They'll do the same.

LangX connects you with native speakers so you can practise the language you are learning by teaching the one you already know. Speak, chat, correct each other's sentences — and keep a streak while doing it.

iOS, Android and the web all come out of one Expo codebase, with a single Fastify API behind them. BSD-3, open source, same as v1.

Discover — people learning your language, nearby and active   Chat — say it wrong, get it fixed   Feed — corrections are always free   Tokens — earned by teaching

Screens are rendered from the app's own layouts with demonstration data; the faces are AI-generated portraits. The full press kit is in langx/branding.

Official Links

:computer: Website: https://langx.io/

:calling: Apps: https://get.langx.io

:coin: Token Website: https://token.langx.io/

:scroll: Litepaper: https://docs.langx.io

:bar_chart: Insights: https://insight.langx.io

:green_circle: Status : https://status.langx.io/

:wrench: Backlog: https://backlog.langx.io/

:envelope: Mail: [email protected]

Tech Stack

| Layer | Choice | | ---------- | ------------------------------------------------------------------- | | Mobile/web | Expo SDK 57 · expo-router · TanStack Query + Zustand · NativeWind | | API | Node 24 · Fastify 5 · Better Auth · Socket.io — a single container | | Data | MongoDB Atlas, official driver (no Mongoose) | | Storage | S3-compatible (Backblaze B2 in production; Cloudflare R2 works too) | | Billing | RevenueCat — StoreKit / Play Billing / RevenueCat Web + Stripe |

Other Repos

What each one is, where it is hosted and which values are copied between them by hand: docs/repo-map.md.

  • 🟢 website _SvelteKit — langx.io_
  • 🟢 token-website _HTML/CSS — token.langx.io_
  • 🟢 docs _GitBook source — docs.langx.io_
  • 🟢 branding _logos, icons, store artwork,
press kit_
  • 🟡 copilot _Discord assistant; live, not
developed_

Previous versions

v2; the Expo rewrite that was never released
  • 📦️ api (Archived) _v1's Express API; served
api.langx.io until v2 took the hostname_ developed; v0.15, the last v1 on the stores, was built from it_ completed)_

Get started

MongoDB has to run as a replica set — Better Auth wraps its writes in transactions, which standalone mongod does not support. Full setup, including the one-line Docker version, is in CONTRIBUTING.md.

pnpm install
cp .env.example .env      # set MONGODB_URI and BETTER_AUTH_SECRET
pnpm dev                  # API on :4000, Expo on :8081
  • pnpm dev:api — API only
  • pnpm dev:web — Expo web only
  • pnpm typecheck · pnpm lint · pnpm test
Press i or a in the Expo output for a simulator, or open http://localhost:8081 for the web build. Running on a physical phone needs a development build rather than Expo Go — see CONTRIBUTING.md.

Layout

apps/api          Fastify API — auth, REST, realtime, scheduled jobs
apps/mobile       Expo app (iOS + Android + web)
packages/shared   zod schemas, language + level tables, PLAN_LIMITS, TOKEN_RULES

docs/architecture.md describes how they fit together and docs/decisions.md says why — several choices look arbitrary until you know what went wrong the first time.

Self-hosting

Your own instance needs MongoDB, an S3-compatible bucket and an email key. Billing, translation and analytics are optional and degrade cleanly when they are not configured. See docs/self-host.md.

Contributing

We welcome contributions. Start with CONTRIBUTING.md, and say hello in the #codebase channel on Discord.

Security

If you find a security vulnerability, please email [email protected] rather than opening a public issue. See SECURITY.md.

Stats

Stargazers

Stargazers over time</a>

Contributors

GitHub Contributors Image</a>

Support Us

  • Be A Patron: https://backer.langx.io/
  • Github Sponsor: https://github.com/sponsors/langx

Third-party data

This work is based on data from GeoNames, licensed under CC BY 4.0.

See docs/data-sources.md.

License

This project is licensed under the BSD-3-Clause License - see the LICENSE file for details.

Chat with me