8000 GitHub - langx/langx: We connect language learners worldwide. Practice and immerse yourself in different languages. · GitHub
[go: up one dir, main page]

Skip to content
langxPublic

Latest commit

 

History

9,727 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

💻 Website: https://langx.io/

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

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

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

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

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

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

✉️ Mail: hi@langx.io

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

  • 🌱 v1 branch — this repository before v2; the Expo rewrite that was never released
  • 📦️ api (Archived) v1's Express API; served api.langx.io until v2 took the hostname
  • 📦️ langx-angular (Archived) Originally developed; v0.15, the last v1 on the stores, was built from it
  • 📦️ langx-flutter (Archived) (Not 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 hi@langx.io rather than opening a public issue. See SECURITY.md.

Stats

Stargazers

Stargazers over time

Contributors

GitHub Contributors Image

Support Us

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.

Releases

Sponsor this project

Packages

Used by

Contributors

Languages

0