Projectify is a Free Software project management app
Project description
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.
Try it out
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:
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.
- Clone this repository:
git clone git@github.com:jwpconsulting/projectify.git
- Install all Python and Node dependencies:
uv sync --all-groups && npm ci
- Create a
.envenvironment file by copying the.env.templatefile.
cp .env.template .env
- 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
- 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:
- Download Nix: https://nixos.org/download/ (skip if you use NixOS)
- Enable Nix Flakes: https://wiki.nixos.org/wiki/Flakes#Enabling_flakes_permanently
- Open a Nix Flake shell by running
nix shellin 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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file projectify_app-2026.3.29.tar.gz.
File metadata
- Download URL: projectify_app-2026.3.29.tar.gz
- Upload date:
- Size: 9.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.29 {"installer":{"name":"uv","version":"0.9.29","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
596222aad97c41105c94ad0612543e62fb8f6d5d331cad7f89ec981f832df9d9
|
|
| MD5 |
d6875b38d2a7c6b99e2d23800505ec76
|
|
| BLAKE2b-256 |
a8b89297fb2326d60a7ec2f3cfa8291e3737ee980e3576a07eb895f6c158cee0
|