Strivio-PM is a free, Streamlit-powered project manager for solo builders, students, and small teams. Create projects, manage tasks/subtasks directly in editable tables, and explore a Project Analytics view (timeline + status barcharts + workload) to stay on track. Ships with SQLite by default and can run on Postgres/Supabase via DATABASE_URL.
- Simple sign-in: type your email to enter.
- Projects
- Name, start & end date editing, invite members, rename, delete.
- Private via Project PIN or public toggle.
- Tasks & Subtasks (inline table editing)
- Add/modify rows directly in the grid (status, dates, assignee email, progress %).
- Clean tables (IDs hidden), dynamic add/remove, bulk CSV import.
- Project Analytics (new)
- Timeline (Gantt) for tasks + subtasks.
- Distribution by Status (horizontal bars).
- Workload by Assignee (horizontal bars).
- Schedule health: days elapsed/remaining, % complete, and At-Risk / Hygiene checks (shows "All good" if nothing concerning).
- Collaboration
- Multi-user via email invites (roles: owner, editor, viewer).
- Persistence
- Default: SQLite (
strivio.db). - Optional: Postgres/Supabase by setting
DATABASE_URL.
- Default: SQLite (
- Export
- Download timeline CSV from Analytics.
- Branding / UI
- Polished tab pills, progress number in tables, centered branding, helpful sidebar Contacts.
- Streamlit 1.50+
- Plotly (timeline)
- Pandas (tables)
- SQLAlchemy + SQLite (default) or Postgres/Supabase (optional)
-
Create / Open a project
- In the sidebar, New project -> set Name, Start, End, optional member emails, and public/PIN.
- Use Open project to switch projects.
- Manage current project: rename, change start/end dates, or delete.
-
Tasks & Subtasks (inline)
- Go to Tasks tab.
- Edit directly in the grid (Status, Start/End, Assignee, Progress %).
- Add/remove rows; click Save changes to persist.
- Subtasks: pick a parent task, then edit its grid the same way.
- CSV import supported (see on-screen column order).
-
Project Analytics
- Shows Timeline, Distribution by Status, Workload by Assignee, and a quick health panel.
- If no risks are detected, the panel explicitly states nothing is out of order.
- Run locally:
pip install -r requirements.txt->streamlit run main.py. - Uses SQLite by default; no external setup.
Keep it simple: same code, just point to your DB.
- Create a Postgres/Supabase project.
- Apply your schema/migrations (SQL file in
db/or your existing tables). - Set environment variable:
DATABASE_URL=postgresql://...(or use Supabase connection string). - (Optional but strongly recommended) enable RLS + minimal policies and/or quota triggers (e.g., project/task caps).
- Deploy to Streamlit Cloud/Render/Vercel with that env var.
Why this split?
- Demo keeps onboarding friction low.
- BYOS gives teams full control, avoids quota limits, and keeps data private.
DATABASE_URL(optional): if not set, app falls back to SQLite.STREAMLIT_SECRETS(optional) can also carryDATABASE_URLin hosted environments.
-
Project analytics Tab:
-
Member Tab:
MIT
- Per-project burndown, due-soon alerts.
- Optional task templates / CSV export for tasks/subtasks.
- Supabase starter SQL + RLS policy snippets packaged in
/sql/.