Funiki is an Obsidian-first knowledge garden powered by
Quartz 4. Notes live inside content/ and are
published automatically to GitHub Pages via Quartz + Bun. This README now collects
all of the workflow guidance so the published site can stay focused on actual
project notes.
Funiki doubles as an Obsidian workspace for experiments, prototyping ideas, and lightweight documentation that stays in sync with GitHub Pages.
- Notes live in the
content/directory and can be opened directly as an Obsidian vault. Everything is plain Markdown. - Quartz renders backlinks, the graph, and friendly previews automatically when
you run
bun devor publish via GitHub Actions. - Start with
content/funiki.mdfor the distilled Sony CSL research context, then branch into more focused notes as the garden grows.
- Open the
content/folder in Obsidian (Vault → Open folder as vault). - Start a note anywhere in the tree and link it with
[[wiki-style links]]. - When you're happy with the changes,
git add content/, commit, and push.
Tip
Use frontmatter fields such as title, permalink, tags, and draft: true
to control how Quartz exposes each note.
- Bun
>= 1.3(install withcurl -fsSL https://bun.sh/install | bash) - Node.js
>= 22
Make sure the Bun binary ($HOME/.bun/bin) is on your PATH. Add the snippet
below to ~/.zshrc or ~/.bashrc if needed:
export BUN_INSTALL=$HOME/.bun
export PATH="$BUN_INSTALL/bin:$PATH"| Path | Purpose |
|---|---|
content/ |
Markdown notes opened directly as an Obsidian vault |
quartz.* |
Quartz configuration + layout overrides |
quartz/ |
Quartz core (no need to edit unless customizing) |
.github/ |
GitHub Actions workflows |
bun install # once, installs deps based on bun.lock
bun dev # serve site with live reload on port 8080Quartz watches the content/ directory. Open it as a vault in Obsidian
(Vault → Open folder as vault) and edit notes as usual; the dev server will
pick up changes immediately. Stop the server with Ctrl+C.
Quartz works best when the entire content/ directory is opened directly as a
vault so backlinks, outgoing links, and the graph render exactly like they do on
the published site.
- Files & Links → New link format:
Absolute path in vault - Files & Links → Automatically update internal links:
On - Files & Links → Detect all file extensions:
On - Core plugins: Backlinks, Graph view, and Outgoing links mirror what Quartz exposes in the sidebar.
Warning
Avoid storing the .obsidian/ folder inside content/. Quartz ignores it, but
keeping the config outside the repo (or explicitly ignored) keeps commits tidy.
- Write or update notes inside the vault with regular Markdown and
[[wikilinks]]. - Run
bun devto preview the rendered site athttp://localhost:8080. - Commit and push when you're ready; the Pages workflow will publish automatically.
For a fully in-editor experience, install the community Quartz Syncer plugin and point it at this repository.
Pushing to main triggers .github/workflows/deploy.yml, which:
- Checks out the repo and installs Bun.
- Installs dependencies with
bun install --frozen-lockfile. - Builds the static site via
bun run quartz build. - Publishes the generated
public/folder to GitHub Pages.
Once the workflow finishes, the site is live at
https://mbanslow.github.io/funiki-website. You can also trigger the workflow
manually from the Actions tab if you need to redeploy without new commits.
- Write notes in Obsidian (or edit Markdown directly) inside
content/. - Preview locally with
bun dev. - Commit your changes:
git add content/ quartz.config.tsetc. - Push to
main— deployment happens automatically.
Happy gardening! 🌱