Inspiration

My inspiration comes from the amount of rework and missed timelines that can happen when tickets are not refined properly. Tickets often have missing information, unclear decisions, or unanswered questions, which can cause developers and QA engineers to miss important scenarios. We also spend a lot of time in refinement meetings without being able to look at relevant files or use them as context. This can lead developers to give inaccurate estimates.

What it does

Backlogr combines ticket data like screenshots, comments, and descriptions with Sources such as code repositories to build context for an AI model. The AI analyzes whether the ticket is missing important information or decisions, or if there are discrepancies that make it not ready for development. This helps QA engineers, developers, and product owners save time while also giving them an unbiased reviewer.

How we built it

I initially built it by creating an algorithm to extract relevant files, transform them into useful context, and test the results in notebooks using Jira tickets I had worked with. I used Voyager to generate embeddings and Chroma to store them. I then used a combination of BM25 and RAG to rank the most relevant files. The description portion of the Python service searches the most relevant files in the project and uses them to build a project description that can later be provided to the AI as additional context. I then built the Java Quarkus backend to manage the data and create prompts for the AI using ticket information like comments and screenshots. After building the architecture and the foundation of the three services, I used GPT-5.6 and Codex to help continue the development. At that point, the project was still in a very early stage. Many notebooks and manual tests used hardcoded data sources, the Java and Python services were not communicating properly, and several important integrations were still missing. I used GPT-5.6 and Codex to connect the services, allow users to connect their GitHub accounts, import GitHub issues, build the indexing job pipelines, and make significant updates to the UI. I also used GPT-5.6 and Codex to plan and build the Refinement Findings and Relevant Files features. This included prompts, SSE communication, persistence, frontend integration, and other supporting features. Finally, I used GPT-5.6 and Codex to plan and build the caching strategy for the Java service and improve the existing caching approach in the Python service.

Challenges we ran into

I initially started with Jira tickets from public boards, which sometimes followed a more enterprise-focused process. Since I did not have a Jira integration yet, the hardcoded workflow was difficult to test properly. Naming conventions also took me a long time because it was difficult to come up with names that would scale. For example, Sources were originally called SourceRepository, but that name did not fit other types of Sources that may be added in the future. Because of this, I had to go through multiple rounds of refactoring after choosing names that did not properly represent the entities across the UI, backend models, and AI pipeline.

Accomplishments that we're proud of

I am proud of building an app in such a short amount of time that can solve a real problem. I was able to get Backlogr running and fully integrated with GitHub Issues. I am also really proud of how stable the MVP is for its first version. I ran multiple tests for both indexing code repositories and importing tickets, and I did not run into any major issues.

What we learned

I learned that I should have spent more time thinking through Backlogr’s main features before starting development. Although I am confident in the problems Backlogr solves, since I am a full-time software engineer and experience backlog refinement issues regularly, I had to rework several features and concepts because they were not clearly defined before development started.

What's next for Backlogr

  • Add more integrations with platforms like Jira, Linear, and Azure DevOps.
  • Improve Relevant Files so developers can search for and view indexed files directly in the browser without having to bring their laptops to the meeting.
  • Improve AI reasoning and ticket refinement by supporting a wider range of Sources, such as SRS documents and Figma designs.
  • Use AI to improve tickets based on the findings and supporting Sources.

Built With

Share this project:

Updates