Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: new blog post "Introduce aw-tauri" #34

Open
wants to merge 22 commits into
base: master
Choose a base branch
from
Open
Changes from 21 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
5c96d48
feat: Introduce aw-tauri as a lightweight, cross-platform alternative…
brayo-pip May 3, 2024
e19a25d
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 3, 2024
9e488ba
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 3, 2024
4bec6e9
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 3, 2024
d81f656
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 3, 2024
96dd276
Minor formattting
brayo-pip May 4, 2024
830a496
feat: briefly mention Aw-sync
brayo-pip May 4, 2024
ec8b2fd
feat: fix broken link
brayo-pip May 4, 2024
f0deff7
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 8, 2024
3c806ad
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 8, 2024
a10f9d1
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 8, 2024
03f04fb
Update _posts/2024-05-5-introducing-tauri.md
brayo-pip May 8, 2024
bb2e37e
Update dates
brayo-pip May 8, 2024
043f9fd
Final touches
brayo-pip May 12, 2024
838b7c1
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip May 15, 2024
0a93666
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip May 15, 2024
f06073a
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip May 15, 2024
68c0580
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip May 15, 2024
96bbdd6
move user experience up. add autostart as a feature
brayo-pip May 16, 2024
4805cb6
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip Jul 8, 2024
38c888c
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip Jul 8, 2024
14f469b
Update _posts/2024-05-13-introducing-tauri.md
brayo-pip Jul 8, 2024
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
43 changes: 43 additions & 0 deletions _posts/2024-05-13-introducing-tauri.md
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Avoid renaming the file before we publish, it makes it hard to read the diff.

Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
layout: post
A lighter faster ActivityWatch with Tauri: now available for testing
brayo-pip marked this conversation as resolved.
Show resolved Hide resolved
date: 2024-5-13 16:35 +0300
author: "Brian Vuku"
author_twitter: "subrupt"
---

We're excited to introduce a new initiative [`aw-tauri`](http://github.com/ActivityWatch/aw-tauri), which is a lighter, faster cross-platform repackaging of ActivityWatch. As the name implies the project is built with [Tauri](https://tauri.app), a relatively new Rust-based toolkit that enables easy development of small, fast, and secure applications with a great developer experience.

## Why Tauri

Tauri apps are lightweight, memory efficient and secure by design. Tauri does not ship a renderer but uses the platform native renderer via WebViews. This simple design choice makes the app size compact and memory efficient during runtime, as compared to electron apps. Tauri apps are secure, only interacting with the host systems through Tauri APIs.

## User Experience

`aw-tauri` aims to replace the functionality that is currently implemented in [`aw-qt`](https://github.com/ActivityWatch/aw-qt) and [`aw-notify`](https://github.com/ActivityWatch/aw-notify). Creating a new Rust-powered entrypoint for running ActivityWatch and its modules. With [`aw-server-rust`](https://github.com/ActivityWatch/aw-server-rust) as the default server, it leads to a reliable and highly performant application. Reliability and performance is very important for apps like ActivityWatch, which always run in the background and collect data that is otherwise lost.

`aw-tauri` is designed to be a drop-in replacement for `aw-qt` and `aw-notify`, with the following improvements:

- It houses its own webview, no need to visit `http://localhost:5600` in your browser anymore.
- Watchers can be started and stopped right from the trayicon, just like in `aw-qt`.
- Updates can be pushed seemlessly across platforms provided by tauri's update system!
- [aw-sync](https://github.com/ActivityWatch/aw-server-rust/tree/master/aw-sync), which is still in active development, will be integrated into the app. Syncing data across devices will be just as seamless.
- Autostart on boot, is built into the app, no need to set up systemd services for linux users.

This is just the beginning, it serves as the baseline for many more improvements to come.

## Developer Experience

`aw-tauri` is built with [aw-server-rust](https://github.com/ActivityWatch/aw-server-rust) serving the backend together with [aw-webui](https://github.com/ActivityWatch/aw-webui). We have taken care to keep the codebase lean and clean, such that it takes very little time to get acquainted with the codebase.

In our current build process for Python modules like `aw-qt`, we rely heavily on PyInstaller for building into binaries. This has been an enduring source of problems, and many developer weeks (if not months) have been spent trying to work out all the issues over the years (especially macOS support, because of the need to codesign a very messy `.app` bundle).

With Tauri, they have handled most of the heavy lifting, and make it easy to produce working binaries for all target platforms. Much of this is simply due to Rust (avoids PyInstaller and its complexity), but also the added tooling for codesigning, and producing suitable bundles for each platform: on Linux you get a lightweight `.AppImage`, on Windows a `.msi` installer, and `.app` on macOS.

## Conclusion

`aw-tauri` is still in active development, contributions are welcome and encouraged!

Check out the [README](https://github.com/ActivityWatch/aw-tauri/blob/master/README.md) to see the status of development, and where you can help out.

We are hopeful that it will help solve many of our remaining challenges, and are excited to see it help shape the future of ActivityWatch.
Comment on lines +37 to +43
Copy link
Member

@ErikBjare ErikBjare Jul 8, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to add links here to an early release that people can test themselves (possibly with many caveats).