Prompt to Premium.

halcyon.dev
◆ shipping — 2026-04-29

A journaling
daemon
for your $HOME.

halcyond runs locally. Writes land in a plaintext append-only log. Signed, tarred, optionally piped to stdout. Zero network by default.

↪ brew install halcyon·cargo add halcyon·curl halcyon.dev/install.sh
~/journal/2026-04-20.log● live
$ halcyon --since=today
[08:14] long walk, fog lifted around 9.
[12:02] draft essay stalled at §3.
[19:47] reread what i wrote — fine.

$ halcyon commit --sign
→ 3 entries sealed (ed25519)
→ sha256: 4a7f…bc12
avg flush
0.4ms
memory
3.8MB
deps
00
halcyon.sys
▌ Release 04 / Public

STOP
PERFORMING.
WRITE.

One sentence a day. No streaks. No metrics. No audience. Halcyon is a journal that refuses to become a product.

Words, lifetime
142,807
Days kept
03,412
Features shipped
00,000
→ Built for the quiet ones
↘ No cloud. No account. Never.
◆ v04 — public now
halcyon.press
Issue Nº 04 — Winter

A quiet place to put the day.

Halcyon is a journal for long mornings and slower evenings — one sentence a day, no streaks, no metrics, no performance.

12 min · Essay
Editorial
Brutalist
Technical
Introducing the Taste Card

A/B pick between designs. Over time, your palette, typography, density, and motion preferences emerge into a Taste Card — uniquely yours, shareable, embeddable. Compounds with every pick.

@mia's taste

Taste Card
Palette
Oat Clay
Type
Instrument × Söhneserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Vega × Orion
Trained on 47 picks

@alex's taste

Taste Card
Palette
Paper Navy
Type
Geist Restrainedsans
Motion
Restrained Globalrestrained
Density
restrained
Nearest
Clio × Corvus
Trained on 83 picks

@jun's taste

Taste Card
Palette
Paper Graphite
Type
Söhne Breitsans
Motion
Zerozero
Density
generous
Nearest
Halcyon × Sable
Trained on 32 picks

@casey's taste

Taste Card
Palette
Paper Ink
Type
Geist Starksans
Motion
Scroll Parallaxscroll
Density
dense
Nearest
Polaris × Ignis
Trained on 61 picks

@sage's taste

Taste Card
Palette
Peach Clay
Type
Chronicle Lifestyleserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Dawn × Calyx
Trained on 54 picks

@luca's taste

Taste Card
Palette
Burgundy Linen
Type
Tiempos Editorialserif
Motion
Zerozero
Density
generous
Nearest
Vesper × Rune
Trained on 38 picks

@nova's taste

Taste Card
Palette
Muted Violet
Type
Neue Haas Grotesksans
Motion
Active Scrollactive
Density
generous
Nearest
Thorne × Nimbus
Trained on 28 picks

@riley's taste

Taste Card
Palette
Newsprint Black
Type
Mercury Textserif
Motion
Zerozero
Density
restrained
Nearest
Halcyon × Orion
Trained on 19 picks

@jamie's taste

Taste Card
Palette
Linen Brick
Type
GT Super Lifestyleserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Cygnus × Vega
Trained on 42 picks

@nora's taste

Taste Card
Palette
Polar Indigo
Type
Söhne Editorialsans
Motion
Restrained Globalrestrained
Density
restrained
Nearest
Meridian × Clio
Trained on 71 picks

@finn's taste

Taste Card
Palette
Sage Soft
Type
PP Editorial Newserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Fern × Aster
Trained on 35 picks

@ava's taste

Taste Card
Palette
Cream Gold
Type
Canela Displayserif
Motion
Active Scrollactive
Density
generous
Nearest
Helios × Balsa
Trained on 26 picks

@remi's taste

Taste Card
Palette
Graphite Vermillion
Type
Monument Grotesksans
Motion
Scroll Parallaxscroll
Density
dense
Nearest
Basalt × Rift
Trained on 92 picks

@theo's taste

Taste Card
Palette
Warm Sand
Type
Publico Headlineserif
Motion
Zerozero
Density
generous
Nearest
Dune × Vega
Trained on 16 picks

@zoe's taste

Taste Card
Palette
Garnet Blue
Type
Druk Condensedsans
Motion
Active Scrollactive
Density
dense
Nearest
Rift × Ignis
Trained on 51 picks

@kai's taste

Taste Card
Palette
Void Neon
Type
JetBrains Monosans
Motion
Active Scrollactive
Density
dense
Nearest
Nova × Corvus
Trained on 67 picks

@juno's taste

Taste Card
Palette
Wheat Espresso
Type
Canela Displayserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Selene × Orion
Trained on 45 picks

@ellis's taste

Taste Card
Palette
Fog Graphite
Type
Untitled Sanssans
Motion
Restrained Globalrestrained
Density
restrained
Nearest
Ashe × Halcyon
Trained on 12 picks

@mia's taste

Taste Card
Palette
Oat Clay
Type
Instrument × Söhneserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Vega × Orion
Trained on 47 picks

@alex's taste

Taste Card
Palette
Paper Navy
Type
Geist Restrainedsans
Motion
Restrained Globalrestrained
Density
restrained
Nearest
Clio × Corvus
Trained on 83 picks

@jun's taste

Taste Card
Palette
Paper Graphite
Type
Söhne Breitsans
Motion
Zerozero
Density
generous
Nearest
Halcyon × Sable
Trained on 32 picks

