September 2021 by Adam Renklint

Pitch — Developing a Collaborative Presentation Tool for Modern Teams

About the Author
Adam Renklint is the Co-Founder and CTO of Pitch. Pitch is a collaborative presentation tool for teams and launched publicly in 2020.

All over the world, the way teams collaborate is changing. Remote work, flexible hours and distributed teams all bring opportunities, but create challenges as well. Pitch is a collaborative presentation tool that aims to help with some of the challenges modern teams are facing.

Our discussion with Adam Renklint, CTO at Pitch, goes into Clojure, the benefits of choosing the right technology, and the use of the web as a delivery platform.

Tell us a little bit about your app: what does it do and when did you start working on it?

Pitch is a collaborative presentation tool for modern teams. We founded the company and began building the product in 2018. After a two-year period and a highly successful beta, we launched publicly in October 2020.

In building Pitch, our focus has been on enabling real-time collaboration, smart workflows, and intuitive design features. Our goal is to make it fast and delightful for teams to create and deliver beautiful presentations, and easy for anyone to find inspiration from templates and presentations crafted by experts.

Pitch is more than a next-generation presentation tool. We’re building the first complete platform for presentations. In the year ahead, our technical vision is to unify the fragmented workflow spanning presentation creation, collaboration, delivery, publication and more — all while continuing to deliver new features, updates and improvements to our core experience every single week.

What technologies are you using to develop it?

Clojure is our primary programming language, and the web is our primary application delivery platform.

Why did you choose those particular technologies?

Each offers us distinct advantages.

Clojure is a functional programming language, which means it puts the spotlight on data structures and pure functions, and allows our programmers to focus on the problem. We like to get the tedious, ceremonial stuff out of the way, and empower every engineer to think deeply about real problems.

What we like about the web is its unrivaled reach and flexibility. The browser’s capabilities give us the power to make sure Pitch can be used anywhere websites can be viewed or loaded. Further, we can integrate any kind of web content into Pitch.

Did you encounter any problems or disadvantages connected to those technologies?

The biggest hurdle we face in working with a language like Clojure is the available pool of talent that knows it, and knows SaaS. It’s not a mainstream language to begin with, and because we like to empower every engineer to be a product-focused developer, finding and recruiting our ideal candidates takes a lot of time and energy.

More and more, we’re finding success in recruiting talent from other functional programming disciplines, like React Native, and onboarding them to Clojure. We’ll get better at this, and we’re also developing new ways to recruit and train great engineering candidates from non-functional backgrounds as well.

Along the way, was there anything that took you by surprise — any pros / cons, any insights that you hadn’t been aware of when you started?

Our bets on Clojure and the web were initially made to optimize for developer happiness and software quality through rapid iteration of design and code. To shorten feedback loops and encourage a fast-paced product iteration engine, we’ve developed tooling and infrastructure to share speculative changes with co-workers and users within minutes.

While on this journey to discover how to develop products in our own way, we found surprisingly high leverage in writing RFCs (requests for comment). They let us work through technical design decisions in a structured way, and discuss trade-offs, risks and alternatives with peers. Our technical designs and architecture are definitely better and stronger as a result.

What about the development tools that are available? What’s great and what could be better?

No mention of Clojure is complete without bringing up the REPL (read-eval-print loop). This interactive tunnel into a running program allows us to inspect and change code without restarting any process, and it frames programming and product development as a conversation between the system and the expert observing and manipulating the system.

On the other hand, choosing a non-mainstream language has meant that we’ve had to develop some tooling ourselves, especially to wrangle a growing monorepo and feedback mechanism. We’re currently around 70 engineers working in a single repository, with CI building immutable deployments of every single change. Shaving off a minute from every branch deployment has a significant impact on our ability to develop and learn fast.

When thinking about the future of those technologies, what do you expect or hope for?

Thinking about Clojure, our hope is that languages like these become more widespread in our industry. Too much great talent is locked up spending too much time handling tech debt, maintaining old systems, or otherwise not being deployed to think about business problems. The product innovation that could result out of great engineers simply being deployed more effectively is inspiring to think about, and greater uptake of languages like Clojure could contribute significantly to that.

When it comes to the web, we simply hope for more awareness of the decades of excellent progress in the area of optimised rendering engines. We like to say that Pitch is “made of the same stuff as the internet”, and we believe this is the way forward for most great software products in the future.

If people want to start developing with those technologies, what should they look at and what advice would you give them?

We picked Clojure and the web as our primary technologies to achieve certain goals: developer happiness, short feedback cycles, and focus on data. Before picking any technology, you should consider the goals for your project, then experiment with and pick technologies that can help you achieve that. And if your goal is to develop delightful software by iterating fast, then Clojure and the web is a great choice.

Your Download is in Progress…

Giveaways. Cheat Sheets. eBooks. Discounts. And great content from our blog!