Skip to main content

5 posts tagged with "tauri"

View All Tags

IELTS Mastery Hub on X — free, open-source IELTS practice

· One min read

1/

IELTS prep tools: 2 free tests, then a paywall 💸

So I built a free one. Open source, MIT.

📖 Reading (auto-scored) 🎧 Listening ✍️ Writing w/ AI feedback 📊 Progress dashboard

Desktop app — Win/Linux/macOS 🦀

github.com/open-lingua/ielts-mastery-hub

🎥👇


2/

Built with Tauri: TypeScript frontend + Rust core.

Mock exams run 3 hrs — shipping a whole Chromium for that felt wrong. Small native binary instead.

Timers + scoring live in Rust, so no drift, no devtools cheating.

#RustLang #Tauri #BuildInPublic


3/

One line to install:

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

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


4/

Independent, non-commercial educational project. Not affiliated with or endorsed by the British Council, IDP or Cambridge. IELTS is a trademark of its owners. Practice content is AI-generated — may not be 100% accurate.


5/

If you're prepping for IELTS, I'd love to know if the formats feel realistic.

If you're a dev, the Tauri/Rust side is open to poke at.

Try it, break it, tell me what's wrong 🙏 ⭐ if it's useful

#IELTS #OpenSource #LearnEnglish

I scratched my own itch and built a desktop app for IELTS exam prep — here's what I learned

· 3 min read

I scratched my own itch and built a desktop app for IELTS exam prep — here's what I learned

Hey everyone,

The advice that finally got me past tutorial hell was "build something you personally need." For me that was IELTS prep — every decent practice tool is a subscription, and the free ones give you two mock tests and then a paywall. So I built my own, and it turned into a much bigger learning experience than I expected.

It's called IELTS Mastery Hub: a free, open source (MIT) desktop app for Windows, Linux, and macOS. Timed reading and listening practice with auto-scoring, a writing editor with AI feedback, and a dashboard that tracks your scores over time.

Quick demo video:

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

Things I actually learned building it:

  • Picking the stack is less important than finishing. I went with TypeScript + Rust via Tauri, and I burned an embarrassing amount of time researching that decision before writing a line of code. In hindsight, almost any stack would have taught me the same lessons.
  • State management is the real hard part. Not the UI, not the styling — deciding where the exam timer and score state live, and who owns it. I rewrote that layer twice. If you've ever wondered why people make such a fuss about architecture, build something with a timer and persistence and you'll find out.
  • "Works on my machine" is a whole discipline. Getting it to build and package for three operating systems in CI took longer than several actual features. Nobody warns you about this in tutorials.
  • Shipping > perfect. v1 was ugly. Real users found bugs I never would have.

If you're looking for a first open-source contribution, the repo is genuinely beginner-friendly — there are UI tweaks, docs improvements, and small bug fixes that don't require touching the Rust core. I'm happy to walk anyone through their first PR.

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 clone and build it yourself (good exercise in itself):

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.

Happy to answer questions about any of it — the code, the mistakes, or how to get started contributing. Ask away 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.