Skip to content

v0.3.0 — Five themes, full i18n, file manager

Choose a tag to compare

@AmmarSaleh50 AmmarSaleh50 released this 21 Apr 20:43
· 92 commits to main since this release

Big visual + localization release. Five dashboard themes, full English/German i18n, per-course schedule CRUD, a proper file manager in the Files tab, and a pile of phone-UX fixes. All backwards compatible — just run the one new migration on upgrade.

Added

  • Five dashboard themes. Pick from Classic (the default — serif, airy), Terminal (mono, teal-on-black, hacker cockpit), Zine (pastel cream + hand-drawn stickers), Library (sepia, card-catalog aesthetic), or Swiss (12-col grid, red accent). Each is a full reskin — its own sidebar, CSS, and dashboard route, not just a palette. Picker in Settings → Theme.
  • Full in-app i18n — English and German. Every route, form, toast, empty state, error message, and theme-specific prose runs through i18next. Language picked explicitly in Profile → Language, persisted in localStorage, decoupled from the date-format locale.
  • Per-course schedule CRUD. Add / edit / delete weekly slots from the course-detail Schedule tab without leaving the page.
  • File manager. Rename files and folders, recursive folder delete, create new folders, plus a folder picker on the course form so each course scopes its Files tab to a specific prefix in the bucket. New backend endpoints /files/move, /files/folder, and a recursive listing helper.
  • Claude Design prompt template under docs/claude-design-prompt.md plus four worked-example outputs under docs/examples/ — the starting points for the Terminal / Zine / Library / Swiss themes.

Changed

  • Phone UX pass. 16px form inputs (no more iOS zoom-on-focus), dvh for keyboard-aware layout, date-picker chrome contained inside its Field on iOS Safari, classic-theme weekly grid now renders the same multi-column time grid on phone (with horizontal scroll) instead of a stacked list.
  • Course edit affordance moved from a hover overlay to an explicit Edit course button in the course-detail header. Notes and exam editing split into their own cards with their own edit buttons. "Scheduled" field on exams relabeled to "Exam date".
  • Dashboard top strip on phone shows weekday / date / semester / week at a glance.
  • Settings pickers (timezone, date format) auto-save on change; the semester-label text field gets an inline Save button while dirty. Success toasts are neutral now, not green.
  • README hero replaced with a 2×2 still collage of the four paper themes plus a looping GIF of Terminal. Mirrored in the German section.

Upgrade from v0.2.0

git pull origin main
npx supabase db push   # applies 20260421000001_theme.sql
cd web && pnpm install && pnpm build

The migration adds app_settings.theme with default 'editorial', so existing rows land on the Classic theme until you pick something else.

Full changelog: v0.2.0...v0.3.0