Hara visual language World onboarding field test

Programmer acquisition study · World v2

Don't explain the language first. Let people use it.

The brand promise is expressed through interaction: see an interesting Hara program, run it immediately, change it, discover who made it, and find a path toward making something of your own. Account creation happens only when there is something worth keeping.

See code→Run→Change→Make→Share→Meet people

Screen 01 · Anonymous first arrival

The first feed item is a program, not a pitch.

A visitor should cross the psychological threshold of “I can operate this language” before World asks for identity, preferences, or commitment.

Hara World

See what people make. Try the language while you read.

No account needed
H
30-second HaraFirst program · executable
About 10 seconds

What does this program return?

(+ 20 22)
128 people tried thisNothing is stored until you choose to save.
ShowcaseProcedural garden

See the result first, then reveal the Hara behind it.

Run demo →
Question
(map inc [1 2 3])
Why is a list executable?

A question can carry the smallest runnable reproduction.

Answer with code →
Zero-friction execution

The first meaningful button is Run. No sign-in, download, tutorial wizard, or project scaffolding comes first.

Programming objects

Showcases, questions, projects, snippets, challenges, and releases each expose different programming-native actions.

Output before abstraction

Interesting results attract people who want to make things; language concepts can be explained after curiosity exists.

Screen 02 · First successful run

Turn one click into “I can change this.”

The post-run state should not congratulate the visitor and stop. It immediately exposes editable source and a second tiny success.

✓

First run complete

You just ran Hara.

Now make the program yours.

42

Change one thing

Local session
Output42
01
Run something

Done. You executed Hara in the browser.

02
Change something

Edit one value and see the result change.

03
Make something

Choose a direction that looks interesting.

Next from the feed

Square a few numbers.

Hara becomes recognizable through repetition, not a syntax lecture.

(map #(* % %) [1 2 3 4])
Second success immediately

After Run, the next action is Change. Momentum is more valuable than a celebratory modal.

Explain on demand

Terminology stays available in the inspector, but the primary surface remains an editable program and visible result.

Save creates the auth moment

Authentication is contextual: “keep this thing you made,” not “create an account to begin.”

Screen 03 · Intent selection

Ask what they want to make, not why they joined.

Two lightweight choices are enough to transform the experience: creative intent and existing programming context. Everything remains skippable.

Make World useful to you

What do you want to make?

Choose as many as feel interesting. This changes what World shows first; it does not lock you into a track.

How familiar are you with programming?
Build my feed →No account required.
Intent over demographics

“What do you want to make?” directly improves programming discovery and reinforces Hara as a creative tool.

One brand, different entrances

New programmers, experienced programmers, and Lisp programmers can share World while receiving different levels of explanation.

Always skippable

Personalization should feel like a useful shortcut, not an onboarding tollbooth.

Screen 04 · Personalized programming feed

Replace Like and Comment with Run, Remix, Use, and Answer with code.

The feed becomes a catalogue of things a programmer can do. Social signals describe participation in the work rather than generic engagement.

For you · Graphics + Games + Language tools

Things you can run, change, and join.

ML
Maya L.showcase · graphics
live canvas

Particle garden in 34 lines of Hara

I wanted to see how far a tiny dataflow loop could go before adding an engine.

(watch particles
  (fn [state]
    (map step-particle state)))
312 tried · 41 remixed
JN
Jin N.snippet · language tools

A tiny state transition reads almost like data.

Can this be made smaller without hiding the shape?

(defn step [state event]
  (get-in transitions [state event] state))
84 tried · 17 remixed · 9 saved
SK
Sam K.question · macros

Why is this symbol captured after expansion?

I reduced the problem to this form. What am I missing?

(let [x 10]
  (my-binding x))
6 answers · 19 following
LW
Little Worldproject update · simulation

Flocking is working. Audio is next.

A tiny programmable world built in Hara. The project is looking for someone curious about spatial audio.

GamesGraphicsSimulationBeginner friendly
2 builders · 4 followers · help wanted
Programming-native verbs

Run, Remix, Answer with code, Use, Save, and Follow project tell visitors what kind of community this is.

Participation metrics

“84 tried · 17 remixed” carries more cultural meaning for Hara than a like count.

Outputs recruit programmers

Showcases put compelling results before implementation details, then make the source one click away.

Screen 05 · First saved identity

After sign-in, ask one human question.

The newcomer already has programming context from their actions. World should preserve that momentum instead of replacing it with a long profile form.

✓

Saved successfully

You're part of Hara World.

Your program is safe. Everything else can happen when it becomes useful.

One question for now

Public profile

Your first Hara day

Real programming milestones

✓
First run

Executed Hara in the browser.

✓
First change

Modified a program and saw a new result.

✓
First save

Kept a program worth returning to.

04
First challenge

Solve something and compare approaches.

05
First contribution

Help a project, answer a question, or share something.

People near your interests

Follow work, not celebrities.

Because you chose Graphics + Games
ML
Maya L.

Procedural graphics · animation · Hara learner

Building Particle Garden
JN
Jin N.

Language tools · macros · compilers

Maintains two small Hara packages
AN
Ana R.

Games · audio · simulations

Looking for collaborators
Minimal profile pressure

The system already knows the newcomer ran, changed, and saved something. Ask only what they hope to make.

Real milestones

No invented XP. Recognition maps to actions that actually deepen programming participation.

Follow work

Recommendations explain the shared interests and projects that make another programmer relevant.

Screen 06 · Community participation

Belonging starts with work that has a shape.

People become interesting because of projects, questions, packages, and contributions. The community surface should make it obvious where a newcomer can join in.

Community · Projects first

Find something you want to help make.

Browse by work, then meet the programmers around it.

WM
Wombat Motion LabAnimation · Learning

Teach motion by programming a character.

A collection of tiny Hara programs that drive a rigged wombat.

Beginner friendlyGraphicsEducation
AD
Agent DockAgents · Tools

A tiny dashboard for local Hara agents.

Looking for people to test the interface with their own agents.

AgentsWebFeedback wanted

Help wanted

View all
Beginner friendly
Add another movement to the wombat sample

Wombat Motion Lab · animation

Feedback
Is this package API understandable?

std.audio experiment · 10 min

Docs
Write one small example for a transform function

hara.math · first contribution

New programmers

This week
SK
Sam joined today

Interested in generative graphics and learning Lisp.

First Hara program complete
NR
Nina solved her first challenge

Working through functions and sequences.

3 programs run
JR

Question · runnable reproduction

How would you make this stop after the first match?

5 answers
(filter selected? items)

Every answer can fork the same starting program, so discussion remains attached to executable context.

Projects before popularity

People are discoverable through what they are building, not follower counts or generic profile prominence.

Visible paths to contribution

Help wanted, feedback requests, and good-first tasks turn passive learning into participation.

Newcomers are visible

Showing first programs and first challenges communicates that new programmers are arriving now and belong in public space.