Schema values are making the type system feel like ordinary Hara
A field note on the boundary between typed values, portable forms, and the compiler.
Community reader · World v2
World becomes deliberately smaller: a ranked index of articles and feeds, portable clippings, durable comment threads, visible community presence, and contributor profiles grounded in packages and reviewed work. Learning moves out to its own route.
Screen 01 · Article and discussion index
The home page behaves like a small technical Reddit: sources first, visible provenance, compact ranking, and discussion counts. It does not attempt to be a course, project manager, or game hub.
Front page
A field note on the boundary between typed values, portable forms, and the compiler.
Execution asks what can happen now; storage answers what already happened. The ABI can remain ordinary data between them.
Release notes, migration surface, and three source-linked examples.
Trying to keep the portable surface useful without hiding the native boundary.
Every article and clipping keeps its canonical origin visible. World is the discussion index, not the owner of the source.
Votes, age, source, and comment count support discovery without replacing editorial provenance.
The daily object is a community snippet with a thread. Structured instruction belongs to Learn.
Screen 02 · Article and comment thread
Comments are durable, nested, and identity-rich. User mentions link to profiles. Bot comments are visibly labelled and permitted only while an accountable owner is present.
The article remains on its canonical site. World carries the source facts, a short summary, related clippings, and the community conversation.
The useful change is that tooling no longer needs a parallel schema registry. @chris, does the compiler now receive the same value that a normal program can inspect?
std.typed 1.4.0 now exports 18 public schema forms. The release and package index agree at commit 5ce1….
I would like the article to link one counterexample where metadata is still the better boundary. Otherwise the “ordinary value” claim reads broader than the current implementation.
User mentions, contribution marks, packages, and bots all resolve to inspectable profiles.
Automation is welcome in discussion only when its accountable human owner is visibly present.
The thread can outlive a feed refresh without copying ownership of the article.
Screen 03 · Clipping composer and preview
A clipping is the bridge between a link and a discussion: a selected excerpt, canonical URL, the clipper’s note, topics, and a stable comment thread.
Create clipping
The executor answers what can happen now; the store answers what already happened. Their shared boundary can remain ordinary data.
This is the clearest explanation I have seen for why work.* does not need a large runtime object.
The source URL, excerpt, note, topics, and author are enough to render the clipping elsewhere.
A clipping has its own stable thread and can be referenced by later comments.
Quote length and provenance are visible before publication.
Screen 04 · Community presence
Presence is approximate, opt-in, and thread-oriented. It shows who is reading, commenting, or maintaining relevant packages—and connects every active bot to its present owner.
Online now
Four bots are active because their accountable owners are also present.
People actively writing or replying.
People with presence sharing enabled.
Package maintainers in relevant discussions.
Every bot is connected to a present owner.
Presence helps a small language community feel inhabited without pretending to be a chat platform.
Maintainer and thread activity make it easier to know when a question may receive an informed response.
The visual relationship between bot and owner is part of the identity contract.
Screen 05 · Contributor and package profile
The profile is not a generic social biography. It centres reviewed contributions, maintained packages, evidence-linked badges, useful comments, clippings, and accountable bots.
Contributor profile
Package maintainer working on typed values, durable workflows, and build tooling.
Evidence-linked identity
Badges describe reviewed work. Each one opens the evidence behind it.
Accepted after the legacy lint corpus remained unchanged.
Open discussion →Published package record and migration clipping.
Open release →18 comments across the architecture thread.
Open clipping →Automation with an owner
Bot permissions, sources, and comment activity are visible beside the human account.
Reports exact package and CI facts into relevant threads.
Drafts package release summaries from reviewed manifests.
Profiles answer what a person maintains, reviews, publishes, and helps explain.
Every badge links to a public record rather than an opaque point score.
Owned automation appears on the same profile as its permissions and activity.
Screen 06 · Route boundary
The routes remain connected through links and snippets, but they no longer compete for the same navigation, information architecture, or account progression.
One language · two focused routes
World can surface a snippet, article, clipping, or comment that sparks curiosity. Structured instruction and progress continue on Learn.
What the Hara community is reading, publishing, maintaining, and saying.
How someone learns the language through a coherent curriculum and executable practice.
Example handoff
World hosts the snippet, source attribution, votes, clippings, and comments. A reader who wants the underlying concept follows a deliberate link into Learn.
(->> entries
(filter :published?)
(sort-by :score >)) Its navigation describes content and discussion rather than mixing in curriculum state.
Tutorial structure, execution, progress, and pedagogy can evolve without making World heavier.
The same Hara identity can link a contributor profile and a separate learning profile without merging the products.