An open API service indexing awesome lists of open source software.

https://github.com/r-webdev/website

Community website for the Web Dev & Design Discord server.
https://github.com/r-webdev/website

website

Last synced: about 1 month ago
JSON representation

Community website for the Web Dev & Design Discord server.

Awesome Lists containing this project

README

          

# Web Dev & Design

Community website for the **Web Dev & Design** Discord server. Built with Astro, React islands, Tailwind CSS, and Zod-validated content collections.

## Stack

- [Astro](https://astro.build) — static site shell and routing
- [React](https://react.dev) — interactive islands (search, mobile nav)
- [Tailwind CSS](https://tailwindcss.com) — styling
- [Zod](https://zod.dev) — schema validation
- [Vitest](https://vitest.dev) — unit and component tests
- [Cloudflare Pages](https://pages.cloudflare.com) — deployment target

## Getting started

Requires Node.js 24+.

```bash
pnpm install
cp .env.example .env
pnpm dev
```

## Scripts

| Command | Description |
| --------------- | ------------------------ |
| `pnpm dev` | Start dev server |
| `pnpm build` | Production build |
| `pnpm preview` | Preview production build |
| `pnpm test` | Run tests in watch mode |
| `pnpm test:run` | Run tests once (CI) |
| `pnpm lint` | Lint with ESLint |

The Open Graph image at `/og-image.png` is generated at build time from `public/og-image.svg` and `public/logo.png` via a [static file endpoint](https://docs.astro.build/en/guides/endpoints/#static-file-endpoints) (`src/pages/og-image.png.ts`).

## Environment variables

| Variable | Description |
| --------------------------- | -------------------------------- |
| `PUBLIC_SITE_URL` | Canonical site URL for meta tags |
| `PUBLIC_DISCORD_INVITE_URL` | Discord invite link for CTAs |

## Pages

- `/` — Home with Discord join CTA
- `/learning` — Curated resources with search and filter
- `/code-of-conduct` — Community guidelines

## Deployment

This project includes a [`wrangler.toml`](wrangler.toml) for Cloudflare Pages.

| Setting | Value |
| ---------------- | ------------ |
| Build command | `pnpm build` |
| Output directory | `dist` |
| Node version | 24 |

Set `PUBLIC_SITE_URL` and `PUBLIC_DISCORD_INVITE_URL` in Cloudflare Pages environment variables.

For local preview with Wrangler:

```bash
pnpm build
pnpm dlx wrangler pages dev dist
```