A simple, open-source, data-focused, free and privacy-first habits tracker.
Explore the docs »
Important
CCV is currently in active development. Star and watch this repository to get notified of updates.
Warning
Even if thoroughly tested, this project was not reviewed by a security expert. CCV decline all liability in case of data loss or breach. Please use at your own risk.
CCV focuses on your data. Create a habit schema, log entries, get reminders, and track progress without fluff.
- Create unlimited habits from a variety of data types (number, boolean, text, multiple choice, etc)
- Log your habits using a simple and mobile-friendly interface
- Set up to two daily reminders (push, email, optional Discord webhook)
- Sync across devices via Google Sign‑In
- Analyze progress with configurable dashboards and time ranges
- Manage your data with import/export on JSON/CSV
- Full privacy-first approach: zero-knowledge architecture, all data encrypted end-to-end
CCV is available for free at ccv.nikit.app !
If you prefer a custom installation, you can deploy it yourself by following the instructions below.
Tip
Please make sure to have Deno installed (version 2.5 or higher).
Warning
The Docker integration is currently experimental with the new crypto architecture. Please report any issue you may encounter.
Fresh allows for easy deployment using Docker.
Before starting, make sure to set up the environment variables and the ccv config file. You can copy both example files and modify them as needed:
cp .env.example .env
cp ccv.example.json ccv.json# Build the image. BUILD_REVISION is optional, but recommended for version tracking. It can be a git commit hash or tag.
docker build --build-arg BUILD_REVISION=$(git rev-parse --short HEAD) -t ccv-image .
# Run the container
docker run -d --name ccv --restart unless-stopped -p 3000:3000 --env-file .env -v ./db/kv.sqlite3:/data ccv-imageCCV can be deployed EA Deno deploy.
- Fork this repository to your own GitHub account.
- Go to the Deno deploy dashboard and connect your Github account.
- Create a "New project".
- Select your account, and the forked repository.
- Click on "edit build config", ans set "Framework preset" to "Fresh" (Is hould have
deno task buildas build command, andmain.tsas entrypoint). - Click on "Add environment variable" and import your
.envfile. - Click on "Create app".
- Navigate to "Databases".
- "Provision new database", select "Deno KV" and set the name.
- Then on your database, "assign" it to your project.
- Your project should now be deployed!
To update your deployment you can either :
- Push to the main/dev branch. It will respectively deploy on the production/preview environment.
- Deploy using the Deno CLI:
# First check that the deno.json `deploy` target your current organization/project
DENO_DEPLOY_TOKEN=your_token_generated_in_deploy_user_settings deno task [deploy|deploy-prod]- Manually trigger a redeploy from the Deno deploy dashboard.
You can deploy and run CCV locally using Docker or by running it directly with Deno.
# Run as development server
deno task start
# Or build and run the production server
deno task previewCheck the roadmap at CCV.
The TODOS.md file for the current tasks, future features, and known issues.
We absolutely welcome contributions! To contribute, please follow these guidelines:
- Fork the repository and create your branch from
dev(ex.git checkout -b feature/new-feature). - Commit your changes
- Write clear, concise commit messages. If you have multiple changes, create a muli-line commit message. Il like to use gitmoji for my messages.
- Ensure your code adheres to the existing style and conventions
- Test your changes thoroughly
- Push your branch to your forked repository.
- Open a pull request against the
devbranch of the main repository.
CCV, as its core, is built with:
- Deno - A modern runtime for JavaScript and TypeScript
- Fresh - A next-gen web framework for Deno
- Deno KV - A distributed key-value database built into Deno
- Tailwind CSS and DaisyUI - Utility-first CSS framework and component library
- KV-toolbox - A set of utilities and patterns for working with Deno KV
- Deno KV OAuth - OAuth2 integration for Deno KV
