Skip to main content

4 posts tagged with "desktop-app"

View All Tags

IELTS Mastery Hub — Free, open-source IELTS practice on your desktop

· 2 min read

IELTS Mastery Hub

Free, open-source IELTS practice — reading, listening & AI-graded writing


👋 Hey Product Hunt!

I built IELTS Mastery Hub because IELTS preparation has a frustrating pattern: two free mock tests, then a paywall — and half the tools don't even match the real exam format. For a test that's already expensive to sit, that felt like the wrong place to put a subscription.

So this is the opposite of that. A native desktop app, completely free, open source under MIT, and running on Windows, Linux, and macOS. No account, no trial, no upsell.

Quick demo video:

What's inside:

📖 Reading — split-screen timed practice covering the official question types, auto-scored instantly

🎧 Listening — audio-driven sections with progressive difficulty

✍️ Writing — a dual-pane editor with AI evaluation across the official IELTS scoring criteria, so you get structured feedback instead of writing essays into the void

📊 Dashboard — track your scores and see whether you're actually improving over time

Under the hood: TypeScript frontend with a Rust core, built with Tauri — so it's a small, fast native binary rather than a browser tab pretending to be an app. Important when you're sitting a 3-hour mock exam.

Get it in one line:

macOS / Linux — curl -fsSL https://open-lingua.github.io/ielts-mastery-hub/install/install.sh | sh

Windows — irm https://open-lingua.github.io/ielts-mastery-hub/install/install.ps1 | iex

Prefer to build it yourself? The whole thing is on GitHub: https://github.com/open-lingua/ielts-mastery-hub

📚 Docs: https://open-lingua.github.io/ielts-mastery-hub/docs/intro/


Disclaimer: this is an independent, non-commercial educational project. Not affiliated with or endorsed by the British Council, IDP Education, or Cambridge Assessment English. IELTS is a registered trademark of its respective owners. Practice content is AI-generated for educational purposes and may not be 100% accurate.


I'd love to hear from anyone who's prepared for IELTS (or any English exam) — what did you wish existed while you were studying? And if you're a dev curious about Tauri, the codebase is open and contributions are very welcome.

I'll be around all day answering questions in the comments 🙌

IELTS Mastery Hub — MIT-licensed desktop app for IELTS exam prep (Tauri + Rust + TypeScript)

· 2 min read

IELTS Mastery Hub — MIT-licensed desktop app for IELTS exam prep (Tauri + Rust + TypeScript)

Hey folks,

Sharing a project I've been working on: IELTS Mastery Hub, a desktop app for practicing the IELTS English exam. MIT licensed, no account required, no telemetry, no subscription — just a native binary you run locally on Windows, Linux, or macOS.

Demo video:

Why I built it: basically every IELTS prep tool out there is SaaS. You get two free mock tests, then a paywall, and your essays and progress data live on someone else's server. That felt like an obviously solvable problem with a local-first app.

What it does:

  • 📖 Reading — split-screen timed practice covering the official question types, auto-scored
  • 🎧 Listening — audio sections with progressive difficulty
  • ✍️ Writing — dual-pane editor with AI evaluation across the official IELTS scoring criteria
  • 📊 Dashboard — score history and progress tracking over time

Stack: TypeScript frontend with a Rust core, packaged with Tauri. Went with Tauri over Electron mainly for the binary size and memory footprint — it's a study tool you leave open for hours, so a 200MB Chromium process per session felt wrong. Happy to talk through the architecture if anyone's curious about Tauri for real-world apps; the IPC boundary between the TS side and the Rust core was the most interesting design decision.

Install:

macOS / Linux:

curl -fsSL https://open-lingua.github.io/ielts-mastery-hub/install/install.sh | sh

Windows (PowerShell):

irm https://open-lingua.github.io/ielts-mastery-hub/install/install.ps1 | iex

If you (reasonably) don't want to pipe curl into a shell, just build it from source:

git clone https://github.com/open-lingua/ielts-mastery-hub.git

Repo: https://github.com/open-lingua/ielts-mastery-hub Docs: https://open-lingua.github.io/ielts-mastery-hub/docs/intro/

Disclaimer: independent, non-commercial, educational project. Not affiliated with or endorsed by the British Council, IDP Education, or Cambridge Assessment English — IELTS is a registered trademark of its respective owners. Practice content is AI-generated for educational use and may not be 100% accurate.

Contributions welcome — issues, PRs, packaging help (AUR/Flatpak/winget in particular), and content review from anyone who's actually taken the exam. Would love feedback on the UX and on the Tauri setup. AMA in the comments.

Built a cross-platform IELTS exam prep desktop app with Tauri + a Rust core (MIT licensed)

· 3 min read

Built a cross-platform IELTS exam prep desktop app with Tauri + a Rust core (MIT licensed)

Hey r/rust,

Sharing something I've been building for the last while: IELTS Mastery Hub, a desktop app for practicing the IELTS English exam. TypeScript frontend, Rust core, packaged with Tauri. MIT licensed, runs on Windows, Linux, and macOS.

