Skip to main content

Projectify

Projectify is a free software project management software that anyone can use, inspect, customize and distribute according to their needs.

Official instance: https://www.projectifyapp.com.

PyPI package: projectify-app

Try it out

Try out a demo instance on your own computer

Here's how you can quickly spin up a demo instance on your own computer:

python -m venv projectify
projectify/bin/pip install projectify-app[demo]
projectify/bin/projectify-demo

Open http://localhost:8100 in your browser and press Log in in the top right. Use these demo credentials:

  • Email: admin@localhost
  • Password: password

Development quickstart

To develop with Projectify, you need the install these programs:

  • Python version 3.12 or greater
  • uv
  • Node.js version 24 or greater

Read the Installing Python and Node.js section to learn how to install Python and Node.js with asdf.

After making sure that you've added the dependencies, follow these steps to start developing with Projectify. With these steps, SQLite works out of the box and no database setup is needed.

  1. Clone this repository:
git clone git@github.com:jwpconsulting/projectify.git
  1. Install all Python and Node dependencies:
uv sync --all-groups && npm ci
  1. Create a .env environment file by copying the .env.template file.
cp .env.template .env
  1. Prepare the database:
# Create the Projectify database with test data and users. Log in with
# Email: admin@localhost
# Password: password
uv run ./manage.py seeddb
  1. Start the Django development server and Tailwind CSS with honcho:
# running `uv sync --all-groups` already installed honcho.
# Honcho runs two programs at the same time for you:
# 1. Django development server at http://localhost:8000
# 2. Tailwind CSS watcher to rebuild stylesheet
uv run honcho start

Once you have done all of this, go to Django administration page at http://localhost:8000/admin/. The seeddb command created an administrator account with the following credentials for you:

  • Email: admin@localhost
  • Password: password

Log in using these credentials and you have full access to the administration page. Please don't use these credentials in production.

You're done!

Installing Python and Node.js

Managing Python and Node.js versions is convenient using asdf:

asdf plugin-add python
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf install python 3.12.12
asdf install node.js 24.13.1

Here's how to install asdf on your computer.

uv

Here's how to update a specific package. Let's say you want to update the PyJWT package because of a vulnerability report (CVE-2026-32597). Run the following uv command to update the PyJWT version used in Projectiy:

uv lock -P pyjwt

You should see something like the following:

Resolved 114 packages in 491ms
Updated pyjwt v2.11.0 -> v2.12.1

Make sure to run the bin/update-requirements script afterwards. This script updates the requirements.txt file in the repository. Updating PyJWT to version 2.12.1 results in the following diff for the requirements.txt file:

-pyjwt==2.11.0 \
    --hash=sha256:35f95c1f0fbe5d5ba6e43f00271c275f7a1a4db1dab27bf708073b75318ea623 \
    --hash=sha256:94a6bde30eb5c8e04fee991062b534071fd1439ef58d2adc9ccb823e7bcd0469
+pyjwt==2.12.1 \
    --hash=sha256:28ca37c070cad8ba8cd9790cd940535d40274d22f80ab87f3ac6a713e6e8454c \
    --hash=sha256:c74a7a2adf861c04d002db713dd85f84beb242228e671280bf709d765b03672b

Formatting

Format the Projectify code using ruff and djlint with the following command:

uv run bin/format.sh

Tests

Run tests with pytest and other testing tools with the following command:

uv run bin/test.sh

Production deployment

Refer to docs/django-configuration.md to learn more about how to configure Projectify in production.

Copyright and licencing information

To look for files missing copyright and licencing information:

uv run reuse lint

Neovim

You can use Neovim with the Pyright Language Server Protocol (LSP) server. To make sure that Neovim uses the right Pyright from this repository, run neovim inside uv:

uv run nvim

Nix

You can use the included flake.nix Flake file to open a Nix Flake shell with all development dependencies:

  1. Download Nix: https://nixos.org/download/ (skip if you use NixOS)
  2. Enable Nix Flakes: https://wiki.nixos.org/wiki/Flakes#Enabling_flakes_permanently
  3. Open a Nix Flake shell by running nix shell in your terminal

