gitmyhub

habitica

JavaScript ★ 14k updated 1d ago

A habit tracker app which treats your goals like a Role Playing Game.

Habitica is an open-source habit tracker that turns your daily tasks and goals into a role-playing game, completing habits earns XP and gold to level up your character, while missing them costs health points, making real-world habit-building as engaging as a video game.

JavaScriptNode.jsExpressMongoDBsetup: moderatecomplexity 3/5

Habitica is an open-source habit-tracking application that frames your daily tasks and goals as a role-playing game. When you complete a habit or daily task, your character gains experience points and levels up. When you miss something you committed to, your character loses health points. Completing tasks also earns in-game gold, which you spend on equipment like weapons and armor for your character. The design borrows the reward mechanics of video game RPGs and applies them to real-world behavior change, betting that a playful layer of consequences and rewards makes habit-building more engaging than a plain checklist.

The service runs at habitica.com as a web application, and the project has published separate mobile apps for Android and iOS in their own repositories. This repository is the core web platform that powers those products.

The technology stack uses JavaScript throughout: Node.js and Express handle the server side, MongoDB stores the data, and the front end is built with standard HTML, CSS, and JavaScript.

The project welcomes outside contributors and tags issues with 'Help Wanted' for tasks that are open to participation. A wiki page called 'Guidance for Blacksmiths' explains how the codebase is organized and how to set up a local development environment. Bug reports go to the admin email rather than GitHub issues, as the team reviews whether a formal issue is actually needed before one is opened. Anyone building a third-party tool using Habitica's public API is directed to review the project's API Usage Guidelines to stay within the rules and avoid disrupting other players' experience on the platform.

Where it fits