No description
  • TypeScript 87.6%
  • CSS 11.8%
  • Dockerfile 0.5%
Find a file
Art Rosnovsky de484b465c
Some checks are pending
CI / Lint, typecheck, build (push) Waiting to run
CI / Docker build (no push) (push) Blocked by required conditions
fix(showcase): type specimen stacks below 1024px, v2.2.2
The base .type-row rule sat after the mobile override in source order,
so the 100/140 gutters kept winning and display text wrapped one word
per line well above the 860px breakpoint. Move the override below the
base rule and raise the threshold to 1024px — meta + spec share a row,
sample claims full width.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 15:07:30 -07:00
.github docs: scrub remaining docs.seaowl / apps-docs references from project docs 2026-04-22 15:07:22 -07:00
.vscode feat: initialize Seasaw with TanStack Start and cyber design system 2026-04-22 15:05:02 -07:00
apps/showcase fix(showcase): type specimen stacks below 1024px, v2.2.2 2026-04-22 15:07:30 -07:00
docs/superpowers docs(plan): implementation plan for docs/showcase consolidation 2026-04-22 15:07:22 -07:00
packages/web fix(showcase): .block class collision with Tailwind, shadow ladder, v2.2.0 2026-04-22 15:07:30 -07:00
.env.example docs: add publication artifacts and CI workflow 2026-04-22 15:05:51 -07:00
.gitignore chore: tighten docs h1 leading to 1.1; untrack screenshots/ 2026-04-22 15:07:30 -07:00
.prettierignore feat: initialize Seasaw with TanStack Start and cyber design system 2026-04-22 15:05:02 -07:00
CHANGELOG.md feat(showcase): SPA apex built from standalone gallery + sidebar nav 2026-04-22 15:07:30 -07:00
CLAUDE.md docs: reflect SPA single-page layout in CLAUDE.md + README 2026-04-22 15:07:30 -07:00
CODE_OF_CONDUCT.md docs: add publication artifacts and CI workflow 2026-04-22 15:05:51 -07:00
CONTRIBUTING.md docs: scrub remaining docs.seaowl / apps-docs references from project docs 2026-04-22 15:07:22 -07:00
LICENSE docs: add publication artifacts and CI workflow 2026-04-22 15:05:51 -07:00
LLM-SAFETY.md feat: initialize Seasaw with TanStack Start and cyber design system 2026-04-22 15:05:02 -07:00
package.json fix(showcase): mobile responsive layout, drop unused placeholders 2026-04-22 15:07:30 -07:00
pnpm-lock.yaml chore: delete apps/docs and root Dockerfile (content now in apps/showcase/app/docs) 2026-04-22 15:07:22 -07:00
pnpm-workspace.yaml chore: complete Seasaw→SeaOwl rebrand and clean monorepo 2026-04-22 15:05:40 -07:00
README.md docs: reflect SPA single-page layout in CLAUDE.md + README 2026-04-22 15:07:30 -07:00
requirements.md feat: initialize Seasaw with TanStack Start and cyber design system 2026-04-22 15:05:02 -07:00
SECURITY.md docs: scrub remaining docs.seaowl / apps-docs references from project docs 2026-04-22 15:07:22 -07:00
tsconfig.base.json feat/turborepo-migration (#1) 2026-04-22 15:05:19 -07:00
tsconfig.json rebrand: migrate from @seasaw/cyber to @seasaw/ui package 2026-04-22 15:05:19 -07:00
turbo.json feat: rebrand Seasaw → SeaOwl 2026-04-22 15:05:19 -07:00

SeaOwl

A cyber-themed design system and the site that showcases it. Future home of a self-hosted, AI-powered personal video archive.

License: MIT CI

SeaOwl is a work-in-progress project with two distinct layers that ship today, and a bigger long-term goal that doesn't.

What ships now:

  • 🎨 @seaowl/web — a React design system with 27 cyber-themed components, 40+ Radix UI primitives, OKLCH colours, and WCAG AA compliance.
  • 🪩 seaowl.unfuck.cloud — a single long SPA page that hosts the hero, installation, foundations, and every component showcase as deep-linkable anchors under a left sidebar (Introduction + Components). Built from apps/showcase.

What doesn't ship yet:

A self-hosted video archive — upload phone videos, let Gemini and OpenAI describe them, store embeddings in pgvector, search them with natural language. The long-term vision lives in requirements.md.

Repo layout

seaowl/
├── apps/
│   └── showcase/    # Next.js static export → seaowl.unfuck.cloud
├── packages/
│   └── web/         # @seaowl/web — React design system
└── docs/
    └── design-system.toml   # Design tokens (colours, type, spacing)

Quick start

git clone https://github.com/rosnovsky/seaowl.git
cd seaowl
pnpm install
pnpm dev

Opens the showcase site at http://localhost:3001.

Requirements: Node 20+, pnpm 10+, Docker is optional.

Using @seaowl/web in your own app

import { SeaOwlButton, SeaOwlCard, SeaOwlBadge } from '@seaowl/web'
/* app/globals.css */
@import "tailwindcss";
@import "@seaowl/web/styles";

The package isn't on npm yet — it's a workspace dependency today. npm publication tracking: issue #?.

Deploy

The site builds as a static Next.js export and runs in a minimal serve-over-HTML container (no Node.js at runtime):

docker build -f apps/showcase/Dockerfile -t seaowl-app:local .
docker run --rm -p 3000:3000 seaowl-app:local

Production is a K3s cluster at unfuck.cloud. Kubernetes manifests live in a sibling repo; see CLAUDE.md for the pipeline.

What's coming

Area Status
@seaowl/web design system 27 components shipping
apps/showcase SPA (single page, deep-linked sections) live at seaowl.unfuck.cloud
VS Code / JetBrains / Zed themes 🔲 next
Ghostty, Kitty, tmux themes 🔲 next
Publish @seaowl/web to npm 🔲 soon
apps/web video archive (TanStack Start) 🔲 long-term
Video processing worker (FFmpeg + Gemini + OpenAI) 🔲 long-term

See CHANGELOG.md for release notes.

Contributing

See CONTRIBUTING.md. Security issues: please email art@rosnovsky.us — see SECURITY.md.

License

MIT © 2026 Art Rosnovsky.