Skip to content

Latest commit

ย 

History

125 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

KinKudos

A private, self-hosted family app for tasks, points, goals, and rewards.
Turn everyday family tasks into visible progress. Children see what to do and work toward rewards, while parents review progress and keep the rules clear and fair. KinKudos runs on infrastructure you choose and administer, so you decide where your family data is stored.

๐Ÿš€ Try the live demo ยท ๐Ÿ“š Documentation ยท ๐ŸŒ Visit the website ยท ๐Ÿ“ฆ Latest release ยท ๐Ÿ‡ฑ๐Ÿ‡น Lietuviลกkai

Latest GitHub release Docker pulls MIT License

โœจ See it in action

KinKudos welcome screen

Welcome
A simple starting point for children and parents.

KinKudos child missions dashboard

Child missions
Tasks, themed points, rewards, and visible progress.

KinKudos parent settings

Parent controls
Parents manage family rules, points, scratch tickets, and other settings.

KinKudos mobile welcome screen KinKudos mobile parent dashboard KinKudos mobile child dashboard

Use KinKudos comfortably from a phone, tablet, or computer.

KinKudos Superhero HQ child theme

A world of their own
Children can choose visual themes with their own wording and point units.

Screenshots contain fictional demonstration data.

๐Ÿ”„ How it works

  1. ๐Ÿ“ A parent creates or assigns a task.
  2. โœ… A child completes it and submits the result.
  3. ๐Ÿ‘€ A parent reviews and approves the work.
  4. ๐ŸŽฏ The child receives points and works toward a reward or savings goal.

๐Ÿ’œ Why KinKudos?

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Clear for parents

Keep tasks, approvals, points, and rewards in one place while retaining control over family rules and final decisions.

๐ŸŽฎ Progress children can see

Children can view their tasks, collect themed points, request rewards, and save toward longer-term goals.

๐Ÿ”’ Private by design

One installation serves one household. There is no public registration, advertising, profiling, or built-in analytics inside the family app.

๐Ÿ  Yours to control

Run KinKudos on your own home server or VPS and decide where your family's data is stored.

๐ŸŽฏ What families can do

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง Family workflow

  • Tasks, daily assignments, and parent approvals
  • Rewards, savings goals, point gifts, and birthday awards
  • Child proposals and parent decisions
  • Point corrections, penalties, and configurable credit
  • A visible point history

๐ŸŽจ Child experience

  • Seven original visual themes with their own wording, sounds, and point units
  • Child-friendly PIN sign-in from a paired browser or installed PWA
  • Optional sounds and Web Push notifications
  • Optional parent-controlled scratch tickets

๐Ÿ” Privacy and control

  • One family per installation
  • No public registration, advertising, profiling, or built-in analytics
  • Uploaded task photos are resized, converted to WebP, and stripped of EXIF metadata
  • Optional encrypted remote backups
  • English and Lithuanian interfaces

๐Ÿก Built for family life

KinKudos is not a workplace task manager adapted for children. It is designed around real family routines: simple tasks, parent approval, visible progress, themed points, rewards, and longer-term goals.

โœ… Is KinKudos right for you?

A good fit if

  • you want one private space for one household;
  • you already run a home server or VPS, or are willing to set one up;
  • someone can maintain Docker, updates, HTTPS, and backups;
  • you prefer control over a hosted subscription.

Probably not a good fit if

  • you want to register and start without any server setup;
  • you need several unrelated families in one installation;
  • you expect commercial support or a service-level agreement;
  • you need location tracking, parental surveillance, or banking features.

Read whether KinKudos fits your family and explore the KinKudos documentation before installing.

๐Ÿš€ Try the live demo

Explore the parent and child workflow without installing anything:

  • Demo: demo.kinkudos.app
  • Parent username: demo
  • Parent password: demo
  • Child PIN: 1234

The public demo contains fictional data and resets every hour, so you can experiment freely.

๐Ÿณ Install KinKudos on your server

KinKudos runs on AMD64 and ARM64 Linux servers with Docker Engine and the Docker Compose plugin.

You will also need:

  • a hostname or domain;
  • HTTPS through a reverse proxy such as Caddy, Nginx, or Traefik;
  • basic Linux and Docker administration skills.

For a fresh server that already has Docker Engine and Docker Compose:

curl -fsSL https://kinkudos.app/install.sh -o /tmp/kinkudos-install.sh \
  && sh /tmp/kinkudos-install.sh

The guided installer downloads the latest published KinKudos release, verifies its SHA256 checksum, creates the required application directories and configuration, and starts KinKudos with Docker Compose. The first family and parent administrator are then created securely in the browser; optional SMTP can be skipped and configured later. CLI administration remains available for recovery and advanced operations.

The command is for a new installation. Existing installations must use the documented update process.

Manual Docker Compose setup

For a custom or already managed server, use the official release files in the deploy/ directory. Start from the configured compose.yml in that directory, not from an isolated Compose snippet.

This is not a first-install command. The Compose file mounts secrets from the server's ../secrets/ directory; Docker Compose does not generate those files. Before initialization, prepare the hostname or domain, HTTPS, reverse proxy, and any required environment variables.

