# Northline Brokerage — website starter

This is a **static, lead-generation website template** for a brokerage that wants one public entry point across mortgage/lending, insurance, real estate, freight/logistics, and investment brokerage. It is not a broker platform, client portal, transaction system, lead database, advice engine, insurer/lender/carrier/marketplace integration, or substitute for licensing and firm compliance.

## What works in this package

Visitors can explore the five service areas, open a sector-specific or general enquiry form, enter a limited set of details, accept a contact-for-this-enquiry notice, and prepare an email draft in their own email app. The visitor reviews that draft and presses Send themselves. **Nothing is sent or stored by the website.** No account, analytics, advertising tracker, payment collection, uploaded documents, or database is included. Each service page makes clear that an enquiry is not a quote, approval, policy, submitted offer, freight booking, personalised investment recommendation, or completed transaction.

A form is deliberately blocked until you replace the sample enquiry mailbox. Do not advertise the site or accept client information until all the items marked below are configured and reviewed.

## 1. Configure your business

Edit `client/src/lib/site-config.json` before building:

```json
{
  "brandName": "Your Brokerage Name",
  "shortName": "Your Brand",
  "tagline": "Your approved tagline",
  "enquiryEmail": "enquiries@your-real-domain.com",
  "phone": "",
  "serviceArea": "Your actual service area",
  "publicOrigin": "https://www.your-real-domain.com",
  "privacyContact": "privacy@your-real-domain.com",
  "lastReviewed": "YYYY-MM-DD"
}
```

Use an email inbox/alias you have actually created and tested; a domain by itself does not create an email inbox. `publicOrigin` must be your exact public HTTPS origin only—no path, query, or trailing slash. If you do not yet have a domain, leave `publicOrigin` empty; the build avoids inventing canonical URLs. Replace service availability, all legal entity/licence details, jurisdictions, relationship wording, contact channels and disclosures in the page source with accurate firm-approved information. Configure a privacy notice and complaints route in line with your business and applicable law. The included notice is example copy, not legal advice or a complete jurisdiction-specific privacy policy.

## 2. Build the downloadable site

Requirements: Node.js and pnpm. From the project root run:

```bash
pnpm install --frozen-lockfile
pnpm build:static
```

The ready-to-upload static site is created at `dist/public/`. Upload **the contents** of that folder to the web root/document root provided by your hosting company. The output includes the homepage, compiled scripts/styles, icon, social preview card, route manifest, and—when `publicOrigin` is configured—canonical/social metadata, `robots.txt` and `sitemap.xml` for that origin.

For local preview during development:

```bash
pnpm dev:static
```

Open the address printed by Vite. To build a new version after changing text or settings, repeat `pnpm build:static` and upload the new `dist/public/` contents.

## 3. Connect your own domain

A domain is only the address. You need a web-hosting account that can serve static files. In that host’s control panel, add your domain, follow the host’s exact DNS instructions (usually an A/AAAA record or a CNAME), choose your preferred `www` or apex address, enable HTTPS/TLS, and set a redirect between the alternate and canonical version. DNS record values differ by host; do not copy generic sample IPs. After DNS settles, check the homepage, forms, icon, privacy section, `robots.txt`, and `sitemap.xml` over HTTPS.

This package is not automatically published to your domain. No DNS changes or hosting account have been configured on your behalf. You will need the host's deployment instructions, or send your domain and chosen host if you want help preparing the correct settings.

## 4. Enquiry delivery: important limitation

The default flow uses a `mailto:` link. It relies on the visitor having an email app configured and on that visitor pressing Send; many mobile devices handle it differently. The brokerage receives nothing until the visitor sends the email. The website does not confirm receipt, retry a failure, store a lead, create a CRM entry, or protect a mailbox from spam.

For a more reliable production form, select an email/form provider or CRM, review its security, privacy, data region, retention and consent terms, then connect its endpoint. This template has no provider account, endpoint or credentials because none were supplied. Do **not** put private API keys in browser code, do not collect sensitive documents in this form, and do not show a success/received message until the service actually confirms a submission. Test routing and failure cases using non-sensitive test data before launch.

## 5. Before launch checklist

- Replace brand, mailbox, service area, public URL, privacy contact and phone in `client/src/lib/site-config.json`.
- Confirm each configured inbox works; decide how the firm will respond and who monitors it.
- Have qualified local counsel/compliance review the privacy, consent, sector disclaimers, licence/relationship disclosures, complaints information, and service descriptions.
- Remove any service or jurisdiction the firm is not authorised and operationally ready to provide.
- Set up secure systems and processes for identity checks, documents, client records, conflicts, complaints, retention, referrals and actual transactions separately from this public site.
- Confirm the hosting provider serves static assets over HTTPS, then submit a non-sensitive test enquiry and verify the intended email client/destination.
- Inspect the generated site metadata and sitemap after setting your real domain. Update the social preview artwork if required by your brand.

## Editable files

- `client/src/lib/site-config.json` — brand, public origin, contact email and service-area settings.
- `client/src/pages/Home.tsx` — public copy and homepage layout.
- `client/src/components/EnquiryDialog.tsx` — minimal sector-specific fields and email-draft behavior.
- `client/src/index.css` — visual system and responsive styles.
- `client/index.html` — initial crawlable content and default page metadata.
- `scripts/postbuild.mjs` — real-domain SEO metadata, `robots.txt` and sitemap generation.
