A venture thesis for Hong Kong’s first event data layer built to be cited by AI: designed in full, legally reviewed, and deliberately not built.

Solo work2026Concept, nothing deployed

01The problem

Hong Kong’s event information is scattered across venue marketing pages, agency press releases, government open data and community listings, and none of it is structured for machines. The people who feel this daily are event producers: the retail and venue events that fill an agency’s pipeline arrive as press releases, so whoever owns the platform publishers submit to sees the market first. Today that platform does not exist for AI.

Meanwhile the demand side has quietly moved. People increasingly ask an assistant what is on this weekend rather than opening a listings site, and the assistant answers from whatever it can find — unstructured, undated, and frequently a venue’s own advertising. The workaround on both sides is manual. The gap is not another consumer listings app; it is that no one has claimed the position of the source an assistant cites when asked about events in this city.

02What I built

Nothing has been deployed, and the honest line is worth stating first: there is no repository, no domain, no code and no data engine. What exists is a full architecture and go-to-market document, worked out through two rounds of multi-persona debate including a legal review pass conducted against Hong Kong statute and common law. What that document specifies is a three-layer system over one data engine — a free public layer that exists purely to be cited, a redirect that captures cookieless aggregate clicks on the way out, and a token-registered interface that sells depth to identified business users.

  • Designed, not built — a free public layer of static pages carrying structured event data, one question per page, optimised for answer engines rather than for human browsing.
  • Designed, not built — a redirect that logs time, coarse region, device class and referring assistant in aggregate, with the address hashed or truncated at the edge, then passes the reader straight to the publisher.
  • Designed, not built — a per-token interface giving identified business users history, trend and citation-visibility data.
  • Designed, not built — the ingestion engine: crawl press feeds, venue pages and government open data, read the event details that exist only inside poster images, then dedupe and freshness-tag. This is named in the strategy as the hardest and most expensive part.
  • Already shipped elsewhere and reusable here: the self-hosted authentication, per-user token and access-log skeleton from another project, and the citation-measurement engine from another.
  • Decided and written down: seven monetisation models scored and ranked, seven legal red lines, a three-phase sequencing plan, and four approaches killed outright so they are not revisited.
The one field the design turns on Two designed alternatives for the link field inside the structured event data, drawn as two short flows. In the rejected option the link points at the publisher, so an assistant hands the reader straight to someone else and the platform records nothing. In the chosen option the link points at a redirect the platform owns, so the same citation leaves an aggregate trace before the reader is passed on. Neither has been built; every marker is hollow. REJECTED PUBLISHER URL The polite choice, and wrong CLICK LEAVES Cited, and nothing recorded CHOSEN OWN REDIRECT Cited page keeps the path CLICK LOGGED Aggregate hit, then a 302

Drawn, not captured, and deliberately not a screen: nothing here has been built, so there is no interface to show and no dashboard, listing or result that would honestly stand in for one. The whole design turns on one field in the structured data. Point it at the publisher and the assistant hands the reader away with no record; point it at a redirect the platform owns and the same citation leaves an aggregate trace. Both paths are designed only — every marker is hollow.

03As a product

Who buys it
Not the AI-curious market. The first buyer is an existing event-agency client already paying for a campaign: a wedge package that writes the release, structures it so answer engines can cite it, and reports the pickup plus real click-through. It bolts onto an invoice that already exists, which means no procurement friction. After that, in order: venues running year-round seasonal campaigns, sponsors of a trend report, and agencies white-labelling a share-of-voice view.
Value
Measurement and reach during the campaign window rather than a post-mortem. The buyer is paying to know whether their event actually showed up when someone asked an assistant what to do this weekend — a question no one in this market can currently answer with first-party data.
Positioning
Global citation-monitoring tools already do share-of-voice dashboards, so the dashboard has no moat and the strategy says so. The defensible position is upstream: proprietary local event data, years of publisher relationships behind the ingestion, and ownership of a citation chokepoint that is currently unoccupied. General listings sites hold the human audience but are not built to be machine-cited.
Status
Concept. Not commercialised, not started, explicitly framed as a capped experiment inside existing operating spend — no fundraising, no quitting the day job, no venture-scale claim.

04How it works

