Migrate your ]project-open[ data
Enterprise open-source PM and ERP hybrid built on OpenACS, covering project management, CRM, financial controlling, and ticketing as a single integrated stack. Best suited for mid-to-large organizations willing to invest in self-hosted infrastructure and configuration.
In its favor
Why people choose ]project-open[
The signal that keeps ]project-open[ on the shortlist. Sourced from G2, Capterra, and customer scoping calls.
Complete project lifecycle coverage from task planning and resource management through financial controlling and billing in a single integrated platform, eliminating the need to stitch together multiple tools.
Open-source licensing under GPL means no per-seat or per-module subscription costs for the Community Edition, making it significantly cheaper than proprietary ERP-PM bundles at scale.
Highly modular architecture allows organizations to activate or deactivate specific functional areas — project management, CRM, ticketing, financial reporting — to match exactly their operational scope.
Visibility and transparency for non-technical stakeholders: business managers and clients can monitor IT projects and financial metrics without needing technical knowledge of the underlying system.
Being open source eliminates vendor lock-in — organizations own their data and can audit, extend, or self-host without dependence on a commercial vendor's roadmap or pricing decisions.
The user interface is dated and the learning curve is steep, requiring significant training investment before teams can operate productively — a common reason teams migrate to more modern SaaS alternatives.
Self-hosting and maintaining ]project-open[ demands dedicated technical resources for server management, upgrades, and troubleshooting, which becomes a burden for organizations without an in-house DevOps capability.
Performance degrades with large data volumes and complex module configurations, pushing organizations with growing datasets toward platforms that handle scale more gracefully without intensive tuning.
Enterprise support and commercial extension costs become expensive at scale, eroding the cost advantage that initially attracted teams to the open-source Community Edition.
Reasons to switch
Why people leave ]project-open[
The recurring reasons buyers give for replacing ]project-open[. Presented as facts, not knocks.
Platform scorecard
Strengths, weaknesses, and where ]project-open[ fits
Grades across six dimensions, plus a SWOT-style view of where the platform shines and where it falls short.
SWOT — strengths, weaknesses, and use-case fit
Strengths
Weaknesses
Where it works
Where it struggles
Pricing tiers
]project-open[ pricing overview
The Community Edition is completely free and self-hosted. Professional and Enterprise editions are commercial subscriptions priced per named user per month — exact figures require a sales inquiry. There is no per-seat or per-feature licensing for Community, making large deployments cost-effective compared to proprietary alternatives.
Community Edition
Tier 1 of 3
Free (self-hosted)
What's included
Need help selecting your Project Management?
Book a free 30 minute consultationPricing is informational. FlitStack AI does not bill on ]project-open['s schedule — see our quote-based pricing →
What gets migrated
]project-open[ object support
Object-by-object support for ]project-open[ migrations. Per-pair details surface during scoping.
Projects
Fully supportedProjects are the central Business Object in ]project-open[, keyed by project_id and inheriting from acs_objects. We preserve the full project hierarchy, status lifecycle (potential → active → closed → deleted), and all parent-child relationships via acs_rels join tables.
Tasks / Sub-tasks
Fully supportedTasks are stored as a separate task_id key referencing the project tree. We maintain parent-child task nesting, status_id transitions, and assignments to users or teams by querying the task and acs_rels tables together.
Companies
Fully supportedCompanies are im_companies objects supporting both customer and provider roles via object_type_id. We map company_name, company_status_id, and the type classification. All company-contact relationships are preserved through acs_rels.
Tickets
Fully supportedTickets (im_tickets) use ticket_status_id and ticket_type_id integer keys. We map status/type enumerations, ticket descriptions, assignees, and conversation threads from the ticket and associated message tables.
Costs / Invoices
Fully supportedFinancial records live in im_costs with variable_cost_p as a boolean 't'/'f' char field. We extract invoice amounts, cost types, billing status, and any associated project or company references for accurate financial reconstruction.
Timesheet Entries
Fully supportedTimesheet hours are stored as cost entries linked to users and projects. We preserve the hours logged, date, billing type, and user assignment. Effective-dated entries are supported via the object creation metadata in acs_objects.
Users
Mapping requiredUser accounts are stored across acs_objects and application-specific tables. We map user_id, names, email, permissions, and group memberships. Role-based access control uses privilege hierarchies that require careful mapping to the destination's permission model.
Custom Fields
Mapping requiredCustom fields are stored per-object as dynamic attributes beyond the standard schema. Since the platform allows unrestricted custom field creation, we perform field-level discovery before migration and build a mapping table to align custom attribute names and data types with the destination system.
Offices / Locations
Fully supportedOffice objects store physical location data and are linked to companies and projects via acs_rels. We preserve office name, address, and associations to the relevant business objects.
Categories / Lists
Mapping requiredCategories are stored in a hierarchical category system used to classify objects (e.g., ticket type, project sector). We map category IDs to their string labels and reconstruct the taxonomy in the destination, flagging any categories that lack a direct equivalent.
Documents / Attachments
Mapping requiredDocuments are stored as separate objects with references in acs_objects. Binary files may be stored in the filesystem or database depending on configuration. We identify file storage locations during discovery and ensure attachment references are updated after migration.
Configuration Items
Mapping requiredConfiguration items track IT assets and their relationships, stored as typed Business Objects. We map the CI type, attributes, and any dependency relationships to the destination's asset or configuration management schema.
| Object | Support | Notes |
|---|---|---|
| Projects | Fully supported | Projects are the central Business Object in ]project-open[, keyed by project_id and inheriting from acs_objects. We preserve the full project hierarchy, status lifecycle (potential → active → closed → deleted), and all parent-child relationships via acs_rels join tables. |
| Tasks / Sub-tasks | Fully supported | Tasks are stored as a separate task_id key referencing the project tree. We maintain parent-child task nesting, status_id transitions, and assignments to users or teams by querying the task and acs_rels tables together. |
| Companies | Fully supported | Companies are im_companies objects supporting both customer and provider roles via object_type_id. We map company_name, company_status_id, and the type classification. All company-contact relationships are preserved through acs_rels. |
| Tickets | Fully supported | Tickets (im_tickets) use ticket_status_id and ticket_type_id integer keys. We map status/type enumerations, ticket descriptions, assignees, and conversation threads from the ticket and associated message tables. |
| Costs / Invoices | Fully supported | Financial records live in im_costs with variable_cost_p as a boolean 't'/'f' char field. We extract invoice amounts, cost types, billing status, and any associated project or company references for accurate financial reconstruction. |
| Timesheet Entries | Fully supported | Timesheet hours are stored as cost entries linked to users and projects. We preserve the hours logged, date, billing type, and user assignment. Effective-dated entries are supported via the object creation metadata in acs_objects. |
| Users | Mapping required | User accounts are stored across acs_objects and application-specific tables. We map user_id, names, email, permissions, and group memberships. Role-based access control uses privilege hierarchies that require careful mapping to the destination's permission model. |
| Custom Fields | Mapping required | Custom fields are stored per-object as dynamic attributes beyond the standard schema. Since the platform allows unrestricted custom field creation, we perform field-level discovery before migration and build a mapping table to align custom attribute names and data types with the destination system. |
| Offices / Locations | Fully supported | Office objects store physical location data and are linked to companies and projects via acs_rels. We preserve office name, address, and associations to the relevant business objects. |
| Categories / Lists | Mapping required | Categories are stored in a hierarchical category system used to classify objects (e.g., ticket type, project sector). We map category IDs to their string labels and reconstruct the taxonomy in the destination, flagging any categories that lack a direct equivalent. |
| Documents / Attachments | Mapping required | Documents are stored as separate objects with references in acs_objects. Binary files may be stored in the filesystem or database depending on configuration. We identify file storage locations during discovery and ensure attachment references are updated after migration. |
| Configuration Items | Mapping required | Configuration items track IT assets and their relationships, stored as typed Business Objects. We map the CI type, attributes, and any dependency relationships to the destination's asset or configuration management schema. |
Gotchas
What to watch for in ]project-open[ migrations
Issues we've hit on past ]project-open[ migrations, tagged by severity. FlitStack AI handles every one — surfacing them up front because buyer engineering teams want to know.
No public API forces direct PostgreSQL database access
Boolean fields use 't'/'f' char values not native booleans
Complex acs_objects inheritance and acs_rels traversal
Custom fields require pre-migration field discovery and mapping
Date and datetime storage formats vary across modules
| Severity | Issue |
|---|---|
| High | No public API forces direct PostgreSQL database access |
| Medium | Boolean fields use 't'/'f' char values not native booleans |
| Medium | Complex acs_objects inheritance and acs_rels traversal |
| Medium | Custom fields require pre-migration field discovery and mapping |
| Low | Date and datetime storage formats vary across modules |
Leaving ]project-open[?
Where ]project-open[ customers move next
5 destinations ]project-open[ can migrate to.
How a ]project-open[ migration works
Four steps, ]project-open[-specific
Connect
No public API documented into ]project-open[. Scopes limited to read-only on the data we move.
Map
We translate ]project-open[-specific structures (custom fields, objects, value lists) to the destination's model.
Sample
Test with a 50–200 record subset to validate ]project-open[ quirks before production.
Migrate
Full migration with ]project-open[ rate-limit handling. Rollback available throughout.
FAQ
]project-open[ migration FAQ
Answers to the questions buyers ask most during ]project-open[ migration scoping. Not seeing yours? Book a call.
Can't find your answer?
Walk through your ]project-open[ migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationOther project management tools we support
Ready when you are
Migrate ]project-open[.
Without the rebuild.
Free scoping call with a migration engineer. Tell us about your ]project-open[ setup and destination — written quote back within a business day.