Tyler Coudriet
Banner image

Building Zendesk Apps with Astro

Why I use Astro to build client-side Zendesk Apps.

Sun Oct 19 2025 - 4 min read


INFO

This post assumes familiarity with Zendesk Custom App development, and modern web frameworks.

Intro

I’ve been building custom apps in Zendesk for almost 10 years. No matter how far the platform has come, there will always be more use cases that are business specific that will require something extra.

While the Zendesk Apps Framework (ZAF) provides everything necessary to build these apps, the traditional development approach comes with some friction points that can slow down development and make maintenance more challenging. Astro offers a modern solution that addresses these pain points while maintaining full compatibility with the ZAF.


How Zendesk Apps Are Built

The Zendesk Apps Framework requires a specific structure:

  • A manifest.json file defining your app’s configuration
  • HTML templates for your app’s UI
  • JavaScript to interact with the ZAF Client API
  • CSS for styling

For simple apps, this works fine. You can write vanilla HTML, CSS, and JavaScript, package everything up, and deploy. But as apps grow in complexity, this approach starts to show its limitations.


The Traditional Challenges

TypeScript Support

Out of the box, there’s no TypeScript support. If you want type safety and modern JavaScript features, you need to set up your own build process with tools like Webpack or Rollup. This means configuring loaders, managing dependencies, and maintaining build scripts alongside your app code.

Code Bundling and Optimization

Similarly, there’s no built-in bundling or optimization. You’re responsible for:

  • Minifying your code for production
  • Managing dependencies and imports
  • Optimizing assets
  • Handling CSS preprocessing

Again, all of this requires manual setup and configuration.

Development Experience

Without modern tooling, the development workflow becomes tedious. Make a change, manually refresh, check the result. No hot module replacement, no automatic reloading, just the traditional edit-save-refresh cycle. Pair that with the fact that many of these apps can take a few minutes to load a bunch of data from the Zendesk API or external sources, and you start losing a significant amount of time just waiting to load the same data over and over as part of this cycle.


How Astro Solves These Challenges

TypeScript by Default

Astro includes TypeScript support out of the box. No configuration needed. Just start writing .ts or .tsx files and everything works. Type checking, autocomplete, and all the benefits of TypeScript are available immediately.

Modern Build Pipeline

Astro handles all the bundling and optimization automatically. Your code is:

  • Bundled efficiently
  • Minified for production
  • Optimized for performance
  • Ready to package for Zendesk

You focus on writing your app, Astro handles the build process.

Hot Module Replacement

During development, Astro provides instant feedback through hot module replacement. Changes appear in your browser immediately without the need to reload the app. This alone dramatically speeds up the development cycle and makes iteration much faster.

Framework Flexibility

One of Astro’s biggest advantages is framework flexibility. You can use:

  • React
  • Vue
  • Svelte
  • Solid
  • Or any other supported framework

Choose the tools you already know, or pick the best framework for your specific use case. Astro doesn’t lock you into a single approach.

The official ZCLI tool actually has a scaffold for React available, but I personally found it to be pretty bloated. The last time I tried to use it, I couldn’t even get it to compile with all of the boilerplate that it comes with, before I had even made changes.


Additional Benefits

Component-Based Architecture

Astro encourages a component-based structure that makes your code more maintainable and reusable. Build your UI in logical pieces that can be tested and updated independently. This also makes it much easier to re-use code in many apps. I’ve built a large variety of apps and many of them re-use some of the same components.

Island Architecture

Astro’s island architecture means you only ship JavaScript for the components that actually need it. Static content remains static, keeping your app lightweight and fast—important when running inside a Zendesk iframe.

Modern Tooling

Beyond the basics, you get access to the entire modern web ecosystem:

  • CSS preprocessing (Sass, Less, etc.)
  • PostCSS for advanced CSS features
  • Image optimization
  • Asset handling
  • And much more that Astro offers

Considerations

While Astro solves many problems, there is a tradeoff to consider.

You’ll need to configure Astro’s build output to match Zendesk’s expected structure. This is pretty straightforward at a glance but does require understanding both systems including the underlying tools that Astro uses during the build process. My template repo linked at the bottom of this post has some dev tooling that I’ve built to automatically handle this for me.


Conclusion

Astro brings modern development practices to Zendesk app development. TypeScript support, automatic bundling, hot module replacement, and framework flexibility all contribute to a better development experience and more maintainable code.

For complex apps or developers already familiar with modern frameworks, Astro is an excellent choice and my personal choice. The improved developer experience and built-in optimizations make it easier to build, test, and maintain your Zendesk apps.

I’ve created a template repository that demonstrates this setup and provides a starting point for your own Zendesk apps:

Tyler Coudriet Logo

Thanks for reading! Feel free to check out my other posts or get in touch via the various platforms linked in the footer below.