About

How hoodpedia works

Three categories, one permalink scheme, structured data on every entry, and a review step before anything is published.

The content model

There are exactly three entity categories. Keeping the set closed is what makes the directory easy to search, easy to link and easy to describe to a search engine. The subtype is a field on the record, never a fourth category.

  • Person, schema.org Person. Subtype field role: founder, author, writer, CEO or investor.
  • Organization, schema.org Organization with an additionalType. Subtype field org_type: company, startup, VC, accelerator, NGO, college or government, mapped to https://schema.org/Corporation, https://schema.org/FinancialService, https://schema.org/Organization, https://schema.org/NGO, https://schema.org/CollegeOrUniversity, https://schema.org/GovernmentOrganization.
  • Place, schema.org Place with an additionalType. Subtype field place_type: city, state, country or area, mapped to https://schema.org/City, https://schema.org/AdministrativeArea, https://schema.org/Country.

One schema type is one category and never two. An organization is never typed as a Person, and a place never borrows the Organization type, so no page can claim a type that belongs to another category.

Permalinks are short, lowercase and hyphenated, with no trailing slash and no id in the URL. A number in a path is a link that breaks the moment a database is migrated, so ids never appear.

The category hub for each of the three is the singular prefix itself: /person, /organization and /place. Those are the pages the breadcrumb trail and the structured data point at, so no crumb ever leads to a page that does not exist.

When two records share a name, the slug carries a qualifier: the city for a person or an organization, the kind of area for a place. /place/bengaluru-rural is the district and /place/bengaluru is the city, and the two stay readable and distinct.

A rename never breaks a link. The old slug is recorded on the record and answered with a permanent redirect, so /organization/zerodha-broking-ltd redirects to /organization/zerodha with HTTP 301.

Structured data

Every entry emits one JSON-LD block containing the entity, the page, the breadcrumb trail and the site. Person entries carry birth place, education, employer and known topics. Organization entries carry founding date, founders, industry, employee count and address. Place entries carry coordinates, the areas they sit inside and population. Each record also keeps sameAs links (website, LinkedIn, X, Wikidata), which is the hook the Knowledge Graph reads.

Images

Every entity has an image field: a logo for an organization, a portrait for a person, a hero shot for a place. An entry without an image shows an initials tile instead of a grey box, and the image control on the submit form previews the crop in the exact aspect ratio the entry page uses.

Advertising

Image advertisements are described in one config file (lib/ads.ts) and rendered by one component. Every slot is labelled Advertisement, reserves its space with a fixed aspect ratio so nothing shifts on load, lazy loads the creative, and can be switched off per page from config.

Verification and review

A verified entry has been checked by the team and carries a lime badge. Claim requests and new entries both land in the same review queue, and an admin approves or rejects each one before it changes what the site shows.

Editing without a rebuild

Every cached unit of content carries a tag: one tag per entity page, one per category list, and one each for the header and the footer. A publish event calls POST /api/revalidate with the tags it touched, so a single page or just the chrome refreshes on the next request, and the site is never rebuilt end to end. ARCHITECTURE.md carries the full contract.

About this build

The data currently comes from a JSON seed of 9 real Indian entities, images and advertisements are branded placeholders, the request queue is a file on disk, and the admin password is a single value in an environment file. The pages, the routes, the structured data and the permalink scheme are real and ready to be pointed at a database.

Canonical origin for this build: https://hoodpedia.com.