Karma Yatra is a pilgrimage and yatra platform. It exists so that a traveler can browse sacred journeys, register or join one, and follow its itinerary and updates through to completion; so that an organizer can publish yatra details, itineraries, and schedules and manage the registrations and participant communication that make a yatra run; and so that a platform administrator can oversee the published catalog, organizer accounts, and participant records and resolve issues that block journeys.
The product intent is derived from the authoritative user requirement thread: build the platform Karma Yatra from the project briefs, with the project briefs as the authoritative content source for the platform's scope and features. The briefs themselves were referenced but not supplied in the authoritative source text; this document therefore specifies the platform's structure, actors, ownership, and behavior at the level the accepted requirement thread and planning scope establish, and treats the briefs as the authoritative source that governs the platform's detailed scope and features.
The audience is spiritually motivated rather than transactionally motivated. The interface is expected to feel honest, calm, and unhurried — a working platform wearing the surface of paper rather than a dashboard.
Karma Yatra is delivered as a first-party web application with custom UI and application-owned identity. It comprises:
Actors are the closed accepted persona set — Pilgrim / Yatra Participant, Yatra Organizer / Operator, and Platform Administrator — plus the platform's own backend processes that persist yatra, registration, and account state.
Accepted behavior covers: anonymous catalog browsing and yatra detail review; self-service enrollment and returning verification; participant registration/joining and management of their own participation details; organizer creation and publishing of yatra details, itinerary, and schedule; organizer management of registrations and communication of journey updates to participants; and administrator oversight of published yatras, organizer accounts, and participant records.
Narrow exclusions: this document does not add adjacent capabilities beyond the accepted thread and planning scope — no payment processing, no messaging or social features, no recommendation engine, no third-party booking integration, and no account-management surface beyond the enrollment and verification owned by Login. The project briefs remain the authoritative source for the platform's detailed scope and features; where the briefs specify additional detail, that detail governs.
Karma Yatra is delivered as a first-party application. The application owns its own identity: a participant or organizer establishes access to protected work by completing self-service enrollment and returning verification through the Login surface, and an administrator account is provisioned before the administrator can reach the Admin oversight workspace. Role-appropriate authorization is enforced for the organizer and administrator working destinations, so that a participant's own participation workspace, an organizer's publishing and registration workspaces, and the administrator's oversight workspace each remain bound to the correct participant.
Anonymous access is a deliberate part of the product, not a gap: a visitor can browse the yatra catalog and open yatra details before any identity establishment. The protected destinations — My Participation, Create Yatra, Registrations, and Admin — require established identity and the appropriate role. Login is itself anonymously reachable, because a protected destination cannot own the interaction that establishes access to itself.
Current delivery covers the accepted journeys described in this document. Future or unspecified work — including any capability the project briefs describe that is not represented in the accepted requirement thread — remains outside current acceptance and is not implemented as part of this scope.
The reference directive for the project briefs declares content_source with authoritative authority, but the briefs' content was not included in the authoritative source text. No verified factual entities, collection items, fields, values, descriptions, dates, contacts, links, or media references from the briefs are available to inventory. The briefs remain the authoritative source for the platform's scope and features and must be consulted directly for their content.
FR-1 — Anonymous catalog browsing (explicit) As a Pilgrim / Yatra Participant, I should browse the yatra catalog and open yatra details anonymously, before any identity establishment, so that I can evaluate journeys before committing to one.
FR-2 — Self-service enrollment (required_inference) As a Pilgrim / Yatra Participant or Yatra Organizer / Operator, I should complete self-service enrollment through Login so that I can manage my participation or publish yatras.
FR-3 — Returning verification (required_inference) As a Pilgrim / Yatra Participant, Yatra Organizer / Operator, or Platform Administrator, I should verify my identity through Login so that I can resume my own protected work.
FR-4 — Administrator provisioning (required_inference) As a Platform Administrator, I should have my account provisioned before I can reach the Admin oversight workspace, so that oversight access is not self-granted.
FR-5 — Role-appropriate authorization (required_inference) As the platform, I should enforce role-appropriate authorization for the organizer and administrator working destinations so that each actor reaches only their own working surface.
FR-6 — Participant registration and joining (required_inference) As a Pilgrim / Yatra Participant, I should register for or join a yatra so that I can take part in the journey.
FR-7 — Participant management of own participation details (required_inference) As a Pilgrim / Yatra Participant, I should manage my own participation details so that my journey information stays correct through to completion.
FR-8 — Organizer creation and publishing of a yatra (required_inference) As a Yatra Organizer / Operator, I should create and publish a yatra's details, itinerary, and schedule so that participants can discover and register for it.
FR-9 — Organizer management of registrations (required_inference) As a Yatra Organizer / Operator, I should review and manage the registrations on my yatras so that the yatra is fully subscribed and well run.
FR-10 — Organizer communication of journey updates (required_inference) As a Yatra Organizer / Operator, I should communicate journey updates to participants so that participants are informed at each stage.
FR-11 — Participant receipt of journey updates (required_inference) As a Pilgrim / Yatra Participant, I should receive the journey updates my organizer sends so that I stay informed at each stage of the yatra.
FR-12 — Administrator oversight of published yatras (required_inference) As a Platform Administrator, I should oversee published yatras so that the catalog stays healthy and trustworthy.
FR-13 — Administrator oversight of organizer accounts (required_inference) As a Platform Administrator, I should oversee organizer accounts so that publishing remains trustworthy.
FR-14 — Administrator oversight of participant records (required_inference) As a Platform Administrator, I should oversee participant records so that participation flows keep functioning.
FR-15 — Administrator issue resolution (required_inference) As a Platform Administrator, I should resolve issues that block journeys so that participants and organizers can complete their work.
FR-16 — Briefs as authoritative scope source (explicit) As the platform, I should follow the project briefs as the authoritative source for the platform's scope and features, so that the delivered platform matches the intended product.
The traveler for whom the Karma Yatra platform exists. They arrive without an account and browse the catalog anonymously, reading a yatra's details, itinerary, and schedule before deciding whether to commit. Their commitment is spiritual rather than transactional, so the decision is unhurried and the information they need is the written record of the journey — where it goes, when, and for how long.
Their primary goal is to complete a yatra: to select one, register or join it, and follow its itinerary and updates through to the end. Their distinct accepted responsibilities are registering for or joining a yatra, managing their own participation details so their journey information stays correct, and receiving the journey updates their organizer sends. Their relevant inputs and decisions are the yatra they choose from the catalog and the accuracy of their own participation details. They interact with the Yatra Organizer / Operator as the party who publishes the yatra and sends updates, and with the Platform Administrator only indirectly, as the party who keeps the catalog and participation flows functioning. Their observable success is a participation record that reflects their chosen yatra and stays correct through to completion, with the organizer's updates reaching them at each stage.
What makes this role's work different: the participant is the only actor whose work is entirely about their own single journey — they never see another participant's records, never publish, and never oversee the catalog. Their workspace is personal and recurring, and their success is measured by completing the journey rather than by managing anything.
The party that creates and runs yatras. They come to the platform to publish a journey and then to run it: they author the yatra's details, itinerary, and schedule, and they manage the registrations that follow and the communication that keeps participants informed.
Their primary goal is a fully subscribed, well-run yatra with participants informed at each stage. Their distinct accepted responsibilities are creating and publishing yatra details, itinerary, and schedule; reviewing and managing registrations on their yatras; and composing and sending journey updates to participants. Their relevant inputs and decisions are the yatra content they author, the publication decision, registration status changes, and the content and timing of journey updates. They interact with the Pilgrim / Yatra Participant as the party who registers and receives updates, and with the Platform Administrator as the party who oversees their account and published yatras. Their observable success is a published yatra that appears in the catalog, registrations they can review and manage, and updates confirmed as sent to participants.
What makes this role's work different: the organizer is the only actor who authors product content and the only one who initiates communication to another persona. Their work spans two distinct responsibilities — publishing a yatra once, and running its registrations and communication repeatedly — and their success depends on another persona's response (participants registering and staying informed).
The operator of the Karma Yatra platform itself. They do not travel and do not publish; they keep the platform's catalog and participation flows healthy so that the other two personas can do their work.
Their primary goal is a healthy, trustworthy catalog of yatras and functioning participation flows. Their distinct accepted responsibilities are overseeing published yatras, overseeing organizer accounts, overseeing participant records, and resolving issues that block journeys. Their relevant inputs and decisions are the state of published yatras, the standing of organizer accounts, the integrity of participant records, and the resolution action appropriate to a blocking issue. They interact with the Yatra Organizer / Operator through oversight of organizer accounts and published yatras, and with the Pilgrim / Yatra Participant through oversight of participant records. Their observable success is a catalog whose published yatras are trustworthy and participation flows that continue to function.
What makes this role's work different: the administrator is the only actor with a cross-cutting view — they see published yatras, organizer accounts, and participant records together, and their work is corrective rather than creative or participatory. Their account is provisioned rather than self-enrolled, which reflects that oversight access is not self-granted.
The creative direction is authoritative for this section. Muse: Kenya Hara. Headline: Emptiness as the path — Karma Yatra after Kenya Hara. The surface should feel like paper, not a dashboard: vast quiet space, natural materials, one calm object, whispering type.
Colour tokens (light mode, authoritative):
| Role | Hex | Use |
|---|---|---|
| Background | #F4F1EA | Paper-white / unbleached beige ground; roughly 78% of any screen is background or surface |
| Surface | #FBF9F4 | Raised paper surface |
| Text | #2A2A28 | Soft charcoal ink; never pure black |
| Primary | #3B3A36 | Deep stone grey for rules, headings, and the wordmark |
| Accent | #B4552D | Muted terracotta/rust; used only for the primary CTA, the active nav indicator, or one line of emphasis per section — never as a fill for large areas |
| Muted | #8C877C | Warm grey for metadata, timestamps, and secondary labels |
| Hairline | #D9D4C8 | 1px rules and card borders |
No gradients, no shadows beyond a 1px hairline, no coloured surfaces except one accent block per page at most. Dark mode is not the default surface; if a dark variant exists it must keep the same hairline discipline and the single terracotta accent.
Typography:
0.02em, leading 1.15. Sentence case, never all-caps, never bolder than 400. Display sizes clamp(56px, 12vw, 128px) for the hero wordmark; 28px–48px for section headings.Shape language: Square proportions and thin rules. Cards are not rounded — soft-cornered at most 2px, defined by a single 1px hairline in #D9D4C8 rather than a shadow. Section boundaries are full-width horizontal rules, not boxes. Buttons are rectangular with 2px radius, 1px border, and no fill except the primary CTA, which is a solid accent block. Imagery is square or 4:5, never 16:9. No blobs, no pills, no floating layers.
Layout: Centered single-column compositions with abundant margin — 96px gutters at 1280px, 48px at 768px, 24px at 375px. The catalog is a vertical list of yatras, each row a full-width band with the yatra name in large serif on the left, date and duration in muted small caps on the right, and a single hairline beneath. No card grid. Landing is a stack of quiet bands separated by full-width rules: wordmark, one sentence of purpose, a single featured yatra, then the catalog preview. Admin and Registrations use the same centered measure (max 880px) with tabular rows — label left, value right, hairline between — so dense data still breathes. Navigation is a single top rule with the wordmark left and four text links right, no background fill, no sticky chrome until scroll.
Imagery: One still-life photograph per major band: a single object on a plain ground — a walking stick, a folded map, a pair of worn sandals, a temple step in morning light, a hand holding a paper ticket. Shot on paper-white or unbleached beige, soft natural light, no people's faces, no crowds, no stock-photo spirituality. Where photography is unavailable, use a single thin-line diagram (a route line, a calendar grid, a topographic contour) in 1px stone grey. No illustration for its own sake, no icons beyond the minimum needed for wayfinding.
Avoid: any blue or indigo (#0057FF, #2563EB, #6366F1, or neighbours); Inter, Roboto, Arial, Helvetica, Open Sans, Lato, Poppins, or system-ui as heading or body fonts; gradient-blob heroes, mesh gradients, glassmorphism, frosted panels, soft multicolour washes; grids of identical hover-lift cards with drop shadows; rounded pill buttons, large corner radii, floating action buttons; stock photography of crowds, faces, or "spiritual" clichés (lotus flowers, om symbols, sunsets over temples); marquees, tickers, parallax scroll-jacking, and any motion that draws attention to itself. The generic indigo/blue-on-white SaaS template is forbidden for this project.
The paper field and the single object.
The Landing hero is a full-viewport paper-white field (#F4F1EA) with a single centred object: a 4:5 still-life photograph of a worn walking stick and a folded paper itinerary on an unbleached cloth, placed slightly below the optical centre, occupying roughly 38% of the viewport height on desktop and 30% on mobile. Above it, set in Cormorant Garamond Light at clamp(56px, 12vw, 128px), the wordmark Karma Yatra spans the measure in sentence case with 0.02em tracking. Beneath the wordmark, a single line of 18px body text in muted grey: "Journeys walked with intention."
There is no button in the hero itself. The first CTA — Browse yatras — sits as a plain text link with a 1px underline, 48px below the image, so the eye travels wordmark → object → path. No gradient, no blob, no floating UI, no centred blue button. The composition is a single vertical axis with generous air on both sides; at 375px the wordmark wraps to two lines and the image sits directly beneath it with 24px gutters.
Below the hero, the page continues as a stack of quiet bands separated by full-width horizontal rules in #D9D4C8 with 96px of air above and below: the purpose sentence, a single featured yatra, then the catalog preview. The catalog itself is a vertical list of full-width bands — large serif yatra name left, muted small-caps date and duration right, a single hairline beneath — never a grid of identical cards, never a hover-lift. A single muted terracotta (#B4552D) accent appears exactly once per page: as the primary CTA fill, the active nav underline, or one emphasised word in a section heading — never as decoration, never as a second accent.
This concept recomposes only accepted content, states, and controls: the wordmark, the purpose line, the featured yatra, the catalog preview, and the link into Yatras. It introduces no new behaviour, page, or destination.
Interaction Model: Static (direction) Motion Tempo: still Hero Dimensionality: flat
Landing Hero Motion Brief
prefers-reduced-motion, all scroll-reveal fades and drifts are removed and every band renders in its final position immediately; hover colour changes and the nav underline remain as instant state changes without transition; page transitions become immediate. The composed first frame is unchanged, and all readable text and controls remain whole and fully inside the viewport at 375px, 768px, and 1280px.The restraint is the point: the platform should feel like turning a page, not operating a machine.
NFR-1 — Durable state (required_inference) The platform must persist yatra, registration, participation, account, and journey-update state durably, so that a participant's participation, an organizer's published yatras and registrations, and an administrator's oversight records survive across sessions. Rationale: the accepted journeys require participants to resume their own participation and organizers to return to their registrations and published yatras.
NFR-2 — Application-owned identity and session continuity (required_inference) The platform must establish and verify application-owned identity through Login, and must bind protected state — participation, published yatras, registrations, and oversight records — to the correct participant. Rationale: the accepted journeys require each actor to privately own and resume durable actor-specific state, and commitments and records must remain bound to the correct participant.
NFR-3 — Role-appropriate authorization (required_inference) The platform must enforce role-appropriate authorization for Create Yatra, Registrations, and Admin, so that only an organizer reaches the organizer workspaces and only an administrator reaches the oversight workspace. Rationale: the accepted planning scope establishes differentiated control over shared product state for these destinations.
NFR-4 — Anonymous access to public surfaces (explicit) Landing, Yatras, Yatra Details, and Login must remain reachable without established identity, and protected state must remain unavailable until identity is established. Rationale: anonymous catalog browsing and yatra detail review before identity establishment are accepted behavior, and a protected destination cannot own the interaction that establishes access to itself.
NFR-5 — Readable text and controls at every viewport (explicit)
Headlines, wordmarks, labels, numbers, and card text and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, and no other element may cover any part of them. Imagery, decoration, and motion may be cropped, bled off an edge, rotated, overlapped, or cut as the creative direction asks, as long as they cover no readable text or control. With prefers-reduced-motion, a usable static arrangement must be provided.
NFR-6 — Briefs as authoritative scope source (explicit) The platform's scope and features must follow the project briefs, which are the authoritative source. The briefs' content was not included in the authoritative source text and must be consulted directly.
NFR-7 — Backend integration (required_inference) The platform requires backend integration to persist and serve yatra, registration, participation, account, and journey-update state to the custom UI. Rationale: the accepted journeys depend on durable, actor-bound state that the custom UI reads and writes.
No technology choices were specified in the authoritative user requirement thread or the planning scope. The following are coherent defaults, labelled as such.
[Default — not specified by user][Default — not specified by user][Default — not specified by user][Default — not specified by user][Default — not specified by user]Where the project briefs specify technology, the briefs govern and these defaults are replaced.
Constraints
Assumptions
#D9D4C8 used as the only separator and border treatment.#B4552D, appearing exactly once per page.No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!