Demo video:

Repo: https://github.com/open-lingua/ielts-mastery-hub

The problem it solves (non-Rust part, briefly): IELTS prep tools are almost all subscription SaaS, and a lot of them don't even match the real exam format. This one is free, runs locally, and does timed reading/listening sections with auto-scoring, plus a writing editor with AI evaluation against the official scoring criteria and a dashboard for progress over time.

The Rust part, which is why I'm posting here:

  • Why Tauri over Electron: it's a study tool people leave open for 2–3 hour mock exam sessions. Shipping a whole Chromium runtime for that felt indefensible on both binary size and RSS. Tauri's system-webview approach made the tradeoff easy, at the cost of dealing with WebView2/WebKitGTK differences.
  • Where the Rust core actually earns its keep: exam session state, timers, scoring, and persistence all live on the Rust side rather than in the frontend. That means the timer can't drift or be paused by a stalled render, and scoring logic isn't something a user can trivially poke at from devtools. The frontend is essentially a view layer over commands.
  • The IPC boundary was the main design question. Getting the granularity right — chatty per-keystroke commands vs. coarse batched state syncs — took a couple of rewrites. Ended up with an event-driven model where Rust emits state transitions and the frontend subscribes, rather than polling.
  • Cross-platform pain points: webview inconsistencies (as always), audio playback behavior for the listening sections, and signing/packaging for three targets in CI. Happy to go into detail on any of these.

Try it:

macOS / Linux:

curl -fsSL https://open-lingua.github.io/ielts-mastery-hub/install/install.sh | sh

Windows (PowerShell):

irm https://open-lingua.github.io/ielts-mastery-hub/install/install.ps1 | iex

Or just build it:

git clone https://github.com/open-lingua/ielts-mastery-hub.git

Docs: https://open-lingua.github.io/ielts-mastery-hub/docs/intro/

Disclaimer: independent, non-commercial, educational project. Not affiliated with or endorsed by the British Council, IDP Education, or Cambridge Assessment English — IELTS is a registered trademark of its respective owners. Practice content is AI-generated for educational purposes and may not be 100% accurate.

Would really appreciate a critical eye on the Rust side — crate structure, error handling, and the command/event layer especially. Issues and PRs welcome, and happy to answer anything about the Tauri setup in the comments.

Shipped a real-world Tauri app: cross-platform IELTS exam prep (open source, MIT)

· 3 min read

Shipped a real-world Tauri app: cross-platform IELTS exam prep (open source, MIT)

Hey r/tauri,

Wanted to share a Tauri app I actually shipped rather than another todo demo: IELTS Mastery Hub, a desktop app for practicing the IELTS English exam. TypeScript frontend, Rust core, MIT licensed, running on Windows, Linux, and macOS.

Demo video:

Repo: https://github.com/open-lingua/ielts-mastery-hub

What it does: timed reading sections in a split-screen layout with auto-scoring, listening sections with audio playback, a dual-pane writing editor with AI evaluation against the official scoring criteria, and a dashboard tracking scores over time. Free, no account, runs locally.

Tauri-specific notes, since that's why you're here:

  • Why Tauri: users keep this open for 2–3 hour mock exam sessions. An Electron-sized footprint for a study tool was a non-starter — the system webview approach won on both bundle size and memory.
  • What lives in Rust vs. the frontend: exam session state, timers, scoring, and persistence are all in the Rust core. The timer being owned by Rust rather than a JS interval was a deliberate call — no drift, no pausing when a render stalls, and scoring logic isn't sitting in devtools waiting to be edited. The frontend is basically a view layer over commands.
  • IPC granularity was the hardest design decision. Started chatty (a command per interaction), which got noisy fast. Ended up event-driven: Rust emits state transitions, the frontend subscribes. Much cleaner, and it made the "resume an in-progress exam" feature almost free.
  • Audio in the listening section is where webview differences bit hardest — WebKitGTK vs. WebView2 behavior around playback and preloading needed real workarounds.
  • CI packaging for three targets (plus signing) took longer to get right than several features did. Happy to share the workflow config if anyone's fighting that.

Install:

macOS / Linux:

curl -fsSL https://open-lingua.github.io/ielts-mastery-hub/install/install.sh | sh

Windows (PowerShell):

irm https://open-lingua.github.io/ielts-mastery-hub/install/install.ps1 | iex

Or build from source:

git clone https://github.com/open-lingua/ielts-mastery-hub.git

Docs: https://open-lingua.github.io/ielts-mastery-hub/docs/intro/

Disclaimer: independent, non-commercial, educational project. Not affiliated with or endorsed by the British Council, IDP Education, or Cambridge Assessment English — IELTS is a registered trademark of its respective owners. Practice content is AI-generated for educational purposes and may not be 100% accurate.

The codebase is open if you want to poke at how the command/event layer or the bundling config is set up. Would genuinely welcome feedback on the IPC design — I suspect there's a more idiomatic pattern I've missed. AMA about the Tauri side in the comments.