Stack
Specified, not implemented: static pages with structured event data; a lightweight redirect service that hashes or truncates the address at the edge; a token-gated interface server with self-hosted authentication and an access log, carried over from an earlier build; and an ingestion pipeline combining crawlers, government open-data feeds and a multimodal step for poster images.
Shape
One canonical dataset, three surfaces over it. The expensive half is ingestion; the clever half is one field in the structured data. Nothing runs at query time.
Designed architecture, five levels, none built A vertical flow chart in five levels, none of which has been built. Scheduled ingestion from press feeds, venue pages, government open data and community listings would feed a multimodal step that reads the event facts printed inside poster images once, at ingest, keeping the facts and not the images. Deduplication would produce one canonical row per real event, which splits into two surfaces of equal width: a free public layer of static, question-shaped pages, and a token-gated interface for identified business accounts. The token lane ends where it is drawn, because it is an endpoint rather than a path onward; the public lane continues into a redirect that would log an aggregate hit before passing the reader to the publisher. Every band is hollow and equal in width, which here carries both meanings at once: nothing has been counted, and nothing has been built. The two solid markers beside the rail are components already shipped on other projects and reused here by design only. INGEST Feeds, venues, open data WOULD RUN ON A SCHEDULE READ POSTERS Multimodal, once at ingest WOULD KEEP FACTS, NOT IMAGES DEDUPE One canonical row per event AUTH AND ACCESS LOG CITATION ENGINE SURFACES Static pages, or per token PUBLIC TOKEN API REDIRECT Aggregate hit, then a 302

Width uniform throughout — nothing here has been built, let alone counted, so every band is hollow and drawn at equal width and no band claims a quantity. Hollow carries both readings at once, because a thing that has never run can never have been measured.

Every band is hollow because none of this exists: no crawl has run, no record has been written and no page has been served. The two solid markers beside the rail are the only parts that are real, and they are real on other projects — an authentication and access-log skeleton, and a citation-measurement engine. The invariant the design commits to is that a person is never profiled: the redirect hashes or truncates the address at the edge and reports in aggregate only, so no click can be traced back to an individual.

The decision I spent longest on

What to put in the link field of the structured data. Publishing the publisher’s real address is the natural, polite choice — and it hands the entire value of being cited to someone else, because the assistant then gives the reader that link and the platform records nothing. Pointing the link at a redirect the platform owns, while the canonical stays on the platform’s own page, is the only configuration in which a free public layer produces measurable evidence. The second hard call was refusing to fetch anything at query time: it looks cheaper to build and makes the interface slow, unreliable and impossible to deduplicate.

05Retrieval architecture

Nothing below has been built, and the tense matters more here than anywhere else in this chapter: every layer is a specification. No source has been crawled, no record has been written, no page has been rendered and no request has ever been served. What follows is what the design commits to, read against the same six-layer frame as the systems that actually run.

Read that way, the concept is a retrieval thesis end to end. The intended reader is a machine, and the whole proposition is that a clean, dated, structured record of what is on in this city is worth owning because an answer engine will retrieve and cite it — with a token-metered interface underneath as a second, paid retrieval surface over the same data.

ModelInverted — the retrieving model is not ours. The only model the design puts in the pipeline reads facts out of poster images at ingest; the model that would do the retrieving belongs to an answer engine, and it has never had a page of ours to read.

Corpus
Specified, not built: one canonical row per real-world event — what, where, when and how much — assembled from press feeds, venue pages, government open data and community listings. The design fixes the shape before the size, on the argument that one record per real event, however many sources described it, is what makes a dataset citable at all. Not one row exists. There is no repository, no domain and no store behind any of this, and the strategy is explicit that the dataset is the asset rather than the software over it.
Ingestion
Specified as scheduled crawls across those four source categories, with a multimodal read at ingest for the large share of event details that exist only as text printed inside a poster image. The design is explicit that this read would happen once, up front, and that the extracted facts are kept while the images need not be retained. It is also named in the strategy as the hardest and most expensive part of the system, which is the honest reason nothing has been built: the layer that would make the dataset complete and fresh is the layer nobody has paid for.
Index
Specified as a precomputation rather than a store to search. Records would be deduplicated across sources, stamped with a freshness marker, and rendered ahead of time into static, question-shaped pages carrying structured event data. No embedding store appears anywhere in the design and none is wanted — the retrieval target is an answer engine reading a page, not a similarity search over a local corpus. Fetching anything at query time was rejected outright as slower, less reliable and impossible to deduplicate.
Query
None. Nothing in the design ever parses a question, and nothing was left out by accident: the question is not asked here. An answer engine arrives having already decided what it wants and reads a page written to be readable; the platform’s job at that moment is to be findable and quotable, not to interpret. The paid interface takes typed parameters from an identified account rather than natural language, so there is nothing to disambiguate on that side either. A query-understanding layer would be a component with no caller.
Selection
Two surfaces over the same specified dataset, and the first selects nothing at all: one question per static page means the choosing was done at build time, so what a machine retrieves is simply the page it landed on. The second is an explicit filter for identified business accounts — history, trend and citation-visibility data behind a token, with every call written to an access log that doubles as the usage record. Nothing would be scored or ranked, and that is a decision rather than an omission: paid placement was evaluated and killed on the grounds that pay-to-rank destroys the citation trust the free layer exists to earn. With no ranking anywhere, there is nothing that could be reranked.
Grounding
None. There is no model of ours in the answer path to constrain, and the design specifies no approval step anywhere — a record either passes ingestion or it does not. What the design constrains instead is the record rather than a generation: facts only, one canonical row, a freshness stamp, and an address hashed or truncated at the redirect so that no click can ever be traced back to a person. Those are collection rules, not guardrails on a model, and none of them has been exercised because nothing has run.

