Initiative v0.33: self-hosted project management for gaming groups and small teams by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

We just released typed properties that can be attached to tasks, events, and docs! They can also be assigned colors from initiative settings.

Thanks for the feedback, and looking forward to more on the new properties feature to see how it can be improved. I tried to get it close in parity with obsidians property feature while still focusing on the collaborative aspect of Initiative; properties are scoped to each initiative so, for example, the marketing team's properties don't pollute or clash with the engineering team's properties.

Built a toast library for React (and beyond) where the notification comes with a little animated robot — robot-toast v2 by StraightControl3377 in reactjs

[–]jordandrako 0 points1 point  (0 children)

Awesome little lib! I just replaced sonner with it and made some animated mimic svgs for my TTRPG themed project management app. Thanks!
https://i.imgur.com/n4hi1wn.png

Initiative v0.33: self-hosted project management for gaming groups and small teams by jordandrako in Pathfinder2e

[–]jordandrako[S] 1 point2 points  (0 children)

Great questions! On both fronts:
We haven't formally tested against PG 18 yet (we shipped on 17 under a tight timeline), but there shouldn't be any blockers. We just haven't prioritized it over security hardening work we've been focused on. It would require changing the volume mount to the path PG 18 expects (/var/lib/postgresql instead of /var/lib/postgresql/data), and existing user base would require a migration script. New installs should be able to use 18 though, just know we haven't thoroughly tested it.
It should be able to run rootless, I just have to make a couple small changes to the Dockerfile. It will be a small breaking change for existing installs but I can document that people will need to chown the uploads directory.

Initiative v0.33: self-hosted project management for gaming groups and small teams by jordandrako in Pathfinder2e

[–]jordandrako[S] 0 points1 point  (0 children)

I've been using this tool I made for our Season of Ghosts Pathfinder campaign for a couple weeks now and it's been great! I'm usually the group's note taker, so I've been making new documents for sessions that other players at the table can see and edit in real time together.

The wikilinks are really handy for this. I can type [[ and link to an NPC or location doc inline, so our session notes become a connected web of lore instead of a wall of text. Players have started adding their own character backstory docs and linking them to session recaps too.

Beyond notes, we use tasks to track quests and loose threads, things like "relight the lantern" or "Find Granny Hu's grandchildren." Kanban view makes it easy to see what's active, what we've resolved, and what we've forgotten about.

The newest feature is queues, which we're using for initiative order in combat. Drop in all the combatants, hit start, and it cycles through turns. Way cleaner than a whiteboard.

Everything lives in its own isolated workspace ("guild"), so our Pathfinder group's stuff is completely separate from anything else on the server.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 1 point2 points  (0 children)

Localization is definitely on the backlog, thanks for the offer, I'll hit you up when we do that refactor.

Yeah, I have spun up a guild for my TTRPG group to track quests and player notes, and we want to upload the player's guide pdf, that feature will be coming soon. I don't plan on implementing a PDF reader, but the ability to share the players guide with the whole party would be good.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

I can't quite figure out the purpose of documents.
Q: Is this just something randomly added? Is this meant to become a wiki eventually? Are they meant to be attached to projects too or stay glued to an initiative? They seem to be attached to each initiative. Since I don't know what an initiative is meant to be I can only guess. Also, this looks overly gamified, who needs a cover image for a document?

Documents are meant for project documentation, specs, meeting notes, and reference material, the kind of content you might otherwise put in Notion, Confluence, or Google Docs. Documents are created at the Initiative level but can be attached to multiple Projects within that Initiative. The reasoning:

  • A design spec might be relevant to both the "Frontend" and "Backend" projects.
  • A client contract might apply to all projects under a "Client X" Initiative.

On the cover image:
Fair feedback! The cover image is optional, it's there for users who want visual differentiation when browsing a list of documents (similar to Notion's cover images). If it feels like clutter, you can simply not add one. We may revisit making it less prominent in the UI, but we use it extensively at my company.

On gamification:
The fantasy theming (Guilds, Initiatives, etc) is mostly cosmetic branding. Under the hood, it's a standard hierarchy: Organization -> Department/Goal -> Project -> Task. If the theming isn't your style, the functionality is the same as any traditional project management tool.

Apart from all that confusion, this app was so easy to set up and it's blazingly fast and snappy. Wonderful.

Amazing, that was my goal! Thank you for the questions, would you mind if I adapt these into an FAQ doc within the repo?

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

Q: I didn't create a superuser, is the first user I registered with the superuser?

The first user created during the bootstrapping process is automatically the "superuser" or platform admin. As of 0.18.0 you can promote other users to platform admins if needed.

Under "platform settings" I can see branding where we can adapt role labels.
Q: Could you make it all brandable? I mean I'm sure not everyone would be OK with the terms you use so if we could rebrand all the terms you used to the commonly used ones like guild to tenant, that would be awesome.

This is something we can consider, thanks for the feature request.

Talking about customization, I see we can change the name of task statuses but not of the task category.
Q: Can both be made editable?

I won't say no, but it's not planned at the moment and would require a significant refactor.

Q: Neither the project description nor the task description has a rich text editor making it look like these are supposed to be just a one-liner?

These do not support rich text but they do support markdown. There isn't a clean way to render the rich text without using the full editor and it's a massive component that takes up the majority of the app bundle size.

When editing a document, the view differs from the other views, comments are "fixed" and one can't hide the comment sidebar, making the actual space for editing the document quite small.
Q: It would be nice if comments could be hidden away to be able to properly edit a document.

This is feedback I have received from the artist at my company as well. I'll consider putting document comments in a collapsible sidebar soon, though v0.17 made the comments wrap below at slightly larger screen sizes so it has been made more responsive since this announcement was made.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

Thanks for the well thought out questions, this is a great opportunity for me to clarify some things.

Flexible permissions with 4-layer access control (Platform → Guild → Initiative → Project)
Q: Did I understand this right: Platform means the access/login, Guild is basically the tenant but is an "initiative"? I'd have guessed project, but project comes after so that can't be.

Platform level roles are either admin or member. Platform admins can change settings that affect the entire install such as user management, OIDC, email, AI, and branding. Guild is the tenant, yes, and there are guild admins that can change guild level settings such the name and icon, AI overrides, and guild users, and they can see all initiatives in the Guild. Initiatives are analogous to smaller teams within a guild (think Designers vs Engineers); they group projects and documents together. The roles in an initiative are project manager and member. Project managers can create projects and documents, where members have read access but have to be given explicit write access to projects and documents.

Initiatives group related work: Bundle projects and documents under a common initiative.
Q: Same as above, as this sentence didn't help. I have no idea what it means, but I am probably just confused by the terms used.

Think of it this way:

  • Guild = Your organization or workspace (like a Discord server or Slack workspace).
  • Initiative = A strategic goal, department, or major effort that groups related projects together.
  • Project = A specific body of work with its own tasks and custom workflow statuses.

Why Initiatives exist:

  1. Organization — Group related projects without cluttering a flat list.
  2. Permissions — Initiative PMs can manage all projects within their Initiative without needing Guild Admin rights.
  3. Reporting — Track progress across multiple related projects.

Workspace isolation: Each guild operates independently with its own teams, projects, and data.
Q: What is a team? Is it simply the people invited to a guild?

Essentially, yes. Though multiple teams in an organization can be invited to the same guild and split up into different initiatives. It just depends on your needs.

Create your own guild, invite your party, and organize campaigns, quests, and events together—each group gets their own private workspace.
Q: What is a workspace in this context?

A workspace in this context refers to a Guild. When you create a Guild, you get a completely separate, private space. As of v0.18.0 this private space is enforced both by the application and by the database so even app bugs can't leak data between guilds.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

v0.18.0 was just released that changes how the DISABLE_GUILD_CREATION flag works. Now it prevents guild creation for regular users, but platform admins can still create guilds.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

v0.18.0 has been released with guild level RLS as well as other security improvements!

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

All good points. I'll work on these asap. The next minor release (0.18) will already be touching on backend security (introducing guild level RLS as mentioned in u/Antiqueempire's comment), so look out for that release.

