Skip to content
gkoreliPublic

About

Personal blog by Goga Koreli — built with @nisli/core

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

1,112 Commits

Folders and files

Repository files navigation

gkoreli.com

Personal engineering blog by Goga Koreli. Agentic engineering, open source developer tools, and building in public.

Built with @nisli/core — a zero-dependency reactive web component framework.

"Where excitement ends, depth begins."

Read

Projects

  • ghx — auditable repository reconnaissance for coding agents
  • backlog-mcp — local-first context, memory, and work history for agents
  • @nisli/core — zero-dependency reactive web components

Stack

  • Framework: @nisli/core — signals, templates, web components
  • Content: Markdown + YAML frontmatter, or TypeScript for custom layouts, in packages/blog/posts/
  • Syntax highlighting: Shiki — dual themes, build-time, zero client JS
  • Validation: Zod — frontmatter schema validation at build time
  • Bundler: esbuild — JS + CSS bundling
  • Hosting: Cloudflare Workers with static assets
  • CI/CD: Cloudflare Workers Git integration — push to main → build → deploy

Static generation uses @nisli/ssg with ordinary @nisli/core templates; the blog owns content discovery, document metadata, and publication files. See ADR-0018.

Development

pnpm install
pnpm dev        # browser-sync dev server on localhost:3000
pnpm build      # production build → packages/blog/dist/
pnpm -C packages/blog validate  # validate Markdown frontmatter; nonzero exit on errors
pnpm typecheck  # TypeScript verification

The build warns and skips Markdown posts with invalid frontmatter. Run the explicit validation command above when invalid frontmatter must fail a check; the root package has no validate script.

Project Structure

packages/blog/
├── posts/           # Markdown and TypeScript blog posts
├── public/          # Static assets (icons, images, Cloudflare headers)
└── src/
    ├── pipeline/    # Build scripts (prod, dev, validate)
    ├── lib/         # Markdown, frontmatter, paths, fs utilities
    ├── templates/   # Shared shell, representations, RSS, structured data
    ├── pages/       # Home, articles, sections, stats, and other pages
    ├── client/      # @nisli/core components (theme toggle)
    └── styles/      # Vanilla CSS — warm cream/dark palette

Raw author prompts and personal working notes are private. Public prompt pages have been retired; see the prompt publication decision.

pnpm install installs Git commit and push guards for author-prompt files and private archives. Use pnpm prepare in an existing checkout and pnpm check:private-prompts to inspect tracked paths. Push checks include intermediate commits, so adding a prompt and deleting it before pushing is rejected. These are file-path checks, not a classifier of private prose; review staged content and public messages too. Existing custom hooks are preserved and require integrating the checks.

Project guidance

AGENTS.md holds shared repository constraints. Agents discover task-specific guidance in .agents/skills/; project decisions route to the relevant ADRs. The instruction migration record preserves the locations of the accumulated guidance.

Research and operating records

Research reports, reproducible methods, and sanitized results live in the repository. Credentials, raw operational captures, and session logs remain in private local storage; the relevant receipts describe their locations and limits.

License

This repository is dual-licensed:

About

Personal blog by Goga Koreli — built with @nisli/core

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages