Having used Confluence for many years in a fast growth company, Confluence quickly became a mess of pages and at the same time the need to communicate effectively across the business increased. There was a running joke "You haven't seen it? It's somewhere in Confluence."
Working as a product manager I personally experienced the pain of trying to engage a global audience via Confluence without having the tools to know what content was and wasn't working and with who. Reading through the Atlassian Connect docs, I quickly saw there was an opportunity to build a product my coworkers and past me would have loved.
What it does
Analytics for Confluence Cloud helps you to measure engagement of your team and company. It tracks views and activity so you can know how engaging and useful your content is – no setup, no macros and no expertise required.
Is your latest blog getting any attention? Has the team read your meeting agenda? Is this page still used? Now you can know. To see it just click the "Analytics" button on any page or blog.
How I built it
The journey started with sketches in a notepad. This was followed by a mockup Marketplace page to help get early feedback, validate the idea and refine the minimal viable product. From there were various spikes to learn new tech and countless hours shipping code.
Analytics for Confluence Cloud is served on the AWS platform using Elastic Beanstalk, CloudFront and RDS. The backend is built using Node.js (using Atlassian Connect Express) and Postgres and the frontend with React and Redux. Postgres' support for JSONB is nothing short of incredible. This combination:
- Makes it really easy to scale as demand increases
- Minimises setup/maintenance costs
- Maximised control of the user experience
- Had a fast development feedback loop
- Capitalized on some of my existing skills to bring the product to market sooner
Challenges I ran into
Building add-on's has been a rewarding experience and biggest challenge was finding time to build such a complex add-on. Since this work is on the side currently it took many early mornings and late nights to make it a reality. I look forward to giving this my full attention soon.
Lacking an AUI library for React and a Atlassian-styled charting library made it difficult to style an add-on that felt like Confluence. There's so much on the Marketplace that skimps on good design and for me great design is a non-negotiable.
Handling dates and timezones when aggregating data and handling edge cases in an efficient way was difficult. There's many edge cases you don't expect to find.
Accomplishments that I'm proud of
I'm particularly proud of how accessible tracking view activity now is in Confluence. Many other analytics tools can be quite confronting and complex for someone less technical but what I've designed lets anyone quickly see how well their latest blog is doing without needing a degree in data science.
Setting up my first proprietary limited company to be the foundation for this add-on and many more to come #achievementunlocked #lifegoals
What I learned
- There's a lot of untapped potential in the Cloud platform and I'm excited to make the most of that opportunity
- How to use Redux in an interactive frontend application and prepare assets using Webpack
- How to index and query JSONB columns in Postgres efficiently
- Lots about d3 and charting
What's next for Analytics for Confluence Cloud
It's only just getting started! There’s a long list of ideas on the roadmap to refine and prioritise based on customer feedback. Here’s 5 of them:
- Adding more data sources e.g. activity breakdown by groups, show versions on the chart
- Roll up analytics to a space and global level view
- Design a tool tailored exclusively for wiki gardening using activity data thats help you clean your space
- Improve the onboarding and first-time experience
- Flexible permissions so larger organisations can have more control