Atlassian Codegeist 2023

My Odyssey Journey with Dione and Codegeist

Documentation. Every developer’s Achilles heel. I can’t count the number of times I’ve found myself switching between screens, trying to simultaneously remember what each part of my code does while documenting it.

The tediousness of this process is what sparked the idea for Dione, a tool designed to ease the burden of documentation for developers like me and probably YOU.

The overarching frustration

Dione’s mission? Simple: Document code in real-time.

Picture this: You’re writing code, and as you finish a function or a block, Dione helps you document it without the need to switch screens. On top of that, if you’ve ever spent hours trying to explain a concept through diagrams, Dione’s got you. It compiles your description and creates a transparent chart so you don’t have to.

Technically, Dione is a two-part solution. The first is Dione Code, a Visual Studio extension written in JavaScript. It uses the Confluence API and the OpenAI API.

Whenever you select a section of your code, it sends a request to ChatGPT for documentation, after which you can then modify the response to suit your needs and push it to the server.

The second, Dione Diagrams, operates within Confluence. Here, a React application displays the charts (alongside the godly Dione icon). These charts are generated by conversing with ChatGPT to produce a MermaidJS syntax, which is then dynamically rendered in the React app.

Dione lives in harmony with Atlassian

Sounds easy? Now that it’s done, yes, but back then it was a real headache.

Rendering those charts in Confluence… Yeah, that was like opening the Pandora’s Box. Every time MermaidJS rendered for the second time, the aesthetics were gone. Moreover, the charts were restricted to a single page display. If I could go back in time a few days before the deadline, I’d probably tackle this with more grace. But as the saying goes, hindsight is 20/20. A silver lining was the legibility of the descriptions, though due to the poor color contrast, some squinting might be necessary.

Despise these challenges, I unearthed a treasure trove of knowledge. The journey into the Atlassian ecosystem surely felt like an Odyssey. I encountered the limitations and potentials of Forge, understood the ins-and-outs of creating Visual Studio extensions, and discovered handy JavaScript tricks and techniques. Perhaps, most enlightening was my deep dive into Confluence. It unveiled features and tools I was oblivious to before — tools that, in retrospect, would have simplified my previous internships.

MermaidJS causes a lot of headaches

Looking forward, I have great plans for Dione. Improving the experience with charts tops the list, ensuring they can grace any Confluence page while letting users customize their aesthetics. There’s also a potential third extension growing in the back of my mind. My mind is restlessly popping new ideas in my head, so who knows? Dione may expand its toolkit in the not-so-distant future.

To all my fellow developers navigating the Minotaur’s labyrinthine of Atlassian tools; I hope my Dione journey resonates with you. If there’s one thing I’ve learned, it’s that innovation often emerges from our most pressing frustrations.

And remember, always document as you go!

Document as you go!