Tech Stack
A detailed look at the technical details.
Turborepo
Turborepo is a monorepo tool that helps you manage your project's dependencies and scripts. We chose a monorepo setup to make it easier to manage the structure of different features and enable code sharing between different packages.
Turborepo - Make Ship Happen
turbo.build
WXT (Vite)
It's like Next.js for browser extensions.
WXT is a very lightweight and powerful framework (based on Vite) for building browser extensions using most popular frontend tools. It provides a modern development experience with features like hot module reloading, TypeScript support, and automatic manifest generation.
WXT simplifies the process of creating cross-browser extensions, allowing you to focus on your extension's functionality rather than boilerplate setup.
React
React is a JavaScript library for building user interfaces. It's the core technology we use for creating the UI of our browser extension, allowing for efficient updates and rendering of components.
React
reactjs.org
Tailwind CSS
Tailwind CSS is a utility-first CSS framework that helps you build custom designs without writing any CSS. We also use Radix UI for our headless components library and shadcn/ui which enables you to generate pre-designed components with a single command.
Hono
Hono is a small, simple, and ultrafast web framework for the edge. It provides tools to help you build APIs and web applications faster. It includes an RPC client for making type-safe function calls from the frontend. We use Hono to build our serverless API endpoints.
Hono
hono.dev
Better Auth
Better Auth is a modern authentication library for fullstack applications. It provides ready-to-use snippets for features like email/password login, magic links, OAuth providers, and more. We use Better Auth to handle all authentication flows in our application.
Better Auth
better-auth.com
Drizzle
Drizzle is a super fast ORM (Object-Relational Mapping) tool for databases. It helps manage databases, generate TypeScript types from your schema, and run queries in a fully type-safe way.
We use PostgreSQL as our default database, but thanks to Drizzle's flexibility, you can easily switch to MySQL, SQLite or any other supported database by updating a few configuration lines.
Last updated on