Skip to content

Releases: panteLx/BetterShift

v2.2.1

04 Apr 00:31
v2.2.1
1b0dd49

Choose a tag to compare

📦 What's Changed

✨ Features

🔧 Chores

  • chore: Bump versions for Next.js, React, and related dependencies (#140) 0d5cc2a
  • chore: edit-shift border shadow 808ffd3

Full Changelog: v2.2.0...v2.2.1

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v2.2.1
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v2.2.1 - Specific version
  • latest - Latest stable release

v2.2.0

17 Jan 14:56
v2.2.0
bf47780

Choose a tag to compare

📦 What's Changed

✨ Features

🔧 Chores

  • chore: Update Copilot instructions for clarity and structure ca1a4f4
  • chore: Switch to React Query polling & optimistic updates from SSE (#123) dfee67d

Full Changelog: v2.1.0...v2.2.0

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v2.2.0
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v2.2.0 - Specific version
  • latest - Latest stable release

v2.1.0

10 Jan 17:48
v2.1.0
caba74e

Choose a tag to compare

📦 What's Changed

✨ Features

  • feat: Add ARM64 support for Docker builds (#116) 56d6ba1
  • feat: Implement server timezone handling for iCalendar exports (#114) e3c7233
  • feat: Adds build metadata, build-info API and admin panel build infos (#110) 5c3dde9
  • feat: Block requests when system is unhealthy (#108) 1695eb2

🐛 Bug Fixes

🔧 Chores

Full Changelog: v2.0.1...v2.1.0

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v2.1.0
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v2.1.0 - Specific version
  • latest - Latest stable release

v2.0.1

03 Jan 19:28
v2.0.1
e0357cb

Choose a tag to compare

📦 What's Changed

📝 Documentation

  • docs: Update README description and improve formatting; replace images with new versions 6bc925e
  • docs: Add logo image to README e74016d
  • docs: Revise README with new description and screenshots 7389741

🔧 Chores

  • chore: implement health check endpoint and update Dockerfile health check command 710b98d

Full Changelog: v2.0.0...v2.0.1

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v2.0.1
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v2.0.1 - Specific version
  • latest - Latest stable release

v2.0.0

03 Jan 16:23
v2.0.0
45934ac

Choose a tag to compare

BetterShift v2.0.0 Release Notes

Overview

BetterShift v2.0 transforms BetterShift from a single-user application into a fully-featured multi-user platform with authentication, calendar sharing, and admin management capabilities. This release maintains 100% backward compatibility - existing installations continue working without any changes.

⚠️ Breaking Changes: Authentication is enabled by default. You must set BETTER_AUTH_SECRET and BETTER_AUTH_URL in .env before updating, or disable auth with AUTH_ENABLED=false. See Migration section below for details.

Check out the migration guide in docs/MIGRATION_AUTH_TOGGLE.md.


Major Features

Authentication & User Management

  • Multiple auth methods: Email/Password, OAuth (Google, GitHub, Discord), Custom OIDC
  • Session management: 7-day duration, multi-device tracking, revocation on all devices
  • First user auto-promoted to Superadmin
  • Optional: Disable via AUTH_ENABLED=false for single-user mode

Calendar Sharing (3 Methods)

  1. User Shares: Invite by email, role-based permissions (Owner/Admin/Write/Read)
  2. Access Tokens: Secure share links with optional expiration and usage tracking
  3. Guest Access: Public calendars with configurable permissions (None/Read/Write)

Calendar Discovery

  • Browse shared/public calendars with three-tab interface
  • Subscribe/dismiss/restore calendars without unsharing
  • Smart filtering prevents duplicate subscriptions

Admin Panel (/admin)

Full-featured interface with role-based access (Superadmin, Admin, User):

  • Dashboard: System statistics, orphaned calendar warnings, quick actions
  • User Management: List/edit/delete users, ban system with reasons, password reset, role assignment
  • Calendar Management: View all calendars, transfer ownership, bulk operations, orphaned calendar handling
  • Audit Logs: Complete activity trail with filtering by action/severity/date/user
Permission Superadmin Admin User
User/Calendar Management Full Regular users only None
Ban/Delete Yes No No
Audit Logs Delete View No

See docs/ADMIN_PANEL.md for details.

Security

  • Rate Limiting: All endpoints protected (auth, calendar ops, admin actions)
  • Audit Logging: All security events tracked (auth, calendar, share, security, sync)
  • CSRF Protection: Better Auth origin validation, SameSite cookies, security headers
  • Session Security: HttpOnly cookies, HTTPS-only mode, session rotation

See docs/AUTH_SETUP.md for configuration.

Activity Logs

Personal timeline at /profile/activity with merged audit + sync logs and advanced filtering

UI/UX

  • Fullscreen loading (no skeleton flicker), optimistic updates
  • Mobile-responsive design with horizontal scrolling tables
  • Tab-based share management interface
  • Lock icons and tooltips for read-only access

Key Changes

  • 6 new database tables (auth, shares, tokens, subscriptions, dismissals, audit logs)
  • 30+ new API routes for auth, sharing, admin, activity logs
  • Hybrid permission system (Better Auth + custom logic)
  • Simplified environment variables (no more NEXT_PUBLIC_ duplicates)

See .env.example for complete configuration reference.


Documentation

Complete documentation available in /docs folder:

  • README.md: Quick start guide and overview
  • docs/AUTH_SETUP.md: Authentication configuration (OAuth, OIDC, session management)
  • docs/ADMIN_PANEL.md: Admin panel guide (roles, user/calendar management, audit logs)
  • docs/PERMISSIONS.md: Permission system and sharing workflows
  • docs/MIGRATION_AUTH_TOGGLE.md: Enable auth on existing installations

Migration & Compatibility

⚠️ Important: Auth is enabled by default in v2.0. You must configure environment variables before updating.

BEFORE updating to v2.0:

  1. Add required environment variables to .env:

    AUTH_ENABLED=true
    BETTER_AUTH_SECRET=$(npx @better-auth/cli secret)
    BETTER_AUTH_URL=http://localhost:3000  # Your instance URL
  2. OR disable auth for single-user mode:

    AUTH_ENABLED=false

After updating:

  1. Pull changes: git pull origin main
  2. Restart: docker-compose up -d (migrations run automatically)
  3. If auth enabled: Register first user (becomes Superadmin)
  4. Assign existing calendars via Admin Panel (/admin/calendars)

See: docs/MIGRATION_AUTH_TOGGLE.md for detailed instructions.


Installation

New Installation:

git clone https://github.com/pantelx/bettershift.git
cd bettershift
cp .env.example .env  # Configure AUTH_ENABLED, BETTER_AUTH_SECRET
docker-compose up -d  # or: npm install && npm run dev

Updating:

git pull origin main
docker-compose up -d --build  # Migrations run automatically

See README.md and docs/ for detailed instructions.


Future Enhancements

Email verification, Two-factor authentication, IP ban system, Advanced statistics, Notification system


Full Changelog: v1.8.0...v2.0.0

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v2.0.0
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v2.0.0 - Specific version
  • latest - Latest stable release

v1.8.0

24 Dec 01:01
v1.8.0
56f5add

Choose a tag to compare

📦 What's Changed

✨ Features

  • feat: Replaces manual color controls with centralized ColorPicker (#97) 938f673
  • feat: Add event support to notes (color + recurring) (#94) fb4a407
  • feat: Adjusts theme color lightness aa1c7b8
  • feat: Adds day highlighting with custom weekdays & color (#90) 803c3bd
  • feat: Enforce hooks and replace native confirms (#88) 37b0e74
  • feat: Adds calendar comparison mode and related UI/logic (#85) 5461a9d
  • feat: Adds PWA support and related build/assets (#84) 83efd21
  • feat: Migrates form dialogs to Sheets UI (#83) 2f6fbe9

🔧 Chores

  • chore: Centralize calendar update and stats fetching into hooks (#89) 8e3e759
  • chore: update @swc/core and add overrides for @swc/helpers eb86968

Full Changelog: v1.7.0...v1.8.0

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v1.8.0
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v1.8.0 - Specific version
  • latest - Latest stable release

v1.7.0

19 Dec 00:52

Choose a tag to compare

📦 What's Changed

✨ Features

  • feat: Adds calendar export (#82) 10f86d7
  • feat: Add advanced shift statistics with charts and i18n updates (#80) 0775259
  • feat: Add drag-and-drop reordering for shift presets (#79) 9cc8eb1
  • feat: Adds option to hide preset header (#76) 90ee9fe
  • feat: Consolidates calendar delete and preset management (#72) c676423

🐛 Bug Fixes

  • fix: Do not Track all-day shifts for accurate average duration calculation 033b98d
  • fix: update Buy Me a Coffee link to the correct URL b54719c

🔧 Chores

  • chore: regenerate package-lock 4f5b48c
  • chore: update feature request template to make proposed solution optional 885b904

Full Changelog: v1.6.2...v1.7.0

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v1.7.0
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v1.7.0 - Specific version
  • latest - Latest stable release

v1.6.2

13 Dec 23:15
v1.6.2
5b47bbd

Choose a tag to compare

📦 What's Changed

✨ Features

🐛 Bug Fixes

  • fix: update Next.js version to 16.0.10 in package.json and package-lock.json 539a1c6

Full Changelog: v1.6.1...v1.6.2

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v1.6.2
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v1.6.2 - Specific version
  • latest - Latest stable release

v1.6.1

13 Dec 20:52
v1.6.1
2b513fe

Choose a tag to compare

📦 What's Changed

🐛 Bug Fixes

  • fix: update banner & loading skeleton in calender grid (#69) 6cc6df1

Full Changelog: v1.6.0...v1.6.1

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v1.6.1
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v1.6.1 - Specific version
  • latest - Latest stable release

v1.6.0

13 Dec 11:51
v1.6.0
789ba4a

Choose a tag to compare

📦 What's Changed

✨ Features

  • feat: Adds update checks and changelog UI (#65) 963e020
  • feat: Adds skeleton loading states (#64) 5272521
  • feat: Enhance shift display with unified hidden shifts count (#63) d1103e2
  • feat: Add shift duration tracking to stats and enhance UI (#61) 91a883e
  • feat: customize sort order of shifts; Refactor calendar UI (#53) 9a4fd87 - Only applies for shifts added to the calendar grid after this release!

🔧 Chores

  • chore: Add Italian language support and enhance version management features in README 5e611f9
  • chore: Improve robustness and state handling (#57) a517332
  • chore: gh workflow (#54) 277928c

Full Changelog: v1.5.0...v1.6.0

🐳 Docker Image

docker pull ghcr.io/panteLx/BetterShift:v1.6.0
docker pull ghcr.io/panteLx/BetterShift:latest

Available tags:

  • v1.6.0 - Specific version
  • latest - Latest stable release