Tech stack

How Palchat is put together.

Rather than a long list of tools, this page shows the flow from a visitor landing on the site to data being stored and deployed.

End‑to‑end flow

  1. 1

    Visit

    User hits `palchat.org`

    Vercel serves pre-rendered Astro pages from a global edge network, so the first paint is fast even on slow connections.

    Astro (static rendering) Vercel Edge / CDN
  2. 2

    Interact

    UI becomes interactive where needed

    Most of the page stays static HTML, but small pieces (like comments or tools) hydrate as React components for a smooth in-browser experience.

    React islands Tailwind CSS
  3. 3

    Request

    Browser talks to a tiny API

    When a user submits something (like a comment or form), the front-end calls a single-purpose serverless function.

    Vercel Serverless Functions Node.js runtime
  4. 4

    Store

    Data is written to Postgres

    The function uses a pooled Postgres client to read and write structured data in a single relational database.

    PostgreSQL `pg` pooled client Aurora / RDS‑compatible
  5. 5

    Notify & respond

    Optional emails and responses

    For contact flows, the same serverless layer can trigger transactional emails or internal notifications.

    Nodemailer Environment variables via `dotenv`
  6. 6

    Deploy

    Code changes go live automatically

    Pushing to the main branch triggers a Vercel build: Astro pages are rebuilt, functions are redeployed, and everything is served behind SSL.

    Git + CI on Vercel Automatic SSL & CDN

Stack by layer (summary)

Frontend

  • Astro for fast, mostly static pages.
  • React islands where interactivity is needed.
  • Tailwind CSS for consistent design tokens.

Backend

  • Vercel Functions for small, focused APIs.
  • Node.js runtime for server logic.
  • Nodemailer for transactional email.

Data & infra

  • PostgreSQL as the main database.
  • `pg` pooled client for safe connections.
  • Vercel for hosting, SSL, and CDN.