LearnOS is a hub for educational resources. Students get their own UI with custom learning modules. User management allows for parental controls. The admin account connects students, parents, teachers and assigns modules to learning accounts. Having a clean user interface and a connected network of organized information is vital to distraction free learning. In addition to the resources listed in this video, the app has other tools and features included that are currently being developed. The final Readme.md will include all of the features, plans, and bugs that are noted within this version.
What started as a humble activity hub for preschoolers has become a fully controlled multi-user system with an administrator panel, and dashboards for students, parents and teachers. This project has evolved into software that can streamline education in a customized classroom environment.
LearnOS is a local-first learning environment designed to grow with a family, a small class, or a mobile teaching space.
Core application
- React / React DOM (https://github.com/react/react) UI framework; MIT.
- Material UI / MUI X (https://github.com/mui/material-ui) component system, icons, scheduler, and tree view; MIT.
- Emotion (https://github.com/emotion-js/emotion) CSS-in-JS styling used by MUI; MIT.
- Tauri (https://github.com/tauri-apps/tauri) desktop app shell and native bridge; Apache-2.0 or MIT.
- read-excel-file (https://github.com/catamphetamine/read-excel-file) Excel .xlsx import support; MIT.
Calendar, scheduling, interaction, and UI support
- date-fns (https://github.com/date-fns/date-fns) and @date-fns/tz date/time utilities; MIT.
Atlassian Pragmatic Drag and Drop (https://github.com/atlassian/pragmatic-drag-and-drop) drag/drop support pulled in by the scheduling UI; Apache-2.0.
Floating UI (https://github.com/floating-ui/floating-ui) positioned menus, popovers, and similar UI elements; MIT.
Popper Core (https://github.com/popperjs/popper-core) positioning engine; MIT.
Base UI (https://github.com/mui/base-ui) lower-level accessible UI primitives; MIT.
React Transition Group (https://github.com/reactjs/react-transition-group) —UI transitions; BSD-3-Clause.
Reselect (https://github.com/reduxjs/reselect) memoized state selectors; MIT.
Stylis (https://github.com/thysultan/stylis) CSS preprocessing used by Emotion; MIT.
tabbable (https://github.com/focus-trap/tabbable) keyboard-focus management; MIT.
clsx (https://github.com/lukeed/clsx) conditional CSS class utility; MIT.
Build, testing, and developer tooling
- TypeScript (https://github.com/microsoft/TypeScript) typed JavaScript compilation; Apache-2.0.
- Vite (https://github.com/vitejs/vite) development server and web build system; MIT.
- Vitest (https://github.com/vitest-dev/vitest) test runner; MIT.
- Rollup (https://github.com/rollup/rollup) production bundler used by Vite; MIT.
- esbuild (https://github.com/evanw/esbuild) fast code transform/bundling support; MIT.
- Babel (https://github.com/babel/babel) JavaScript parsing/transforms used by tooling; MIT.
- DefinitelyTyped (https://github.com/DefinitelyTyped/DefinitelyTyped) React type definitions; MIT.
- Chai (https://github.com/chaijs/chai) test assertions; MIT.
- PostCSS (https://github.com/postcss/postcss) CSS transformation tooling; MIT.
- Magic String (https://github.com/rich-harris/magic-string) source-code editing/sourcemaps; MIT.
- Nanoid (https://github.com/ai/nanoid) ID generation; MIT.
- YAML (https://github.com/eemeli/yaml) YAML parsing in tooling; ISC.
Native Rust layer
- Tauri (https://github.com/tauri-apps/tauri) includes the Rust runtime, build tooling, and logging plugin.
- Serde (https://github.com/serde-rs/serde) Rust serialization/deserialization; MIT or Apache-2.0.
- serde_json (https://github.com/serde-rs/json) JSON support for Rust; MIT or Apache-2.0.
- Rust log (https://github.com/rust-lang/log) Rust logging facade; MIT or Apache-2.0.
Bundled visual assets / fonts
- Inter (https://github.com/rsms/inter) — used by Design Studio through Google Fonts; SIL Open Font License.
- JetBrains Mono (https://github.com/JetBrains/JetBrainsMono) — used by Design Studio through Google Fonts; SIL Open Font License.
Important provenance note
The current Design Studio was copied from the local aryn-design-studio project and renamed by the owner(Lorelei Noble).
The Design Studio currently fetches Inter and JetBrains Mono from Google Fonts at runtime. That is an external network dependency, despite the broader local-first app direction.
The exact, complete package-level inventory including small transitive utilities and platform-specific Rollup/esbuild binaries is locked in apps/homeschool-console/package-lock.json; native crates are locked in apps/homeschool-console/ src-tauri/Cargo.lock.
Built With
- codex
- emotion
- mui
- react
- rust
- tauri
- typescript
- vite
- yaml

Log in or sign up for Devpost to join the conversation.