Present — this layer exists and runs.Absent by decision — the layer is not there, and the sentence beside it is the reason. Every one of the six is answered on every system in this chapter, so the rows can be read across pages.

06Numbers

MeasureFigureBasis
Code shipped0 linesVerified
Strategy document154 linesVerified
Monetisation models scored and ranked7Verified
Legal red lines written before any build7Verified
Design paths killed outright4Verified
Wedge package target price, written down and unsoldHK$10–25kVerified
Maximum penalty the privacy design is built to avoidHK$1,000,000Verified
Incremental annual revenue from the wedge packageHK$300–800kProjected
Current city-wide AI-to-event referral clicksthousands / moProjected
Time for that traffic to become material, if it ever does12–18 monthsProjected

Verified — counted in the strategy document and in the statute it cites, and confirmed by a filesystem search on 2026-08-12 that found no repository. The price row is verified as written down, not as earned: nothing has been sold and no client has been quoted. Projected — sizing estimates and a bet on timing, written into the strategy rather than derived from data. The click figure is the sharpest circularity in the whole thesis — the redirect that would measure it is precisely the thing that has not been built.

07Timeline

  1. 2026-06The idea starts narrow — an event calendar served to assistants — and the strategy document is created the same day.
  2. 2026-06Two rounds of multi-persona debate, the second including a dedicated legal reviewer working against Hong Kong statute and common law. The concept is reshaped from a consumer-facing feed into the three-layer architecture.
  3. 2026-06Seven monetisation models scored, seven legal red lines written, four earlier design paths killed outright.
  4. 2026-08Status unchanged at planning, roughly a fifth of the way through the designed scope. Next steps remain a one-page package sheet, a data-engine schema, and a reality check on how much event data actually arrives by press release.

08Looking back

What broke

The hardest work was subtraction, and the first version deserved to die. It profiled visitors by network address to infer income, age and household composition and publish research from it. The legal pass killed that twice over, on collection and on direct marketing, and the technical pass killed it independently — a remote interface server only ever sees a datacentre address, never a reader’s home connection. A second attractive idea, selling paid placement, was killed because pay-to-rank destroys the citation trust the free layer exists to earn. Also ruled out: repackaging confidential venue data, per-booking conversion matching or exporting click-level addresses, cold-emailing an existing client list about a new product, scraping login-walled sites, and making a bare first-or-most-complete claim without dated evidence, which is a criminal exposure here rather than a marketing quibble.

What it changed

Writing the legal red lines before the schema changed the architecture rather than an appendix: six of the seven constraints show up in the design itself — hashing at the redirect, aggregate-only reporting, token-identified business users instead of consumer profiling, inbound acquisition instead of list-based outbound, and facts-only data licensing. It also produced something rare for a founder-led concept: a written admission that the thing is not venture-scale, that the whole sell-side rests on one variable nobody controls, and that the correct response is a capped experiment rather than a raise.

Where it stands

Planning, not building. One decision gate governs everything: whether AI-to-event referral traffic here ever becomes material. If it does not, everything except the services wedge collapses, and this stays a good add-on to an event agency rather than a platform. The chokepoint is currently empty, and someone larger could take it first.

Back to Top