Alternatively, configure direnv and nix-direnv to automatically jump into a Nix flake shell.

Translations

Projectify uses Django's built-in GNU gettext-based translation. Learn more about Django's translation features here.

You can update the translation files by running the following commands:

uv run ./manage.py makemessages --ignore=bin/ -l en --ignore='gunicorn.conf.py' --ignore=manage.py

Develop with PostgreSQL

While SQLite works well for many use cases, you may want to deploy or develop Projectify with PostgreSQL. Projectify on www.projectifyapp.com uses PostgreSQL as its main database. Projectify supports PostgreSQL version 15.5 or greater.

Here's how to install PostgreSQL:

  • On macOS (using Homebrew): brew install postgresql
  • On Debian: sudo apt install postgresql libpq-dev
  • On other systems: See the PostgresSQL documentation

Check whether you can connect to your local PostgreSQL instance by using the following command:

psql

If you've installed PostgreSQL correctly, you should see the following prompt:

psql (15.14)
Type "help" for help.

debian=#

Press Ctrl+d to exit psql.

To connect to PostgreSQL from Projectify, you need to install additional dependencies with uv sync:

# This installs the dependencies from above, as well as everything needed
# for PostgreSQL
uv sync --all-groups --extra postgresql

Then, create a database using the createdb PostgreSQL command:

createdb projectify

Make sure that you've configured the DATABASE_URL string in the .env file to point at your PostgreSQL projectify database. These are the values for DATABASE_URL when connecting to PostgreSQL:

  • Connect to UNIX domain socket on Debian: DATABASE_URL = postgres://%2Fvar%2Flib%2Fpostgresql/projectify
  • Connect to UNIX domain socket on macOS: DATABASE_URL = postgres://%2Ftmp/projectify

This uses the %2F encoding as described in the dj-database-url URL schema documentation:

With PostgreSQL or CloudSQL, you can also use unix domain socket paths with percent encoding: postgres://%2Fvar%2Flib%2Fpostgresql/dbname mysql://uf07k1i6d8ia0v@%2fcloudsql%2fproject%3alocation%3ainstance/dbname

docs/postgresql.md contains pointers on how to troubleshoot using Projectify with PostgreSQL.

License

Projectify is licensed under the GNU Affero General Public License Version 3 or later. Some third party dependencies are vendored in and available under their respective licenses. Please review the license files contained in the LICENSES directory located in the Projectify repository.

See AUTHORS.txt file for the list of contributors.

Projectify is a registered trademark by JWP Consulting GK.

Metadata

Release files for projectify-app 2026.7.26

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for projectify-app 2026.7.26
File Size Uploaded Provenance Actions
projectify_app-2026.7.26.tar.gz 2.3 MB Without provenance Details for projectify_app-2026.7.26.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for projectify-app 2026.7.26
File Interpreter ABI Platform Actions
projectify_app-2026.7.26-py3-none-any.whl Python 3 none any Details for projectify_app-2026.7.26-py3-none-any.whl

Total release size: 4.8 MB

Release files / projectify_app-2026.7.26.tar.gz

Download URL projectify_app-2026.7.26.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
d675ab5e67212610b2e63ca4931e6d2084f2a1fe82bd4e009aba0f252315618f
BLAKE2b-256 checksum
How to use checksums
cecdb4e25da8410facc9cdbe933c11150179c3fa4f16292dc534d1b34cfa0989
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / projectify_app-2026.7.26-py3-none-any.whl

Download URL projectify_app-2026.7.26-py3-none-any.whl
Size 2.5 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5041c2350f2eda540f7ad8f26d1bfc491f9d18e4f9a256d955ac45bc62f133b5
BLAKE2b-256 checksum
How to use checksums
e9df978ce9f205d283dd9b97a7f7834177b258b5be723a5c893f45a0cf586ce8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for projectify-app 2026.7.26

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page