💡 Inspiration: Why Legal in Jira? Most companies already use Jira to track everything—from software bugs to HR tasks. But when it comes to Legal Disputes, the workflow is often broken: relying on endless email chains and manually reviewing dense PDF contracts.

I asked myself, "Why can't Jira be smart enough to read the contract for us?" The goal was not just to 'track' the dispute, but to empower the legal workflow. I wanted to build a system where a legal officer doesn't just see a ticket status, but gets immediate, actionable insights on Toxic Clauses right where they work. That’s how LegalDRS was born.

⚙️ How we built it The project was built using the Atlassian Forge platform to ensure seamless integration and security.

Frontend (UI Kit): I utilized the Forge UI Kit to create a native Jira experience. It looks and feels like part of the product, minimizing the learning curve for users.

Backend (Resolver): The core logic runs on Node.js (v22.x) within the Forge FaaS environment. It handles secure data storage using Forge Storage for private case notes that shouldn't be mixed with standard Jira comments.

AI Integration: I integrated Generative AI (Gemini 1.5 Flash / OpenAI) to analyze legal texts. Instead of simple keyword matching, the AI understands context to identify risks like "Unilateral Termination" or "IP Theft."

Security First: I implemented a BYOK (Bring Your Own Key) architecture. Instead of hardcoding API keys, users securely save their own credentials in their instance, ensuring data privacy and scalability.

🏔️ Challenges we faced The journey wasn't smooth. I faced several technical hurdles during the intensive development process:

The "Invisible App" Issue: Initially, I deployed the app as a jira:globalPage, which made it hidden in the apps menu and disconnected from the actual work context. Realizing this broke the user experience, I refactored the manifest to jira:issuePanel. This pivoted the app to live inside the ticket, making it context-aware and much more useful.

Performance vs. Accuracy: Handling large contracts was tricky. I initially considered full file parsing, but it introduced too many edge cases for a lean MVP. I made a strategic decision to focus on a "Copy-Paste Analysis" approach. This significantly reduced latency and allowed the AI to focus purely on the text analysis without file format overhead.

State Management: Syncing the Jira issue status with the app's internal "Mediation/Arbitration" lifecycle required careful handling of the Forge Storage API to ensure data persistence across sessions.

📚 What I learned Through building LegalDRS, I learned that context is king. An AI tool is only useful if it's available exactly when the user needs it—inside the issue they are reviewing.

I also gained a deep appreciation for the Human-in-the-loop approach. AI doesn't replace the lawyer; it acts as a "Legal Copilot," flagging risks so the human expert can focus on the resolution strategy rather than reading boilerplate text. This project proved that serverless AI apps on Jira are not just feasible, but incredibly powerful for transforming legacy business processes.

Built With

Share this project:

Updates