Inspiration
An oft-overlooked aspect of sustainability is the sustainability and resilience of ideas. Ideas are the currency of the modern world. Without implementing them, we may as well be doomed with respect to the plethora of problems facing us today.
Every day, projects get sidelined, stonewalled, or killed by attrition because of unmaintainable codebases and the loss of institutional knowledge. Both of us have faced this in past workplaces, and we were inspired by this experience to build a tool to help the implementation of ideas and projects be more resilient: lasting across the makeup of a particular team. In particular, leaders need a robust set up tools to analyze what portions of their projects are vulnerable to people leaving or joining a team.
What it does
Tightrope is a tool that fixes this vacuum: it offers a novel, semantic analysis of a git-based codebase to create profiles of individual contributors to that repository. This general tool can be used in a plethora of ways, including:
- Managers can use it to identify individuals who are the only person knowledgable about a particular section of their codebase, and thus reduce the likelihood of single point of failures.
- New employees can use it to identify people who have worked on, or were associated with, a particular project in the past, and thus identify people they should reach out to to learn about functionality or information on tooling.
- Project leads can use it when building a new project to find people who have worked on similar projects in the past, thus improving the reuse of employees within a company.
How this differs from git blame
Git blame and similar tools are low-level: they identify contributors to particular lines of code. Tightrope uses generative AI to interpret this at a higher level, offering natural language profiles of employees that do not require the user to parse through raw information to identify what they want. In addition, a chat-based client is a natural way of refining queries and narrowing down what you are searching for: high-impact employees.
How we built it
We used a NextJS frontend to connect to a FastAPI backend written in Python; the Python backend interfaces with Gemini (for reasons explained below), and connects to a custom-built MCP server, hosted locally. We use a Postgresql to store user data and to cache their workflow. We use Prisma as an ORM.
Challenges we ran into
We were unable to use Claude for this project since we were not able to acquire credits. Instead, we used Gemini for no reason other than we had an API key for it lying around. Our project, however, is fairly AI-agnostic, so it is entirely possible to use Claude instead.
The MCP server-LLM interplay is also quite slow, which may take away from the desired transparent nature of this product. With further time, we likely could have come up with a clever scheme for preprocessing a repository, making subsequent requests on it fast.
Accomplishments that we're proud of
Neither of us was really familiar with what an MCP server was before this competition. While implementing this process, we became intimately familiar with what an MCP server does and how to implement one with the tool use API.
What we learned
We learned how to implement MCP, Claude and Gemini's capabilities, and the architecture of an MCP server. We also became intimately familiar with Gemini's tool use API.
Moving away from technical lesson, we learned a lot about time management during a hackathon; this hackathon was far shorter than what we were used to, so our idea generation phase took up way too much time in retrospect. In addition, we likely could have built a smaller project with a higher quality than this project; however, this idea was so compelling to us that we really wanted to take advantage of this hackathon to develop it.
What's next for Tightrope
This project is very marketable, since it fills a real-world need: next steps involve aggregating other semantic outputs created by the corporate workplace, including:
- Project specifications
- Commit messages and issue threads
- Kanban boards, documentation, and other textual output By combining these into one tool to identify contributors with varied skillsets and place them in the positions where they are needed, we have a strong vision for making software development more sustainable.
Built With
- fastapi
- gemini
- mcp
- nextjs
- postgresql
- prisma
Log in or sign up for Devpost to join the conversation.