Show HN: Firm, a text-based work management system
2 days ago
- #automation
- #work-management
- #text-based
- Firm is a text-based work management system for technologists, designed to unify digital business data.
- It allows businesses to define relationships between customers, projects, tasks, and organizations in plain text files.
- Firm's data is version controlled, locally stored, and structured as code using the Firm DSL.
- Key features include having everything in one place, owning your data, an open data model, automation capabilities, and being AI-ready.
- The Firm CLI can be downloaded via GitHub Releases, with easy installation scripts provided.
- Firm operates on a 'workspace' directory containing .firm DSL files, building a unified, queryable graph of your business.
- Entities can be added interactively via the CLI or by writing DSL manually, supporting pre-built schemas for org mapping, customer relations, and work management.
- Entities can be queried using commands like 'firm list', 'firm get', and 'firm related' to explore connections.
- Firm's core logic can be integrated into custom software using Rust packages 'firm_core' and 'firm_lang' for building automations.
- Firm is organized into three Rust crates: 'firm_core' for core data structures, 'firm_lang' for DSL parsing, and 'firm_cli' for the command-line interface.
- The data model is built on entities with unique IDs, types, and fields, supporting various field types including references to other entities.
- Relationships between entities are created using Reference fields, enabling graph traversal and querying.
- Schemas allow defining and enforcing entity structures for data consistency, with support for custom schemas.
- Firm's entity taxonomy is inspired by the REA model (Resources, Events, Agents) and Schema.org, designed for flexible composition and efficient queries.