On a new deployment root, initialize it first as the non-root deployment user:

cd /opt/kinkudos/deploy
./bootstrap.sh

The bootstrap script creates the persistent directories, generates the Django, VAPID, setup, backup-agent, and restic secrets, creates the local proxy overlay, and starts the services. It also creates an empty smtp_password file when SMTP is disabled. Only after this initialization should you use the raw Compose command below to start an already prepared deployment:

docker compose up -d --pull always

Keep the image pinned to a released version for predictable deployments:

image: vooz2/kinkudos:<version>

Using latest is an intentional choice to follow the newest stable image. After the containers start, open the HTTPS hostname and complete the first-time setup in the browser. The Compose deployment preserves its database and uploaded media in persistent storage; back up those directories and secrets separately.

๐Ÿ‘‰ Choose an installation method

The documentation also covers HTTPS, updates, backups, recovery, diagnostics, and troubleshooting.

โ˜๏ธ No home server?

A small Docker-capable VPS is usually one of the simpler ways to run KinKudos privately on the internet. KinKudos works with any suitable VPS provider. Hostinger VPS is one available option for users who prefer a guided commercial service.

Deploy on Hostinger

Referral offer: The link may provide a discount or other benefit on eligible Hostinger services, depending on the current offer. I may also receive a commission at no additional cost to you. Hostinger is optional and is not an official KinKudos partner.

The link opens Hostingerโ€™s Docker VPS selection and passes the KinKudos Compose URL to Docker Manager. After choosing a VPS, provide your hostname and private setup token; finish the first family setup in the browser. Follow the Hostinger VPS step-by-step guide. Hostinger is a paid external service; KinKudos remains free and self-hosted.

โš™๏ธ Architecture

  • Django 5.2
  • Server-rendered HTML
  • Vanilla JavaScript PWA
  • SQLite in WAL mode
  • Gunicorn
  • WhiteNoise
  • Docker
  • Web Push with VAPID

No Node.js runtime, SPA framework, or public API is required for normal operation.

๐Ÿ’ก Why I built KinKudos

I wanted a simple and private way to manage family tasks, points, and rewards without relying on a hosted service.

I am not a professional software developer. KinKudos also began as a practical experiment: could I use OpenAI Codex to turn a real family problem into a maintainable, tested, and documented open-source application?

The project grew from that experiment into software used in a real household and published for other families who may find it useful.

OpenAI Codex has assisted extensively with implementation, refactoring, tests, documentation, and release preparation. Product direction, requirements, review, validation, infrastructure, releases, and ongoing maintenance remain my responsibility.

๐Ÿ›ก๏ธ Security and privacy

KinKudos is designed as a private space for one household.

  • Parent accounts use rate-limited password authentication.
  • Children use a paired browser or installed PWA together with a rate-limited PIN.
  • Point changes are transactional and added to a visible point history.
  • Task photos, database files, backups, and credentials stay outside the public source repository.
  • Optional encrypted remote backups support Backblaze B2 and S3-compatible storage.
  • KinKudos contains no advertising, profiling, or built-in analytics inside the family app.
  • Family data is not sent to a KinKudos-operated cloud service.

Self-hosting gives you control, but it also makes you responsible for HTTPS, server security, updates, and tested backups.

Read SECURITY.md for vulnerability reporting and security support information. Additional privacy and server-security guidance is available in the KinKudos documentation.

Report unpatched security vulnerabilities privately, never in a public GitHub issue.

๐Ÿ“š Documentation

The complete documentation is available at docs.kinkudos.app.

Useful starting points:

๐Ÿ“Œ Project status and support

KinKudos is actively maintained and used in a real household.

Support is provided on a best-effort basis, without a service-level agreement or guaranteed response time. Only the latest published release is supported. Users should review release notes and maintain tested backups before updating.

๐Ÿง‘โ€๐Ÿ’ป Local development

KinKudos requires Python 3.12. After creating a virtual environment and installing the dependencies from requirements.txt:

python scripts/compile_translations.py
python manage.py migrate
python manage.py test economy.tests
python manage.py runserver

The seed_demo command is development-only and refuses to modify a non-empty database.

Before changing authentication, permissions, point accounting, backup behaviour, or deployment logic, read the repository documentation and existing tests.

๐Ÿค Contributing and feedback

Bug reports, documentation corrections, translations, and focused pull requests are welcome. For larger changes, open an issue first to discuss the use case and scope.

The in-app feedback form sends feedback to the administrator of that KinKudos installation. It does not contact the KinKudos project maintainer.

Do not publish passwords, secret keys, private family photos, database files, backup files, personal information, or unredacted logs in GitHub issues.

โ˜• Support KinKudos

KinKudos is free and open source. If it is useful to your family, you can support its continued maintenance with a one-time coffee.

Support helps cover the domain, public demo, documentation, testing, and other project infrastructure. It does not provide priority support, guaranteed features, faster issue resolution, or influence over security decisions.

Support KinKudos on Buy Me a Coffee

๐Ÿ“„ License

KinKudos is open-source software distributed under the MIT License.

The software is provided as-is, without warranty of any kind.

About

A private, self-hosted family app for tasks, points, goals, and rewards.

Topics

Resources

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages