💡 InspirationThe inspiration for Cable came from a recurring friction in modern remote work: the "WhatsApp invasion." We noticed that teams often resort to personal messaging apps to get quick answers, blurring the lines between professional and private life.We wanted to build a sanctuary for focus within Jira. A place where a mechanic at Williams Racing could receive a critical update about a front-wing component without needing to share their personal phone number, and where that communication remains indexed and searchable within the project's history.🛠️ How we built itThe project was built using the Atlassian Forge platform, leveraging its serverless architecture to ensure high security and seamless integration.Frontend: We used Custom UI with React to create a rich, interactive messaging interface. This allowed us to implement complex features like real-time chat threads and the jAIr interaction panel.Styling: We integrated AtlasKit to ensure the app looks and feels like a native part of the Atlassian ecosystem.Backend: Developed in Node.js, our backend functions handle the logic of message routing and permission checks, ensuring that only project members can access specific channels.AI Integration: We conceptualized jAIr (our AI agent) to interface with the Jira Cloud API, allowing users to query project metadata using natural language.🎓 What we learnedBuilding Cable was a masterclass in contextual collaboration. We learned that:Serverless is powerful: Forge's forge tunnel revolutionized our development cycle, allowing us to test real-time features without the overhead of managing local servers.Privacy is a feature: By restricting communication to the jira:globalPage and project-specific modules, we reinforced the importance of the right to disconnect.Data Graphing: We understood how to navigate the Atlassian data graph to provide jAIr with the necessary context to answer complex queries.🚧 Challenges we facedThe biggest challenge was managing real-time state within the constraints of a serverless environment. Unlike a traditional socket-based chat, we had to optimize our function calls to ensure the interface felt snappy and responsive.Another hurdle was the permission architecture. We had to ensure that if a user asks jAIr for a summary:"Show me tasks with no updates in $t > 7$ days."The AI only considers data the user is explicitly authorized to see, maintaining strict enterprise-grade security.

Log in or sign up for Devpost to join the conversation.