- Svelte 56.5%
- TypeScript 23.9%
- CSS 14.8%
- Nix 2.6%
- HTML 1.2%
- Other 1%
| .vscode | ||
| src | ||
| static | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc | ||
| AGENTS.md | ||
| flake.nix | ||
| LICENSE | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
| sequoia.json | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
ewan's docs
Central documentation hub for all of ewan's projects. Posts are written in Markdown and published to the AT Protocol automatically via Sequoia.
Built with SvelteKit, Tailwind CSS (typography plugin), and unified/remark/rehype for markdown processing. Deployed on Vercel.
🧶 Also available on Tangled
Adding a post
Create a Markdown file in src/content/documentation/:
---
title: My Post
description: A short description.
date: 2026-01-01
tags: [example]
draft: false
---
Content goes here.
Posts with draft: true are excluded from the build. The filename becomes the URL slug — my-post.md → /projects/my-post.
Headings (##, ###) are automatically picked up for the per-post table of contents.
Development
pnpm install
pnpm dev
Deployment
Deployed to Vercel via @sveltejs/adapter-vercel. Every push to main triggers a redeploy. All routes prerender at build time — the content files are read during the Vercel build, not at runtime.
pnpm build # production build
pnpm preview # preview the build locally
Publishing to AT Protocol
Content is published to the AT Protocol via the Sequoia CLI. Make sure you have it installed, then run:
sequoia publish
See the Sequoia CLI reference for the full list of available commands and options.
Other commands
pnpm check # svelte-check type checking
pnpm format # prettier
pnpm lint # prettier --check
☕ Support
If you found this useful, consider buying me a ko-fi!