Lydie is a high-productivity document workspace designed for frictionless writing. To achieve this, I believe, the technologies powering the platform needs to align with the same values of performance, reliability and simplicity. Furthermore, when deciding on the tech stack, I picked some technologies that challenge how the web has worked for the past decades in order to provide an experience matches the likes of native applications.
Zero
One of the technologies that challenge this point is Zero, an open-source sync engine being built by Rocicorp - the same team behind the sync framework Replicache.
Though still in alpha, Zero has already been incredibly valuable for Lydie's development and performance. At its core, Zero keeps a small local database on the client automatically in sync with the main Postgres database. Since the data that the app needs is already available locally, most interactions happen almost instantly - while Zero quietly keeps everything updated in the background.
I personally envision sync engines (especially general-purpose ones like Zero) are gonna become more popular for highly dynamic web applications in the future. Companies like Linear and Figma are already known for having built their own custom sync engines to achieve highly performant user experiences.
Hono
While Zero manages much of the backend data synchronization, Lydie is also designed as an API-oriented platform. It exposes an external REST API, enabling functionalities such as powering a blog or integrating with external workflows. For this, we use Hono, a lightweight framework for building web APIs. A benefit of Hono is that it allows deployment on virtually any platform, which was ideal for the initial version of Lydie's backend which was running on AWS Lambda. We have since then moved to running our backend in dedicated containers running Bun, but Hono still shines here. Which moves us on to infrastructure.
SST
All of our infrastructure is hosted on AWS and orchestrated using SST - a powerful infrastructure-as-code (IaC) framework that makes it incredibly easy to deploy various services to AWS (alongside other providers). If you are interested in the infrastructure part of Lydie, most of the files for this can be found in the /infra folder in the repository (yes, friendly reminder that we're open-source!).
A powerful bonus of SST is that it is built on top of Pulumi, another IaC tool which allows setting up infrastructure for thousands of different technologies to thousands of different providers - eg. Vercel.
TanStack Router
Lydie is a single-page application powered by TanStack Router (TSR) and React. As the main application aims to be as light and performant as possible, it does not gain any benefit from server-side rendering (SSR) - which you would otherwise use in marketing pages or platforms that would benefit from SEO traffic.
I have personally become very fond of TSR alongside some of the other packages that they offer. Though Lydie does need its own backend, I decided against using TanStack Start (which includes SSR and built-in API routes) as I wanted more control over the backend and want to avoid mixing the frontend and backend.
React Aria Components
I personally value platforms that adhere to baseline accessibility standards and allow interactions such as keyboard navigation- and shortcuts. With Lydie being a tool aimed at productivity (to the likes of Linear and Superhuman), I knew the importance of having a solid foundation for building dynamic and accessible component, for which I decided on React Aria Component (RAC) - a headless component library built by Adobe.
I've previously used RAC for some of my other projects and absolutely love the composability and customizability they provide, without sacrificing any functionality. RAC are the backbone of most of our generic components such as drop-down lists, dialogs and tooltips.
Honorable mentions
Apart from the previously mentioned technologies, Lydie relies on a handful of stable technologies which I personally use for most of my other projects:
PostgreSQL is the database system used to back all of Lydie's data (hosted on PlanetScale Postgres). Apart from integrating well with Zero, it is an extremely reliable and feature-rich DBMS, which, for instance, is also the technology that supports our natural language search via the pgvector extension that enables storing embeddings in the database.
Most of the AI features in Lydie is handled using Vercel's AI SDK, which is an incredibly useful library for interacting with external AI providers such as Anthropic, Google and OpenAI. The AI SDK is the core library powering the workspace assistant and document chats in Lydie.
To summarize, the technology choices for Lydie genuinely reflect the wanting of creating a high-performance, reliable and lightweight document workspace. I am aware that this post might not have provided a too deep view into how Lydie uses these technologies, but I want to leave space for more in-depth posts that do this in the future. Until then, the codebase is public!