https://github.com/jonbng/betterlectio
Browser extension to improve Lectio's UI with modern sidebar navigation
https://github.com/jonbng/betterlectio
danmark dk elever gymnasie lectio stx
Last synced: 22 days ago
JSON representation
Browser extension to improve Lectio's UI with modern sidebar navigation
- Host: GitHub
- URL: https://github.com/jonbng/betterlectio
- Owner: jonbng
- License: gpl-3.0
- Created: 2025-12-14T11:25:37.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-05-05T08:49:17.000Z (about 1 month ago)
- Last Synced: 2026-05-05T10:33:20.896Z (about 1 month ago)
- Topics: danmark, dk, elever, gymnasie, lectio, stx
- Language: TypeScript
- Homepage: https://betterlectio.dk/
- Size: 11.3 MB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
BetterLectio
A browser extension that modernizes Lectio, the Danish school management system.
Features •
Installation •
Development •
Tech Stack
---
## Features
- **Modern Sidebar** — Clean navigation with collapsible sections for schedules and changes
- **Fast Search** — Quickly find students, teachers, rooms, and classes with keyboard shortcuts (Cmd/Ctrl+K)
- **Smart Prefetching** — Pages load instantly using Speculation Rules API and hover prefetching
- **Improved Messages** — Two-column layout with folder tree, auto-redirects to newest messages
- **Profile Pictures** — Click to enlarge any profile picture to full size
- **Skeleton Loading** — Smooth transitions with no flash of unstyled content
- **Cross-Page Profiles** — Your profile stays visible when viewing other students' schedules
## Installation
Download [her](https://betterlectio.dk/download)
### From Source
1. Clone this repository
2. Run `bun install` to install dependencies
3. Run `bun run build` for Chrome or `bun run build:firefox` for Firefox
4. Load the extension:
- **Chrome:** Go to `chrome://extensions`, enable Developer mode, click "Load unpacked" and select `.output/chrome-mv3`
- **Firefox:** Go to `about:debugging`, click "This Firefox", click "Load Temporary Add-on" and select any file in `.output/firefox-mv2`
## Development
### Prerequisites
- [Bun](https://bun.sh/) (recommended) or Node.js
### Commands
```bash
# Install dependencies
bun install
# Start development server
bun run dev # Chrome
bun run dev:firefox # Firefox
# Build for production
bun run build # Chrome
bun run build:firefox # Firefox
# Package for distribution
bun run zip # Chrome
bun run zip:firefox # Firefox
```
## Tech Stack
| Technology | Purpose |
|------------|---------|
| [WXT](https://wxt.dev/) | Browser extension framework |
| [Preact](https://preactjs.com/) | Lightweight React alternative (3KB) |
| [TypeScript](https://www.typescriptlang.org/) | Type safety |
| [Tailwind CSS](https://tailwindcss.com/) | Utility-first styling |
| [shadcn/ui](https://ui.shadcn.com/) | UI component system |
| [Radix UI](https://www.radix-ui.com/) | Accessible primitives |
## Browser Support
| Browser | Status |
|---------|--------|
| Chrome | Supported (Manifest V3) |
| Firefox | Supported (Manifest V2) |
| Edge | Should work (untested) |
| Safari | To be released soon |
## Acknowledgements
Name inspired by [BetterLectio](https://github.com/BetterLectio).
## License
GPLv3