Prompt to Premium.

halcyon.dev
◆ shipping — 2026-04-22

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

Your design taste, codified.

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
Alabaster Navy
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
Stark Crimson
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
Alabaster Navy
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
Stark Crimson
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
Try it now

Describe your taste in a sentence.

References, vibes, brands, colors you reach for. Foundry reads it and proposes three directions — pick the one that feels right.

No signup needed to try.Already have an account? Log in →
The generator

Websites. Apps. Brands.

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

393×852real iPhone preview750+hand-tuned atoms40motion 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.

Approve each screen, remix with a sentence, rate with a thumb. Phone projects ship as Expo-ready React Native. Websites ship as React + Tailwind you can drop into a repo.

Principles

Restraint is the feature.

Taste, not tool

Designs that don't scream AI.

Geist, Satoshi, Cabinet Grotesk. Tight negative tracking across the scale. One accent color, max 80% saturation. A ban list traced from Linear, Aegis, Ando — no Inter, no purple glow, no John Doe, no 99.9%.

Real preview

Real devices, real code.

Phone apps render in a 393×852 iPhone frame and stream to your pocket via QR. Websites render full-viewport with React, Tailwind, Geist, Framer Motion, and R3F bundled live via esbuild. No canvas stand-ins.

One intent, many surfaces

The design soul travels.

The design system you approve locks once and compiles to every target. React Native + Expo today, premium React + Tailwind websites today. Figma export and SwiftUI on the roadmap. Same soul, different surfaces.

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 styles — Claude picks one and locks it
  • Expo-ready React Native + TypeScript on export
  • Live QR stream to Expo Go
React / Tailwind

Website

  • Full-viewport responsive React + Tailwind
  • Aegis / Linear / Ando reference bar — hero split layouts, real product mockups as assets
  • Framer Motion, Geist via Google Fonts, lucide-react icons, three + @react-three/fiber bundled
  • Drop into any Next.js or Vite repo

Stop describing. Start rendering.