Tech stack
PageZERO is built on strong foundations that prioritize developer experience and performance.
⚡ Vite - serves as the build tool and development server. It provides near-instant hot module replacement during development and optimized production builds. Vite’s native ES modules approach eliminates the bundling step during development, making the feedback loop incredibly fast.
⚛️ React - powers the UI layer. Its component-based architecture makes it easy to build and maintain complex interfaces. The ecosystem is mature, well-documented, and offers excellent tooling support.
🛤️ React Router v7 - handles both client and server-side routing. It provides a full-stack framework experience with server-side rendering, data loading, and mutations - all while maintaining the flexibility to deploy anywhere.
☁️ Cloudflare Workers - hosts the application at the edge. Code runs in data centers around the world, close to your users. This means faster response times and lower latency compared to traditional server hosting. The generous free tier makes it cost-effective for projects of any size.
🗄️ Cloudflare D1 - provides the database layer. It’s a serverless SQLite database that runs at the edge alongside your Workers. D1 offers familiar SQL semantics with automatic replication and zero cold starts.
🔷 TypeScript - adds static typing to the entire codebase. It catches errors at compile time, improves IDE autocomplete, and makes refactoring safer. The type system also serves as living documentation for the codebase.
🎨 TailwindCSS - handles styling with utility classes. It keeps styles co-located with components, eliminates naming debates, and produces small production bundles through automatic purging of unused styles.
💧 Drizzle ORM - provides type-safe database access. It generates TypeScript types from your schema, supports migrations, and produces efficient SQL queries. Drizzle is lightweight and works seamlessly with D1.
Tooling
Section titled “Tooling”🥟 Bun - serves as the package manager and JavaScript runtime. It’s significantly faster than npm or yarn for installing dependencies. Bun also provides a built-in test runner and bundler, though PageZERO uses specialized tools for those tasks.
🦷 Biome - handles formatting and linting in a single tool. It’s a fast, Rust-based alternative to ESLint and Prettier. Biome provides consistent code style with minimal configuration.
🔄 GitHub Actions - automates CI/CD workflows. It runs tests, checks formatting, and deploys to Cloudflare on every push. The tight GitHub integration makes it easy to enforce quality gates on pull requests.
🧪 Vitest - runs unit and integration tests. It’s built on Vite, so it shares the same configuration and transformation pipeline. Tests run fast with native ES modules support and excellent watch mode.
🎭 Playwright - handles end-to-end testing. It can test across multiple browsers and provides reliable automation for complex user flows. Playwright’s auto-waiting and debugging tools make tests easier to write and maintain.
🧩 Shadcn - provides accessible, customizable UI components. Unlike traditional component libraries, Shadcn copies component code directly into your project. This gives you full control over styling and behavior without dependency lock-in.
📖 Storybook - documents and develops components in isolation. It provides a visual catalog of all UI components, making it easier to review designs and catch visual regressions.
3rd Party Services
Section titled “3rd Party Services”💳 Polar.sh - handles payments and subscriptions. Polar provides a developer-friendly API for managing one-time purchases and recurring billing. It supports multiple payment methods and handles all the complexity of subscription management, invoicing, and tax compliance.
📧 Resend - delivers transactional emails. Resend offers a modern email API with excellent deliverability and a clean developer experience. It supports React email templates, making it easy to build and maintain beautiful emails using familiar tools.
🛡️ Cloudflare Turnstile - protects forms from bots without annoying CAPTCHAs. Turnstile runs invisible challenges in the background, providing a frictionless experience for real users while blocking automated abuse. Used for authentication forms.