<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>jellypuff.link — cozy stories</title>
  <link>https://blog.jellypuff.link/</link>
  <description>Cozy stories from jellypuff — warm words, soft photos, and tiny hand-drawn clouds.</description>
  <language>en-us</language>
  <lastBuildDate>Fri, 14 Aug 2026 19:45:00 GMT</lastBuildDate>
  <atom:link href="https://blog.jellypuff.link/rss.xml" rel="self" type="application/rss+xml" />
  <item>
    <title>Soft evening notes — writing when the city exhales</title>
    <link>https://blog.jellypuff.link/posts/soft-evening-notes</link>
    <guid isPermaLink="true">https://blog.jellypuff.link/posts/soft-evening-notes</guid>
    <description>Evening writing is different. The city softens, the screen dims, and the words come slower. Field notes from a quiet night desk.</description>
    <content:encoded><![CDATA[# Soft evening notes

Evening is when the city exhales. The inbox has gone quiet, the plant on the sill has stopped photosynthesizing for the day, and the screen's white has mellowed to paper.

We write at 120 words per minute in our heads, but the publish clock says 200. That's okay — slowness is a feature.

## A short ritual

1. Make tea. Watch the leaves unfold.
2. Open the editor. Leave the title empty for a while.
3. Paste a photo. Let it decide the tone.
4. Write the excerpt last — ten to three hundred characters, like a postcard.

> Patience, puff. The softest stories are not rushed.

### An evening snippet

```js
// autosave every 10s — never lose a puff
setInterval(() => {
  localStorage.setItem("draft", editor.value);
}, 10000);
```

### And a little JSON for our seed

```json
{
  "slug": "soft-evening-notes",
  "status": "published",
  "reading_time": 2
}
```

![Evening light over a calm sea](https://images.unsplash.com/photo-1505118380757-91f5f5632de0?w=1200&h=750&fit=crop&q=80)

We intersperse images like breaths. Rounded, with caption, click to lightbox. No heavy JS — the public pages carry less than 50kb. The admin stays behind a locked door at `/admin`, with JWT in an httpOnly cookie.

Goodnight, paper desk. See you in the morning.
]]></content:encoded>
    <pubDate>Fri, 14 Aug 2026 19:45:00 GMT</pubDate>
    <category>writing</category>
    <category>evening</category>
    <category>cozy</category>
  </item>
  <item>
    <title>Morning light through paper — how we edit with honey</title>
    <link>https://blog.jellypuff.link/posts/morning-light-through-paper</link>
    <guid isPermaLink="true">https://blog.jellypuff.link/posts/morning-light-through-paper</guid>
    <description>A slow edit in the studio: light, paper grain, and the honey-gold hour before the inbox wakes. Notes on finding a softer palette.</description>
    <content:encoded><![CDATA[# Morning light through paper

At 7:12am the studio is still cool. The paper on the desk is #FFFBF5 — warm, almost cream — and the first light turns it to honey. This is when we edit.

## The palette we keep returning to

- **Paper** #FFFBF5 — the base, never pure white.
- **Ink** #1A1A1E — soft black, never harsh.
- **Jelly** #FF8FA3 — puff pink, for joy.
- **Mint** #8EC5A6 — a breath.
- **Honey** #FFD166 — light itself.
- **Sand** #F2E8DC — the quiet border.

We print proofs and tape them to the wall. We squint. We ask: does it feel like a morning you want to keep?

### Code as texture

Even our code tries to be soft:

```css
.prose img {
  border-radius: 16px;
  box-shadow: 0 8px 32px -12px rgba(26,26,30,0.18);
}
.jelly-blob {
  animation: jelly-morph 7s ease-in-out infinite;
}
```

And a little TypeScript for word counts:

```ts
export function wordCount(text: string): number {
  return text.trim().split(/\s+/).filter(Boolean).length;
}
```

![Soft morning light on a wooden table](https://images.unsplash.com/photo-1470770841072-f978cf4d019e?w=1200&h=750&fit=crop&q=80)

The photos here are 16:10 — wide enough to breathe, tall enough to hold a story. We round the corners, we add a whisper of shadow, and we let the image lazy-load like someone stretching awake.

If you visit again tomorrow, the light will be different. Come anyway.
]]></content:encoded>
    <pubDate>Wed, 12 Aug 2026 08:30:00 GMT</pubDate>
    <category>photo</category>
    <category>process</category>
    <category>palette</category>
  </item>
  <item>
    <title>Hello, world — a soft start with jellypuff</title>
    <link>https://blog.jellypuff.link/posts/hello-world</link>
    <guid isPermaLink="true">https://blog.jellypuff.link/posts/hello-world</guid>
    <description>A cozy hello from the paper desk: why we started jellypuff, what to expect, and a tiny peek at the editorial desk.</description>
    <content:encoded><![CDATA[# Hello, world

Welcome to **jellypuff.link** — a little paper desk on the internet where stories feel as soft as jellypuff itself. We started this place because the web felt a little too sharp, and we wanted something rounder, warmer, like a cloud you could fold and keep in your pocket.

## What you'll find here

- Warm words, soft photos, and hand-drawn clouds.
- Stories about mornings, light, tea, and the small things we notice when we slow down.
- Photos treated like editorial prints — rounded corners, gentle shadows, lazy-loaded with a puff of blur.

> "Softness is not the absence of shape — it's the courage to stay round in a pointy world."

### A tiny code moment

We love the quiet craft of making things. Here's a little hello in code:

```js
function jellypuff(greeting) {
  return `${greeting}, world — as soft as clouds`;
}
console.log(jellypuff("Hello"));
```

And a peek at our word-count craft:

```ts
function readingTime(words: number): number {
  return Math.ceil(words / 200);
}
```

![A warm paper desk with morning light](https://images.unsplash.com/photo-1490750967868-88aa4486c946?w=1200&h=750&fit=crop&q=80)

Stories here are short enough to read with tea, long enough to linger. We measure reading time at 200 words per minute — gentle, unhurried. If you see a puff blush, you know you're in the right place.

Thank you for being here. The kettle is on.
]]></content:encoded>
    <pubDate>Mon, 10 Aug 2026 09:00:00 GMT</pubDate>
    <category>hello</category>
    <category>cozy</category>
    <category>editorial</category>
  </item>
</channel>
</rss>