Skip to content

Latest commit

 

History

History
114 lines (87 loc) · 3.95 KB

File metadata and controls

114 lines (87 loc) · 3.95 KB
Bulwark

Bulwark website

The website and documentation for Bulwark Webmail, in Next.js and Tailwind CSS.


What's in here

Two things, both served from one Next.js app: the landing page at /, and the documentation at /docs, rendered from the Markdown under docs/.

Quick start

Development

git clone https://github.com/bulwarkmail/website.git
cd website
npm install
npm run dev

Open http://localhost:3000 to view the site.

Production build

npm run build
npm start

Project structure

src/
├── app/                  # Next.js App Router pages
│   ├── page.tsx          # Landing page
│   ├── docs/             # Documentation pages
│   ├── install/          # Install redirect
│   └── api/              # API routes (docs search)
├── components/           # React components
│   ├── docs/             # Documentation components
│   └── *.tsx             # Landing page sections
└── lib/                  # Utilities (markdown processing, etc.)
docs/                     # Documentation content (Markdown)
├── getting-started/      # Introduction, installation, configuration
│   └── configuration/    # Stalwart setup, authentication, env reference
├── features/             # Email, calendar, contacts, files, PWA
│   └── email/            # Composing, search
├── development/          # Architecture, contributing
├── deployment/           # Docker, manual, reverse proxy
│   └── docker/           # Compose, reverse-proxy
├── guides/               # Customization, keyboard shortcuts, embedded SSO,
│                         # plugins, account-security, multi-account, smime,
│                         # marketplace, admin
└── branding/             # Brand guidelines
public/                   # Static assets
├── branding/             # Logos, favicons
└── screenshots/          # Product screenshots

Tech stack

Framework Next.js 16 with App Router
Language TypeScript
Styling Tailwind CSS v4
Markdown unified / remark / rehype pipeline
Icons Lucide React
Animation Framer Motion

Documentation

Documentation is written in Markdown under the docs/ directory. Files use gray-matter frontmatter for metadata:

---
title: Page Title
description: A brief description.
order: 1
---

# Content here

The documentation system supports:

  • GitHub Flavored Markdown
  • Syntax-highlighted code blocks with copy button
  • Auto-generated sidebar navigation
  • Full-text search

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/my-change)
  3. Commit using Conventional Commits (git commit -m 'docs: add my change')
  4. Push to the branch (git push origin feature/my-change)
  5. Open a Pull Request

Related