Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 72 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,77 @@ _Note: Skola is still in early-ish development. Expect bugs, missing features, a

A modern, open-source spaced repetition application that reimagines flashcard learning with a focus on beautiful design, local-first architecture, and thoughtful user experience. Visit [skola.cards](https://skola.cards) now.

## Running Locally

Skola is a `pnpm` workspace-free single-package app with two entry points:

- the main web app powered by Vite
- an optional Tauri desktop shell in [`src-tauri`](/Users/sergeypogranichniy/WebstormProjects/skola/src-tauri)

### Prerequisites

- Node.js 18+ recommended
- `corepack` enabled so the pinned package manager version can be used
- Rust toolchain only if you want to run the Tauri desktop app

Enable the package manager pinned by the repo:

```bash
corepack enable
corepack prepare pnpm@10.28.2 --activate
```

Install dependencies:

```bash
corepack pnpm install
```

### Run The Web App

Start the Vite dev server:

```bash
corepack pnpm run start
```

The app will be available at [http://127.0.0.1:5173](http://127.0.0.1:5173) or the equivalent localhost URL printed by Vite.

Useful checks:

```bash
corepack pnpm run lint:type
corepack pnpm run build
```

These were verified successfully in this repository on May 11, 2026.

### Run The Tauri Desktop App

The desktop wrapper lives in [`src-tauri`](/Users/sergeypogranichniy/WebstormProjects/skola/src-tauri) and requires a working Rust toolchain. If `cargo` is not installed, `tauri dev` will fail before startup.

Install Rust with [rustup](https://rustup.rs/), then run:

```bash
corepack pnpm exec tauri dev
```

To build the desktop app:

```bash
corepack pnpm exec tauri build
```

### Repo Structure

- [`src/app`](/Users/sergeypogranichniy/WebstormProjects/skola/src/app) contains route-level views and feature UI such as learning, deck management, cards, settings, and shell layout
- [`src/components/ui`](/Users/sergeypogranichniy/WebstormProjects/skola/src/components/ui) contains the shared component primitives and styles
- [`src/logic`](/Users/sergeypogranichniy/WebstormProjects/skola/src/logic) contains application state and domain logic for decks, cards, notes, statistics, and settings
- [`src/logic/db.ts`](/Users/sergeypogranichniy/WebstormProjects/skola/src/logic/db.ts) defines the local Dexie database and optional Dexie Cloud sync
- [`src/i18n`](/Users/sergeypogranichniy/WebstormProjects/skola/src/i18n) contains internationalization setup and locale files
- [`src/style`](/Users/sergeypogranichniy/WebstormProjects/skola/src/style) contains the design tokens and global styles
- [`src-tauri`](/Users/sergeypogranichniy/WebstormProjects/skola/src-tauri) contains the desktop packaging and native app configuration

## Core Features

**Local-First Architecture** — Your data lives in your browser using IndexedDB, ensuring privacy, speed, and complete ownership of your learning materials. No account required.
Expand All @@ -30,7 +101,7 @@ AI is intentionally used sparingly – there's no AI flashcard generation. The a
## Current Limitations

- Statistics view temporarily disabled during UI refactor (will return with lightweight charting)
- Notebook view experimental and under evaluation
- Cards view experimental and under evaluation
- Image occlusion not yet implemented
- Audio support not yet implemented
- Limited note explorer and management features (e.g., bulk editing, tagging)
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
"start": "vite",
"build": "vite build",
"serve": "vite preview",
"test": "vitest run",
"lint": "biome check",
"lint:type": "tsc --noEmit",
"extract": "i18next --config i18next-parser.config.mjs 'src/**/*.{ts,tsx}'",
Expand Down Expand Up @@ -93,7 +94,8 @@
"vite": "5.2.13",
"vite-plugin-checker": "0.6.4",
"vite-plugin-pwa": "^1.2.0",
"vite-tsconfig-paths": "4.3.2"
"vite-tsconfig-paths": "4.3.2",
"vitest": "^2.1.9"
},
"packageManager": "pnpm@10.28.2"
}
Loading