Holi Labs
2 min Typst

A Typst project structure that grows without friction

Organize documents, images, shared styles, and exports so one browser workspace can hold several projects.

#typst #projects #files
Contents
Use one folder per project Resolve paths from the project root Make images ordinary files Share styles carefully Separate source from output Support both storage modes Starter-project checklist

A single main.typ file is enough to begin, but documents quickly collect images, bibliography files, styles, and exports. A predictable tree prevents the file panel from becoming the product.

Use one folder per project

Start with a workspace that can hold independent projects:

workspace/
  projects/
    thesis/
      main.typ
      sections/
      images/
        placeholder.svg
      references.bib
    invoice-template/
      main.typ
      images/
  shared/
    brand.typ
  exports/

Each project should compile without depending on another project’s private files. That makes export, backup, and sharing predictable.

Resolve paths from the project root

The editor should know the active project and resolve images/chart.svg from that root. Users should not need separate “import file” and “import folder” flows once a workspace exists. The file panel can focus on creating files and folders, renaming, moving, and revealing the active project.

Make images ordinary files

Create an images/ folder in every starter project and include a lightweight placeholder. Dropping or pasting an image writes it there and inserts a relative reference. Keep the original filename only after validating that it is safe and does not collide with an existing file.

Share styles carefully

The shared/ directory is useful for fonts, colors, and common functions, but it creates coupling. Move a file there only when two real projects use it. A project intended for export should be able to copy its shared dependencies into its own tree.

Separate source from output

Generated PDFs are not source documents. Put downloads in a dedicated export area or use the browser’s save dialog. Do not continuously write every preview frame to disk.

Support both storage modes

The structure should be identical in a selected folder and in browser-owned storage. Only the adapter changes. This keeps compilation paths, recent projects, empty states, and recovery behavior consistent.

Starter-project checklist

  • main.typ compiles immediately.
  • images/placeholder.svg proves relative image paths work.
  • The project name can be changed without breaking imports.
  • Autosave writes only after a local change.
  • Export never overwrites a source file.
  • Closing folder permission does not discard the in-memory draft.
Previous Design a QR code that still scans Next Write a privacy label people can actually verify

Local preferences

Configuration

These preferences stay in this browser and do not require an account.

Appearance

Theme Applies on this device

Navigation

Home Holi.tools Papers
Session No account · local preference

Current v0.6.0

Versions

Keep Holi available

Support independent tools

Donations help cover hosting and development without making accounts or remote storage mandatory.

Contact
v0.6.0 2026-09-02
  • Defined Tutorials, Field notes, Experiments, and Papers as formats in one Holi Labs publication
  • Added a localized Papers collection with a subtle crane category mark across all seven languages
  • Added format filters and the axolotl identity while preserving one shared library and privacy shell
v0.5.0 2026-09-02
  • Extended the Labs library shell, privacy summary, search, filters, and article routes to all seven Holi languages
  • Localized the shared product dock and removed its unstable outer glow
  • Kept code blocks, URLs, file paths, and technical product names intact across translated tutorials
v0.4.0 2026-09-02
  • Rebuilt Labs as a practical library with featured reading, search, category filters, and reading time
  • Published seven complete English and Spanish tutorials, guides, and engineering notes
  • Added coherent light and dark Labs palettes and limited public routes to fully translated locales
v0.3.0 2026-09-02
  • Unified Configuration, Versions, and Privacy in the shared Holi product dock
  • Added local theme and language preferences plus Labs navigation inside Configuration
  • Placed donations, support, and the visible Shadow Log inside Versions
v0.2.1 2026-09-02
  • Separated privacy and Version Log into left and right floating controls
  • Moved privacy facts into a dedicated glass drawer
v0.2.0 2026-09-02
  • Added a visible privacy summary to experiment, article, and tag pages
  • Made the current version and Shadow Log available throughout Labs
  • Reframed Labs as a research publication rather than a product backlog
v0.1.1 2026-01-12
  • Added English and Spanish routes
  • Synchronized the content collection
  • Improved stability
v0.1.0 2026-01-12
  • Created the first Labs content collection
  • Published initial graphics and performance notes

Privacy at a glance

Privacy summary

Reading and exporting articles does not give personal files to Holi. Cloudflare can observe your IP and access time.

Content
Labs publishes static articles and does not request your local documents.
Export
Copying summaries and generating Markdown or print output happens in your browser.
Hosting
Cloudflare may process IP, time, requested path, traffic volume, and routing data.
External links
Donation, support, and external sources open only when you choose them.

About

Holi Labs

Tutorials, field notes, and technical guides for building useful local-first web tools.

Explore Holi.tools

Donate

Donate

If Holi.tools helps you, you can support its continued development here:

GitHub Sponsors Ko-fi

Support & suggestions

Support & suggestions

For support, bug reports, or suggestions:

Email [email protected] GitHub Issues

Source code: https://github.com/HugoAndresAmayaChairez/holi.tools