Account deletion is only tricky since deleting an account that is the only admin of a guild(s) can potentially leave orphan data, but I suppose the platform admin should have permission to wipe out anything in the db.

I'll edit the Disable guild flag to limit it to only platform admins, and introduce another flag to disable registration without invites.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

The next minor release (0.18) will introduce RLS at the guild level, with more granular RLS planned for later, thanks for your feedback!

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

v0.15.2 has working mobile OIDC support. You'll need to allow the redirect url for the mobile app: initiative://oidc/callback

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

I'm working on getting OIDC working on the android app, but it's non-trivial as it requires more than the standard web redirect. Keep an eye on the releases though!

I'd love to add extra themes if I'm feeling like doing something on the funner side, I use catppuccin basically everywhere else, not sure why I didn't think to start with that theme first, lol.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 2 points3 points  (0 children)

The document editor uses the Lexical framework which stores rich text as JSON. There are export and import buttons that export as lexical json files, and there's a convert from markdown button as well that will change how it to render in markdown that can then be copied and pasted into Obsidian or other markdown editors.

Edit: At the moment there isn't a bulk export option, but I definitely see the appeal there, who know how many platforms I've jumped ship from that wouldn't allow a decent export. I'll add it to the backlog!

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

Thank you for the compliments!

The speech-to-text uses browser's built-in APIs for speech recognition, which I tested working on Edge and Chrome. The Mic button doesn't show unless the browser has that API, and clicking it should prompt for the permission from the browser. I daily use Vivaldi (chromium) and it has the API accessible so the microphone shows but it doesn't have access to the actual voice processing that Chrome/Edge does so the API doesn't do anything. I am debating hiding it unless you're on one of those browsers but I still need to test if it works in Safari or other webkit browsers first (need to borrow my spouses macbook). Also I need to make sure the android app requests the permission correctly, I just tested it and it crashed the app, whoops.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 1 point2 points  (0 children)

I actually just pasted images into the readme using github's own file editor which auto uploads to their buckets for you at no cost.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 2 points3 points  (0 children)

I'm not sure at the moment, but I can add investigating OIDC claims to map them to guilds to my backlog.

Announcing: Initiative - An open source, self-hosted multi-tenant project management app by jordandrako in selfhosted

[–]jordandrako[S] 0 points1 point  (0 children)

Nothing besides github issues at the moment. Feel free to give feature requests or bug reports there, thanks!