Perfice is an open-source self-tracking platform that helps you track anything you like, and see how different metrics impact other areas of your life. It is built to be heavily customizable and local-first, leaving you in control of your tracking journey.
npm install
npm run dev
npm run build
A basic Dockerfile is provided for building the app with Node and spinning up an nginx server.
Note that the app runs under the /new
subpath.
Perfice is built with Svelte 5, TypeScript, TailwindCSS and leverages IndexedDB for most data storage.
It uses Capacitor to wrap the webapp in a native WebView application for Android.
CAPACITOR=true npm run build && npx cap run android
User accounts, synchronization and integrations require a backend to function. You can set the service URL locally by clicking the globe (🌐) icon on the settings page.
To set a default backend URL, configure the VITE_BACKEND_URL
environment variable in a .env
or .env.development
file in the root of the project.
The backend is currently not open source and the protocol documentation is sadly not yet finished. However, most functionality can be deduced (for the brave) from the code in the auth, integration and sync modules.
Perfice is licensed under the MIT license.
Contributions are always appreciated and welcome! Please open an issue or pull request if you have any suggestions or find a bug.