Desktop app for hackatime :)
Find a file
leafdbot[bot] 832a610693
chore(main): release app 1.7.5 (#67)
Co-authored-by: leafdbot[bot] <192038741+leafdbot[bot]@users.noreply.github.com>
2025-10-24 15:57:29 -06:00
.github fix: update hackatime url 2025-10-24 17:43:55 -04:00
public feat: big bang 2025-10-03 12:23:17 -04:00
src fix: make option enabled by default 2025-10-24 17:53:30 -04:00
src-tauri chore(main): release app 1.7.5 (#67) 2025-10-24 15:57:29 -06:00
.gitattributes feat: big bang 2025-10-03 12:23:17 -04:00
.gitignore chore(ci): add linters (#22) 2025-10-05 00:10:10 -06:00
.release-please-manifest.json chore(main): release app 1.7.5 (#67) 2025-10-24 15:57:29 -06:00
.trivyignore chore(ci): add linters (#22) 2025-10-05 00:10:10 -06:00
CHANGELOG.md chore(main): release app 1.7.5 (#67) 2025-10-24 15:57:29 -06:00
config.json fix: update api base url 2025-10-03 18:31:14 -04:00
index.html feat: big bang 2025-10-03 12:23:17 -04:00
LICENSE chore: add license 2025-10-14 19:24:52 -06:00
package.json chore(main): release app 1.7.5 (#67) 2025-10-24 15:57:29 -06:00
pnpm-lock.yaml chore: update pnpm lock 2025-10-10 15:51:45 -04:00
README.md chore: update readme with download buttons 2025-10-10 12:34:28 -04:00
release-please-config.json fix: change package path 2025-10-03 14:16:21 -04:00
SECURITY.md chore: add security policy 2025-10-14 19:33:46 -06:00
tailwind.config.js feat: home page redesign (#40) 2025-10-07 14:42:16 -04:00
tsconfig.json feat: big bang 2025-10-03 12:23:17 -04:00
tsconfig.node.json feat: big bang 2025-10-03 12:23:17 -04:00
vite.config.ts fix: make timeout asisignable to number 2025-10-09 16:15:29 -04:00

Hackatime Desktop

Download for macOS Download for Windows

Release

Desktop app for Hackatime. Built with Tauri, Vue 3, TypeScript, and Rust.

🛠️ Tech Stack

  • Frontend: Vue 3, TypeScript, Tailwind CSS, Chart.js
  • Backend: Rust (Tauri v2)
  • Build Tools: Vite, pnpm
  • CI/CD: GitHub Actions with Release Please

📦 Installation

Build from Source

Prerequisites

Build Steps

# Clone the repository
git clone https://github.com/hackclub/hackatime-desktop.git
cd hackatime-desktop

# Install dependencies
pnpm install

# Run in development mode
pnpm tauri dev

# Build binaries
pnpm tauri build

🤝 Contributing

We welcome contributions! Please follow the guidelines below to ensure smooth collaboration.

Commit Message Convention

This project uses Conventional Commits for automated versioning and changelog generation via Release Please.

Commit Format

<type>: <description>

[optional body]

[optional footer(s)]

Types

Use these commit types for Release Please to automatically detect changes:

  • feat: - A new feature

    git commit -m "feat: add Discord RPC integration"
    
  • fix: - A bug fix

    git commit -m "fix: resolve authentication timeout issue"
    
  • chore: - Maintenance tasks, CI/CD, dependencies

    git commit -m "chore: update dependencies"
    git commit -m "chore(ci): update release workflow"
    

Breaking Changes

For breaking changes that require a major version bump (e.g., 1.0.0 → 2.0.0), add BREAKING CHANGE: in the commit body or use ! after the type:

git commit -m "feat!: migrate to new API v2" -m "BREAKING CHANGE: requires new authentication flow"

Workflow

  1. Fork the repository

  2. Create a feature branch:

    git checkout -b feat/my-new-feature
    # or
    git checkout -b fix/bug-description
    
  3. Make your changes and commit using conventional commits:

    git add .
    git commit -m "feat: add new statistics chart"
    
  4. Push to your fork:

    git push origin feat/my-new-feature
    
  5. Create a Pull Request to the main branch

🔄 How Release Please Works

This project uses Release Please for automated releases. Here's how it works:

Automated Release Process

  1. Commit with Conventional Commits - When you merge commits to main using the conventional commit format (feat:, fix:, chore:)

  2. Release PR Creation - Release Please automatically:

    • Analyzes commit messages since the last release
    • Determines the next version number based on semantic versioning:
      • feat: → minor version bump (1.0.0 → 1.1.0)
      • fix: → patch version bump (1.0.0 → 1.0.1)
      • Breaking changes → major version bump (1.0.0 → 2.0.0)
    • Creates/updates a Release PR with:
      • Updated CHANGELOG.md
      • Bumped version in package.json
      • Bumped version in src-tauri/tauri.conf.json
  3. Release PR Review - The automatically created PR will show:

    • All changes since the last release
    • New version number
    • Updated changelog
  4. Merge to Release - When the Release PR is merged to main:

    • A new GitHub Release is created with the version tag (e.g., app-v1.2.0)
    • The release workflow builds binaries for all platforms
    • Binaries are automatically uploaded to the S3 release bucket
    • The auto-updater manifest is updated for in-app updates

🐛 Issues & Support

Found a bug or have a feature request? Please open an issue on the GitHub Issues page.


Made with ❤️ by Hack Club