morarfora

Live product · two guided paths

Moving countries is one decision.
Planning it is hundreds.

MorarFora makes a few of those decisions concrete. Test two real tools — no login, no copied demo, no private source.

Try the real product

Two paths. One clear question each.

0 of 2 paths tested

Educational planning tools only — not immigration advice. Always confirm decisions with official Canadian sources or a qualified professional.

Case study

Editorial context around interactive decisions.

The private Astro product combines long-form guidance with small utilities. The public proof is the real interaction: inputs are visible, results react immediately, and visitors can inspect assumptions instead of trusting a generic ranking.

Product boundary
This repo links to the live tools; it does not mirror private source or content operations.
Public v1 boundary
CRS and city comparison only. TCF material remains outside this release.
Success signal
A visitor can form and test one immigration-planning hypothesis in under a minute.

Two real workflows

Each tool reduces a different kind of uncertainty.

01 · CRS CALCULATOR

From profile facts to a traceable score

  1. Capture age, education, language, work, and relationship inputs.
  2. Normalize selections to versioned score-table keys.
  3. Evaluate independent factor groups and transferability combinations.
  4. Show the total beside the contribution of each group.
  5. Invite one-input-at-a-time scenario testing.

UX decision: inputs stay visible after calculation so a visitor can explain why the score moved.

02 · CITY COMPARISON

From rankings to explicit trade-offs

  1. Select two destinations from a versioned city dataset.
  2. Align cost, housing, climate, transit, and opportunity dimensions.
  3. Normalize unlike units for visual comparison without hiding raw values.
  4. Place advantages and constraints side by side.
  5. Turn “best city” into “best compromise for this priority.”

UX decision: no opaque winner is produced; the user owns the weighting and final judgment.

Private product architecture

Astro serves content first; interactive islands earn their JavaScript.

Static by default

Editorial pages ship useful HTML before client code and remain indexable, fast, and resilient.

Small interaction boundary

Only the calculator and comparison controls hydrate; navigation and content do not require an app shell.

Data outside components

CRS tables and city facts live as versioned data, avoiding numeric rules scattered across templates.

No account state

Calculations stay in the visitor's session. The public flows need no profile, payment, or analytics identity.

Logic · explicitly pseudocode

Enough detail to evaluate the design, without exposing private code.

CRS FACTOR ENGINE · PRIVATE-PRODUCT PSEUDOCODE
profile = validate(form_values)
base = score_table.lookup(profile.core_factors)
language = score_language(profile.tests)
transfer = cap(score_transferability(profile), table.max)
return explain(base + language + transfer)

This describes the flow and boundaries; it is not copied from the private repository.

CITY COMPARISON · PRIVATE-PRODUCT PSEUDOCODE
left, right = cities.require(selected_ids)
dimensions = schema.comparable_fields
return dimensions.map(field => ({
  raw: [left[field], right[field]],
  normalized: normalize(field)
}))

Raw values stay available beside normalized presentation so the UI does not manufacture certainty.

Source update workflow

Numbers carry provenance and effective dates.

  1. 01 · Monitor

    Track official rule/table changes and scheduled dataset reviews.

  2. 02 · Stage

    Update a new version with source URL, retrieval date, effective date, and notes.

  3. 03 · Validate

    Run schema, range, boundary, and known-scenario fixtures before activation.

  4. 04 · Review

    Compare representative outputs and editorial explanations against the previous version.

  5. 05 · Release

    Activate the version atomically and retain the old fixture for regression history.

CRS decisions should always be confirmed against current official Canadian sources. The calculator is educational, not legal advice.

Quality and limits

The case proves product reasoning, not immigration outcomes.

2live, zero-login flows
0private source files published
0TCF corpus items included
AAcontrast and keyboard target
npm install
npm run serve
npm run test:all