day1 renders markdown pages as a step-by-step onboarding wizard inside a frameless Wails v2 webview. Write pages in markdown, configure everything in day1.yml, and every new hire sees a polished first-run experience. Shows once per machine, then gets out of the way.
Disclaimer: This was created as a fun side project (PoC), not affiliated with any company.
Download and launch the day1 binary from Releases.
day1 # run with built-in demo pages
day1 --pages-dir /path/to/pages # run with custom content
day1 --force # re-show even if completedAll settings live in day1.yml inside the pages directory:
# day1.yml
brand:
name: Example Company
logo: assets/brand-logo.png # relative to this directory
title: Welcome
help_url: https://wiki.example.com/onboarding
theme: auto # auto, light, or dark
accent_color: "#188038" # hex color for buttons and progress bar
# final_page: final.md
pages: # display order; only listed pages are shown
- welcome.md
- getting-started.md
- tools-access.md
- security.md
- culture.md
- resources.mdEach .md file has optional YAML frontmatter for the title and platform filtering:
---
title: Day 1
platform: all
---
# Welcome to the Team!
Your onboarding content here.Use standard markdown checkboxes. State persists across restarts:
- [ ] **Sign in to email** — [Open Outlook](https://outlook.office.com)
- [ ] **Set up MFA** — [Microsoft Authenticator setup](https://aka.ms/mfasetup)Links inside checklist items become action pills that open via the system browser. Supported URI schemes:
| Scheme | Platform | Example |
|---|---|---|
https: |
all | https://example.com |
http: |
all | http://intranet.corp/kb |
ms-settings: |
Windows | ms-settings:windowsupdate |
x-apple.systempreferences: |
macOS | x-apple.systempreferences:com.apple.preference.security |
Note: Checklist keys are position-based (
pageIndex:checkIndex). Reordering or inserting checkboxes shifts saved state.
Design rule: Pages do not scroll. Content must fit in one screen.
day1 [flags]
Flags:
--pages-dir string directory containing .md pages and day1.yml (default: built-in)
--force show even if already completed
-v, --verbose verbose logging to stderr
Subcommands:
version print version, commit, build date
| Doc | Description |
|---|---|
| Design | Frontend spec, markdown format, testing strategy |
| Architecture | Mermaid diagrams, package map, data flow |
| Deployment | Run-once triggers per OS (Windows, macOS, Linux) |
Pull requests are welcome. For major changes, please open an issue first.
git clone https://github.com/TsekNet/day1.git && cd day1
go test ./internal/... ./cmd/...
