Grain#
The next version of Grain, a photo sharing app built on the AT Protocol.
Development#
npm install
npm run dev
Build#
npm run build
npm run preview
Copyright 漏 2025 Grain Social. All rights reserved.
https://tangled.org/grain.social/grain-pwa
git@tangled.org:grain.social/grain-pwa
For self-hosted knots, clone URLs may differ based on your setup.
Stop native input event from bubbling out of shadow DOM in grain-textarea.
The native input event (with composed:true) was firing alongside our custom
event, causing handleAltChange to receive undefined and overwrite the value.
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Move overlay rendering from grain-alt-badge to grain-image-carousel.
The overlay now uses position:absolute within the slide instead of
position:fixed with JS positioning, so it naturally scrolls with content.
馃 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>