@casey's taste

Taste Card
Palette
Paper Ink
Type
Geist Starksans
Motion
Scroll Parallaxscroll
Density
dense
Nearest
Polaris × Ignis
Trained on 61 picks

@sage's taste

Taste Card
Palette
Peach Clay
Type
Chronicle Lifestyleserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Dawn × Calyx
Trained on 54 picks

@luca's taste

Taste Card
Palette
Burgundy Linen
Type
Tiempos Editorialserif
Motion
Zerozero
Density
generous
Nearest
Vesper × Rune
Trained on 38 picks

@nova's taste

Taste Card
Palette
Muted Violet
Type
Neue Haas Grotesksans
Motion
Active Scrollactive
Density
generous
Nearest
Thorne × Nimbus
Trained on 28 picks

@riley's taste

Taste Card
Palette
Newsprint Black
Type
Mercury Textserif
Motion
Zerozero
Density
restrained
Nearest
Halcyon × Orion
Trained on 19 picks

@jamie's taste

Taste Card
Palette
Linen Brick
Type
GT Super Lifestyleserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Cygnus × Vega
Trained on 42 picks

@nora's taste

Taste Card
Palette
Polar Indigo
Type
Söhne Editorialsans
Motion
Restrained Globalrestrained
Density
restrained
Nearest
Meridian × Clio
Trained on 71 picks

@finn's taste

Taste Card
Palette
Sage Soft
Type
PP Editorial Newserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Fern × Aster
Trained on 35 picks

@ava's taste

Taste Card
Palette
Cream Gold
Type
Canela Displayserif
Motion
Active Scrollactive
Density
generous
Nearest
Helios × Balsa
Trained on 26 picks

@remi's taste

Taste Card
Palette
Graphite Vermillion
Type
Monument Grotesksans
Motion
Scroll Parallaxscroll
Density
dense
Nearest
Basalt × Rift
Trained on 92 picks

@theo's taste

Taste Card
Palette
Warm Sand
Type
Publico Headlineserif
Motion
Zerozero
Density
generous
Nearest
Dune × Vega
Trained on 16 picks

@zoe's taste

Taste Card
Palette
Garnet Blue
Type
Druk Condensedsans
Motion
Active Scrollactive
Density
dense
Nearest
Rift × Ignis
Trained on 51 picks

@kai's taste

Taste Card
Palette
Void Neon
Type
JetBrains Monosans
Motion
Active Scrollactive
Density
dense
Nearest
Nova × Corvus
Trained on 67 picks

@juno's taste

Taste Card
Palette
Wheat Espresso
Type
Canela Displayserif
Motion
Restrained Globalrestrained
Density
generous
Nearest
Selene × Orion
Trained on 45 picks

@ellis's taste

Taste Card
Palette
Fog Graphite
Type
Untitled Sanssans
Motion
Restrained Globalrestrained
Density
restrained
Nearest
Ashe × Halcyon
Trained on 12 picks
The generator

Websites. Apps. Brands.

Describe a phone app or a website in a sentence. Foundry renders it live in a real in-browser preview, then lets you iterate section by section. Curated typography, tight tracking, opinionated restraint. Nothing generic.

393×852real iPhone preview0+hand-tuned atoms0motion patterns
TODAY
Slow morning, long walk.
47minutes outside
Streak18d
Moodcalm
Last walk2h
TodayWeekStreak
How it works

Zero canvas. Zero decisions. Real output.

01

Pick a target.

Phone app or website. Foundry routes the right design skill — iOS primitives for mobile, editorial web patterns for sites. The UI adapts; the taste is the same.

02

Describe in a sentence.

"A meditation app for busy parents." "A launch page for a climate research lab." Foundry proposes a design system and the first screen or section in one pass.

03

Iterate, then export.

Pick A or B on every pair, remix with a sentence, keep what lands. Phone projects export as React Native .tsx files; websites export as React + Tailwind .tsx files — ready to paste into your own project.

Principles

Restraint is the feature.

Taste, not tool

Designs that don't scream AI.

The first choice is identity, not decoration: a concrete hero concept, a palette, a type posture, and a refusal of the obvious move. The prompt bans generic filler — no purple glow, no John Doe, no 99.9%, no placeholder dashboards.

Real preview

Real devices, real code.

Phone apps render in a 393×852 iPhone frame with real iOS primitives. Websites render full-viewport with React, Tailwind, Geist, Framer Motion, and R3F bundled live via esbuild inside a sandboxed iframe. No canvas stand-ins.

Taste compounds by project

One project, one design system.

The first winner sets the palette, type, motion, and chrome for the folder. Later screens inherit that system and vary the page pattern, while explicit chat direction can rename or pivot the project. React Native for phone, React + Tailwind for web, today. Figma export and SwiftUI on the roadmap.

Targets

Phone app, or website. Pick the target, the taste follows.

iOS / React Native

Phone app

  • iPhone 16 viewport (393×852), Dynamic Island safe area, tab-bar spacing
  • Glass, solid, outlined, elevated surface clusters — Claude picks one per pair
  • React Native + TypeScript .tsx on export
  • Live in-browser preview via react-native-web, bundled by esbuild
React / Tailwind

Website

  • Full-viewport responsive React + Tailwind
  • Identity-first hero concept, concrete proof instance, responsive supporting sections
  • Framer Motion, Geist via Google Fonts, lucide-react icons, three + @react-three/fiber bundled
  • React + Tailwind .tsx on export — bring your own deps and styling setup