From f120bce00e48b0bd0a50f4b9c3534fc48683fce9 Mon Sep 17 00:00:00 2001 From: sansware Date: Sun, 28 Jun 2026 16:06:33 +0100 Subject: [PATCH 1/2] chore: polish org-profile README + add community health files Profile README updates: - Collapse 6 leeds-* repo rows into a single line - Soften pricing claim to "No SaaS subscription on the commerce engine itself" - Expand founder bullet: Loughborough degree, HarvardX GSD1x, 20+ years since 2006 - Add openapi-spec + .github rows to the repos table - Replace generic "England & Wales" with the full Companies House registered office - Fix "single-region, single-vendor" contradiction - Drop "Bourdain-style" / "city-guides" phrasing in favour of "city-guide network" - Add "Find us elsewhere" footer (LinkedIn + Careers + Changelog) - Add Organization JSON-LD schema block for SEO + knowledge-graph attribution - Use full forms (do not / cannot) throughout New org-wide community health files: - README.md at repo root pointing at profile/README.md - CODE_OF_CONDUCT.md (Contributor Covenant 2.1, conduct@ticketwavehq.com) - CONTRIBUTING.md scoped to public repos in this org - SUPPORT.md routing partners / developers / press / security - .github/FUNDING.yml (empty, with explanatory comment) - .github/ISSUE_TEMPLATE/bug.yml + feature.yml (form-based templates) Co-Authored-By: Claude Opus 4.7 --- .github/FUNDING.yml | 3 + .github/ISSUE_TEMPLATE/bug.yml | 70 +++++++++++++++ .github/ISSUE_TEMPLATE/feature.yml | 54 ++++++++++++ CODE_OF_CONDUCT.md | 133 +++++++++++++++++++++++++++++ CONTRIBUTING.md | 58 +++++++++++++ README.md | 25 ++++++ SUPPORT.md | 37 ++++++++ profile/README.md | 76 +++++++++++++++-- 8 files changed, 449 insertions(+), 7 deletions(-) create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/feature.yml create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 README.md create mode 100644 SUPPORT.md diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..bcd4861 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +# Not currently soliciting sponsorships. +# TicketWave HQ Ltd is a UK private company funded through commercial operations. +# If that changes, this file will be updated and announced in profile/README.md. diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 0000000..35f54ae --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,70 @@ +name: Bug report +description: Report a defect in a public TicketWave HQ repository +title: "[Bug]: " +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to file a bug report. + + **Do not use this template for security issues.** Security reports go to `security@ticketwavehq.com` per [SECURITY.md](https://github.com/TicketWaveHQ/.github/blob/main/SECURITY.md). + - type: input + id: repo + attributes: + label: Repository + description: Which TicketWaveHQ public repo is affected? + placeholder: e.g. openapi-spec + validations: + required: true + - type: input + id: version + attributes: + label: Version / commit + description: Tag, release, or commit SHA you are running. + placeholder: e.g. v1.4.0 or 7c3a9f1 + validations: + required: true + - type: textarea + id: what-happened + attributes: + label: What happened? + description: A clear description of the problem and the impact. + validations: + required: true + - type: textarea + id: expected + attributes: + label: What did you expect to happen? + validations: + required: true + - type: textarea + id: reproduce + attributes: + label: Steps to reproduce + description: Minimal repro — commands, payloads, environment details. + placeholder: | + 1. ... + 2. ... + 3. ... + validations: + required: true + - type: textarea + id: logs + attributes: + label: Logs, errors, screenshots + description: Paste relevant output. Wrap long output in `
` tags. + render: shell + validations: + required: false + - type: checkboxes + id: pre-flight + attributes: + label: Pre-flight checks + options: + - label: I have searched existing issues and could not find a duplicate. + required: true + - label: This is not a security vulnerability (those go to `security@ticketwavehq.com`). + required: true + - label: I agree to follow the project's [Code of Conduct](https://github.com/TicketWaveHQ/.github/blob/main/CODE_OF_CONDUCT.md). + required: true diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml new file mode 100644 index 0000000..bf40106 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -0,0 +1,54 @@ +name: Feature request +description: Suggest an enhancement to a public TicketWave HQ repository +title: "[Feature]: " +labels: ["enhancement", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for the suggestion. For anything non-trivial, please open the issue and discuss approach before opening a pull request — we would rather agree direction first. + - type: input + id: repo + attributes: + label: Repository + description: Which TicketWaveHQ public repo would this affect? + placeholder: e.g. openapi-spec + validations: + required: true + - type: textarea + id: problem + attributes: + label: What problem does this solve? + description: Describe the pain or gap. Concrete examples are best. + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: What would you like to see change? Sketch the shape of the API, command, or behaviour. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered + description: Other approaches you weighed, and why this one is preferred. + validations: + required: false + - type: textarea + id: context + attributes: + label: Additional context + description: Links, screenshots, related issues. + validations: + required: false + - type: checkboxes + id: pre-flight + attributes: + label: Pre-flight checks + options: + - label: I have searched existing issues and discussions and could not find a duplicate. + required: true + - label: I agree to follow the project's [Code of Conduct](https://github.com/TicketWaveHQ/.github/blob/main/CODE_OF_CONDUCT.md). + required: true diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..56f548d --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,133 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, colour, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behaviour that contributes to a positive environment for our +community include: + +- Demonstrating empathy and kindness toward other people +- Being respectful of differing opinions, viewpoints, and experiences +- Giving and gracefully accepting constructive feedback +- Accepting responsibility and apologising to those affected by our mistakes, + and learning from the experience +- Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behaviour include: + +- The use of sexualised language or imagery, and sexual attention or advances of + any kind +- Trolling, insulting or derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, + without their explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behaviour and will take appropriate and fair corrective action in +response to any behaviour that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behaviour may be +reported to the community leaders responsible for enforcement at +**conduct@ticketwavehq.com**. + +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behaviour deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behaviour was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behaviour. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behaviour. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behaviour, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6489156 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,58 @@ +# Contributing to TicketWave HQ + +Thanks for taking the time to consider a contribution. + +Most repositories in the [TicketWaveHQ](https://github.com/TicketWaveHQ) organisation are **private**. This guide covers the public ones — currently [`openapi-spec`](https://github.com/TicketWaveHQ/openapi-spec) and this [`.github`](https://github.com/TicketWaveHQ/.github) repo. Individual public repos may override or extend this guidance. + +## Code of Conduct + +All participation is governed by the [Code of Conduct](CODE_OF_CONDUCT.md). Report unacceptable behaviour to `conduct@ticketwavehq.com`. + +## Before you open an issue or PR + +1. **Search existing issues and PRs first.** Many questions have already been answered. +2. **Check the repo-specific README.** It usually describes scope, supported use cases, and known limitations. +3. **For security issues, do not open a public issue or PR.** Follow [SECURITY.md](SECURITY.md) — email `security@ticketwavehq.com`. + +## Issues + +Bug reports and feature suggestions are welcome on public repos. Use the issue templates where provided. + +A good bug report includes: + +- What you expected to happen +- What actually happened (logs, screenshots, error messages) +- A minimal reproduction (versions, OS, browser, exact commands) +- The repo and commit hash you are running + +## Pull requests + +For public repos: + +1. **Open an issue first** for anything non-trivial. We would rather discuss approach before you spend time on a PR. +2. **One concern per PR.** Smaller PRs are reviewed faster. +3. **Sign your commits** where the repo enforces signing. +4. **Match the existing code style.** Lint and formatter configs are checked in — please run them locally. +5. **Add or update tests** when changing behaviour. +6. **Update docs** when changing public API surface. +7. **Reference the issue** in the PR description (e.g. `Closes #123`). + +By submitting a PR you confirm that you have the right to license your contribution under the repo's existing licence (Apache-2.0 for `openapi-spec`; see each repo's `LICENSE` file). + +## What we will not accept + +- Drive-by formatting / linting-only PRs that touch many unrelated files +- "AI-generated" PRs that have not been read and verified by a human contributor +- Changes that remove safety, accessibility, or security features without a documented rationale + +## Questions + +- General questions: open a [Discussion](https://github.com/TicketWaveHQ/openapi-spec/discussions) on the relevant repo, or email `hello@ticketwavehq.com` +- Security: `security@ticketwavehq.com` (see [SECURITY.md](SECURITY.md)) +- Conduct: `conduct@ticketwavehq.com` + +Thanks again. + +--- + +*TicketWave HQ Ltd · Companies House [17143167](https://find-and-update.company-information.service.gov.uk/company/17143167) · England & Wales* diff --git a/README.md b/README.md new file mode 100644 index 0000000..5bcf373 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# TicketWaveHQ / .github + +This repository hosts the **TicketWave HQ Ltd** organisation profile and org-wide community health files for [github.com/TicketWaveHQ](https://github.com/TicketWaveHQ). + +The org-profile page itself is rendered from [`profile/README.md`](profile/README.md) — that is the one to read if you want a tour of what the company does. + +## What's in here + +| File | Purpose | +|---|---| +| [`profile/README.md`](profile/README.md) | Public org-profile page rendered at github.com/TicketWaveHQ | +| [`SECURITY.md`](SECURITY.md) | Responsible-disclosure policy (RFC 9116) | +| [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) | Contributor Covenant 2.1 | +| [`CONTRIBUTING.md`](CONTRIBUTING.md) | How to contribute to public repos in this org | +| [`SUPPORT.md`](SUPPORT.md) | Where to get help | +| [`.github/FUNDING.yml`](.github/FUNDING.yml) | Funding configuration (currently empty) | +| [`.github/ISSUE_TEMPLATE/`](.github/ISSUE_TEMPLATE/) | Default issue templates inherited by repos without their own | + +## Why org-wide files live here + +GitHub serves community health files in a repo named `.github` (or `docs/` of any repo) as **defaults** for every repository in the organisation. Individual repos can override any file by adding their own. + +--- + +*TicketWave HQ Ltd · Companies House [17143167](https://find-and-update.company-information.service.gov.uk/company/17143167) · England & Wales* diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 0000000..d93759c --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,37 @@ +# Support + +This page routes you to the right place depending on what you need. + +## I am a TicketWave partner or customer + +| What you need | Where to go | +|---|---| +| Account, billing, payouts, partner onboarding | `hello@ticketwavehq.com` | +| Help with a live event, menu, or booking | Reply to your most recent TicketWave email and we will route it | +| General enquiries | [ticketwavehq.com/contact](https://ticketwavehq.com/contact) | + +## I am a developer working with the API + +| What you need | Where to go | +|---|---| +| Bug in the OpenAPI spec | Open an issue on [TicketWaveHQ/openapi-spec](https://github.com/TicketWaveHQ/openapi-spec/issues) | +| Question about API usage | Open a [Discussion](https://github.com/TicketWaveHQ/openapi-spec/discussions) on the same repo | +| SDK or integration issue | Open an issue on the relevant SDK repo, or email `hello@ticketwavehq.com` | + +## I think I have found a security vulnerability + +**Do not open a public issue.** Read [SECURITY.md](SECURITY.md) and email `security@ticketwavehq.com`. + +We acknowledge within 24 hours. + +## I want to report a code-of-conduct violation + +Email `conduct@ticketwavehq.com`. See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for the policy. + +## Press, partnerships, investors + +`hello@ticketwavehq.com` — please put "Press", "Partnership", or "Investor" in the subject line so we can route quickly. + +--- + +*TicketWave HQ Ltd · Companies House [17143167](https://find-and-update.company-information.service.gov.uk/company/17143167) · England & Wales* diff --git a/profile/README.md b/profile/README.md index c19f86a..308d5aa 100644 --- a/profile/README.md +++ b/profile/README.md @@ -34,6 +34,7 @@ Events, restaurants, and service bookings — one engine, one payout, one identi - [Stack + security](#-stack--security) - [About the company](#-about-the-company) - [Contact](#-contact) +- [Find us elsewhere](#-find-us-elsewhere) --- @@ -81,7 +82,7 @@ Single source of truth, no hidden uplift: - **Events**: 1.5%–4% tiered by volume + risk profile - **Bookings + services**: 1.5%–4% tiered -No SaaS subscription. No setup fee. No charge if you don't transact. +No SaaS subscription on the commerce engine itself. No setup fee. No charge if you do not transact. --- @@ -90,11 +91,14 @@ No SaaS subscription. No setup fee. No charge if you don't transact. | Repo | What it does | |---|---| | **ticketwave** | The platform monorepo — dashboard, public-facing apps, partner portal, webhook handlers, Stripe Connect orchestration. Next.js 16 + Turborepo. *Private.* | +| **openapi-spec** | OpenAPI 3.1 spec for the TicketWave API (`/api/v1` + `/api/v2`). The `@ticketwave/sdk` package is generated from this spec. *Public, Apache-2.0.* | +| **.github** | This org-profile repo — renders the page you are reading, plus org-wide community health files (`SECURITY.md`, `CODE_OF_CONDUCT.md`, `CONTRIBUTING.md`, `SUPPORT.md`, issue templates). *Public.* | | **officesinleeds** | Reference implementation of the directory template — a Leeds workspace listings site published at [officesinleeds.com](https://officesinleeds.com). Astro 6.4 + SSR. *Private.* | -| **leeds[spa\|pizza\|cafe\|burgers\|caribbeanfood\|rent]** | Forks of the officesinleeds template, one per Leeds vertical. Same engine, different domain + dataset. *Private.* | | **marketing-asset-gen** | Side-tool generating ad-creative bundles for partners (£19/campaign, no subscription). Astro + image pipeline. *Private.* | -All repos in this org are currently private; public source links will be added if and when individual repos are open-sourced. The TWHQ engine sits behind multiple consumer-facing brands. The Bourdain-style city-guides network lives inside the monorepo under `apps/city-template` and is the engine behind the **Citorah** consumer brand (see below); the directory verticals (officesinleeds + the 6 leeds-* repos) stand alone in this org. +Several private editorial micro-sites at `github.com/TicketWaveHQ/leeds-*` (spa, pizza, cafe, burgers, caribbean food, rent) are forks of the officesinleeds template — same engine, one domain + dataset per vertical. + +Public source links will be added if and when individual private repos are open-sourced. The TWHQ engine sits behind multiple consumer-facing brands. The city-guide network lives inside the monorepo under `apps/city-template` and is the engine behind the **Citorah** consumer brand (see below); the directory verticals (officesinleeds + the leeds-* sister sites) stand alone. --- @@ -104,7 +108,7 @@ The TWHQ engine sits behind consumer-facing properties that are operated as sepa ### Citorah — city-guide network -**[citorah.com](https://citorah.com)** is the apex consumer brand for the city-guides network. Each city ships as a path under the apex: +**[citorah.com](https://citorah.com)** is the apex consumer brand for the city-guide network. Each city ships as a path under the apex: | City | Path | |---|---| @@ -134,7 +138,7 @@ Seven city surfaces, one apex, one editorial voice. Runs on the same Next.js mon | **DNSSEC** | Enabled across all live production zones | | **Org security** | 2FA enforced on every contributor account | -Single-region, single-vendor by design — observability and incident response stay tractable. +Single-region by design, with one primary vendor per layer — observability and incident response stay tractable. --- @@ -143,8 +147,8 @@ Single-region, single-vendor by design — observability and incident response s **TicketWave HQ Ltd** — UK private company limited by shares, registered in England & Wales. - **Company number**: [17143167](https://find-and-update.company-information.service.gov.uk/company/17143167) -- **Registered office**: England & Wales -- **Founder**: Jordan Gilbert ([LinkedIn](https://www.linkedin.com/in/eu-jordangilbert/)) +- **Registered office**: Radley House, Richardshaw Road, Pudsey, LS28 6LE, United Kingdom +- **Founder**: Jordan Gilbert ([LinkedIn](https://www.linkedin.com/in/eu-jordangilbert/)) — Loughborough BSc Architectural Engineering & Design Management, HarvardX GSD1x. 20+ years building websites since 2006. The TWHQ brand stays B2B-only — operator-facing, partner-facing, integration-focused. Consumer brands (the recs network, the directory verticals) are run as separate properties with their own positioning. @@ -161,8 +165,66 @@ The TWHQ brand stays B2B-only — operator-facing, partner-facing, integration-f --- +## 🌐 Find us elsewhere + +- **LinkedIn**: [linkedin.com/in/eu-jordangilbert](https://www.linkedin.com/in/eu-jordangilbert/) (founder) +- **Careers**: [ticketwavehq.com/careers](https://ticketwavehq.com/careers) +- **Changelog**: [ticketwavehq.com/changelog](https://ticketwavehq.com/changelog) + +--- +
*TicketWave HQ Ltd · Companies House [17143167](https://find-and-update.company-information.service.gov.uk/company/17143167) · England & Wales*
+ +```json +{ + "@context": "https://schema.org", + "@type": "Organization", + "name": "TicketWave HQ Ltd", + "alternateName": "TicketWave HQ", + "url": "https://ticketwavehq.com", + "logo": "https://ticketwavehq.com/logo.png", + "description": "White-label commerce platform for events, bookings, and online ordering. Multi-vertical engine for UK businesses that sell time, seats, or access.", + "foundingDate": "2024", + "legalName": "TicketWave HQ Ltd", + "identifier": [ + { + "@type": "PropertyValue", + "propertyID": "Companies House", + "value": "17143167" + } + ], + "address": { + "@type": "PostalAddress", + "streetAddress": "Radley House, Richardshaw Road", + "addressLocality": "Pudsey", + "postalCode": "LS28 6LE", + "addressCountry": "GB" + }, + "founder": { + "@type": "Person", + "name": "Jordan Gilbert", + "sameAs": "https://www.linkedin.com/in/eu-jordangilbert/" + }, + "sameAs": [ + "https://github.com/TicketWaveHQ", + "https://find-and-update.company-information.service.gov.uk/company/17143167" + ], + "contactPoint": [ + { + "@type": "ContactPoint", + "contactType": "Security", + "email": "security@ticketwavehq.com", + "url": "https://github.com/TicketWaveHQ/.github/blob/main/SECURITY.md" + }, + { + "@type": "ContactPoint", + "contactType": "Customer Support", + "email": "hello@ticketwavehq.com" + } + ] +} +``` From 1f1fdf0fd701c79768f0d5c3733d3be38f018112 Mon Sep 17 00:00:00 2001 From: sansware Date: Sun, 28 Jun 2026 16:40:18 +0100 Subject: [PATCH 2/2] docs(profile): refine Consumer brands > Citorah block MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Lead the Citorah subsection with the canonical row: city travel-guide network at citorah.com with all seven cities (Ibiza, Barcelona, Madrid, London, Lisbon, Greece, Dubai) named in line. - Replace the path-based URL table (citorah.com/{city}) with the actual live subdomain surfaces (lisbon.citorah.com etc.) — the path migration is staged in PRs but not yet live as of 2026-06-28. - Note the path-based migration as in-flight rather than shipped, so the README reflects production reality. - Flag a dedicated github.com/citorah org as spinning up Q3 2026; until then all Citorah source remains under TicketWaveHQ/ticketwave. Co-Authored-By: Claude Opus 4.7 --- profile/README.md | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/profile/README.md b/profile/README.md index 308d5aa..4742b62 100644 --- a/profile/README.md +++ b/profile/README.md @@ -106,21 +106,25 @@ Public source links will be added if and when individual private repos are open- The TWHQ engine sits behind consumer-facing properties that are operated as separate properties with their own positioning and editorial voice. -### Citorah — city-guide network +### Citorah — the city travel-guide network -**[citorah.com](https://citorah.com)** is the apex consumer brand for the city-guide network. Each city ships as a path under the apex: +**Citorah** is the city travel-guide network at **[citorah.com](https://citorah.com)** — Ibiza, Barcelona, Madrid, London, Lisbon, Greece, and Dubai. Owned and operated by TicketWave HQ Ltd as a consumer property, distinct from the B2B TicketWave commerce brand. -| City | Path | +Seven city surfaces today; one apex, one editorial voice. Each city currently lives at its own subdomain: + +| City | Live surface | |---|---| -| London | [citorah.com/london](https://citorah.com/london) | -| Lisbon | [citorah.com/lisbon](https://citorah.com/lisbon) | -| Ibiza | [citorah.com/ibiza](https://citorah.com/ibiza) | -| Madrid | [citorah.com/madrid](https://citorah.com/madrid) | -| Barcelona | [citorah.com/barcelona](https://citorah.com/barcelona) | -| Greece | [citorah.com/greece](https://citorah.com/greece) | -| Dubai | [citorah.com/dubai](https://citorah.com/dubai) | - -Seven city surfaces, one apex, one editorial voice. Runs on the same Next.js monorepo (`apps/city-template`) with runtime multi-tenancy keyed off the URL path. +| Lisbon | [lisbon.citorah.com](https://lisbon.citorah.com) | +| Ibiza | [ibiza.citorah.com](https://ibiza.citorah.com) | +| Barcelona | [barcelona.citorah.com](https://barcelona.citorah.com) | +| Madrid | [madrid.citorah.com](https://madrid.citorah.com) | +| Greece | [greece.citorah.com](https://greece.citorah.com) | +| London | [london.citorah.com](https://london.citorah.com) | +| Dubai | [dubai.citorah.com](https://dubai.citorah.com) | + +Runs on the same Next.js 16 monorepo (`apps/city-template`) with runtime multi-tenancy. A path-based migration (`citorah.com/{city}`) is in flight; subdomains are the canonical surface until that ships. + +A dedicated `github.com/citorah` org is spinning up Q3 2026 for any code that splits out of the TWHQ monorepo; until then, all Citorah source lives here under `TicketWaveHQ/ticketwave`. ---