Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
737ed60
bd init: initialize beads issue tracking
ryanaidilp May 8, 2026
0afa02e
chore: snapshot legacy laravel state before astro redesign
ryanaidilp May 8, 2026
0e75767
chore(m1): remove legacy laravel codebase
ryanaidilp May 8, 2026
6b84fd4
feat(m1): scaffold astro 6 with mdx, sitemap, and tailwind v4
ryanaidilp May 8, 2026
6e02a45
feat(m1): add design tokens, base layout, and bilingual placeholder p…
ryanaidilp May 8, 2026
e1c1a05
feat(m1): add zod schemas and content collection scaffolding
ryanaidilp May 8, 2026
78432d6
feat(m1): add static data stubs and asset dirs
ryanaidilp May 8, 2026
3d89121
docs(m1): replace default readme and finalize gitignore
ryanaidilp May 8, 2026
a7a541b
feat(m1): adopt official brand colors and add logo assets
ryanaidilp May 8, 2026
321dab2
chore(m1): pin pnpm packageManager and sync beads state
ryanaidilp May 8, 2026
dde27a8
Merge branch 'feature/m1-foundation' into develop
ryanaidilp May 8, 2026
47c953a
feat(m2): extract icon-only svg and update favicon
ryanaidilp May 8, 2026
30776c0
feat(m2): extend design tokens with spacing, type scale, and shadows
ryanaidilp May 8, 2026
35b7dcc
feat(m2): add baselayout boot script for theme + hreflang
ryanaidilp May 8, 2026
ed72abf
feat(m2): add layout primitives (nav, footer, drawer, container)
ryanaidilp May 8, 2026
2493cb7
feat(m2): add typography primitives (section header, prose, mono label)
ryanaidilp May 8, 2026
f6e67df
feat(m2): add atoms (button, card, tag) and brand logo component
ryanaidilp May 8, 2026
0a83bd7
feat(m2): add section components (hero, dot grid, trust strip, cta, p…
ryanaidilp May 8, 2026
8afd8a6
feat(m2): add card components (service, case study, testimonial)
ryanaidilp May 8, 2026
73a8321
feat(m2): add founder card and experience strip
ryanaidilp May 8, 2026
62f3225
feat(m2): add trust client logo row with text fallback
ryanaidilp May 8, 2026
ac2943f
feat(m2): add interactive components (lang switcher, theme toggle, bu…
ryanaidilp May 8, 2026
754a10c
feat(m2): add dev component review page with light/dark previews
ryanaidilp May 8, 2026
2fce3b1
feat(m2): add theme-aware logo variants
ryanaidilp May 8, 2026
5e52320
feat(m2): extract clean svg variants from master logo file
ryanaidilp May 8, 2026
7dbf1d4
feat(m2): rewrite logo component to use proper svg variants
ryanaidilp May 8, 2026
c099880
fix(m2): theme-aware colors for headlines and theme toggle in light mode
ryanaidilp May 8, 2026
2b0795b
fix(m2): scope svg extraction to inline icon only, restore png lockups
ryanaidilp May 8, 2026
5e993be
fix(m2): apply evenodd fill rule to extracted bc monogram svgs
ryanaidilp May 8, 2026
dfb8552
fix(m2): make icon variant theme-aware via inline svg + currentcolor
ryanaidilp May 8, 2026
de05879
Merge branch 'feature/m2-design-system' into develop
ryanaidilp May 8, 2026
2d3223f
feat(m3): extend pages content schema for home copy fields
ryanaidilp May 8, 2026
d1261c3
fix(m3): restore en home page route
ryanaidilp May 8, 2026
b90daea
feat(m3): build full Indonesian home page with all 10 sections
ryanaidilp May 8, 2026
f7255f2
chore: log back-office epic and milestones in beads
ryanaidilp May 8, 2026
2c18b6b
Merge branch 'feature/m3-home' into develop
ryanaidilp May 8, 2026
b27b048
feat(m4): scaffold portfolio content folders with placeholder covers
ryanaidilp May 8, 2026
f7cecee
feat(m4): author 6 case studies bilingually
ryanaidilp May 8, 2026
b5b52df
chore: log new milestones (micro-interactions, estimator, credibility…
ryanaidilp May 8, 2026
02d4d5c
chore: log m4.1 additional portfolio entries follow-up
ryanaidilp May 8, 2026
d5ce599
feat(m4): scaffold portfolio content folders with placeholder covers
ryanaidilp May 8, 2026
5d8818c
feat(m4): build portfolio index with bucket filter
ryanaidilp May 8, 2026
225c5ca
feat(m4): build portfolio detail page with case study layout
ryanaidilp May 8, 2026
8ce0c6d
feat(m4): wire home page to real featured portfolio entries
ryanaidilp May 8, 2026
fbf4118
Merge branch 'feature/m4-portfolio' into develop
ryanaidilp May 8, 2026
ed9807e
chore: expand m5 service taxonomy to include design and social media
ryanaidilp May 8, 2026
aba83ea
feat: add team data file and asset dir for about page
ryanaidilp May 8, 2026
d7318f2
feat(m5): extend services category enum to include design and social …
ryanaidilp May 8, 2026
0b89456
feat(m5): author bilingual service entries across 5 categories
ryanaidilp May 8, 2026
5395bce
feat(m5): build services index with two-tier supercategory layout
ryanaidilp May 8, 2026
ee5be65
feat(m5): build services detail page with related services and faq
ryanaidilp May 8, 2026
1312abb
feat(m5): build about page with team section
ryanaidilp May 8, 2026
ec3e905
feat(m5): build founder page with selected experience and credibility
ryanaidilp May 8, 2026
5705335
feat(m5): replace home services section with two-tier supercategory c…
ryanaidilp May 8, 2026
b5c8dda
fix(content): add generateId to services collection to prevent locale…
ryanaidilp May 8, 2026
c2fe57d
Merge branch 'feature/m5-services-about-founder' into develop
ryanaidilp May 8, 2026
7da106a
feat(m6): add author profile and contact data file
ryanaidilp May 8, 2026
b2bf9f3
feat(m6): build blog index, detail, and rss feed
ryanaidilp May 8, 2026
8988228
feat(m6): author launch blog post bilingually
ryanaidilp May 8, 2026
1424de2
feat(m6): build contact pages with whatsapp deeplinks
ryanaidilp May 8, 2026
f6c5252
fix(m6): verify testimonial empty-state behavior across surfaces
ryanaidilp May 8, 2026
94e8573
fix(m6): use correct github org slug banua-coder in footer socials
ryanaidilp May 8, 2026
c0134d8
Merge branch 'feature/m6-blog-testimonials-contact' into develop
ryanaidilp May 8, 2026
ce13ea6
feat(m5.5): add pricing model and calculator logic
ryanaidilp May 8, 2026
9f9286a
fix(content): correct client geographies and partnership context
ryanaidilp May 8, 2026
cc3c9c4
feat(m5.5): build estimator wizard component with 7 steps
ryanaidilp May 8, 2026
fb6ed4f
feat(m5.5): add /estimate pages (id + en) with whatsapp deeplink output
ryanaidilp May 8, 2026
4dd9047
feat(m5.5): wire estimator link into nav and home cta
ryanaidilp May 8, 2026
54589e9
Merge branch 'feature/m5.5-estimator' into develop
ryanaidilp May 8, 2026
84acece
feat(m4.1): extend portfolio bucket enum to include engineering
ryanaidilp May 8, 2026
7ff7fea
feat(m4.1): update bucket filter and tag styling for 4 buckets
ryanaidilp May 8, 2026
2a9c8eb
feat(m4.1): add detexi and ayana to consumer bucket
ryanaidilp May 8, 2026
6b4d2ac
feat(m4.1): add siap donggala and bps work to public-sector bucket
ryanaidilp May 8, 2026
64ad0d4
feat(m4.1): add bps_sso_sdk to engineering bucket
ryanaidilp May 8, 2026
8d75d08
feat(m4.1): add form_gear_engine flutter sdk to engineering bucket
ryanaidilp May 8, 2026
3c33f2a
feat(m4.1): add form_gear_builder to engineering bucket
ryanaidilp May 8, 2026
0a1d5a8
feat(m4.1): add stadata_flutter_sdk to engineering bucket
ryanaidilp May 8, 2026
dbbae95
chore(m4.1): cap home portfolio highlight at 3 cards
ryanaidilp May 8, 2026
269091c
fix(m4.1): propagate engineering bucket to slug pages and bucket filt…
ryanaidilp May 8, 2026
0a5e6a8
Merge branch 'feature/m4.1-portfolio-additions' into develop
ryanaidilp May 8, 2026
c33788d
chore(m5.6): tune service ideal-fit fields for target audiences
ryanaidilp May 8, 2026
a092ed2
feat(m5.6): add ideal-client-fit and public-sector capability section…
ryanaidilp May 8, 2026
0e1bd0c
chore(m5.6): surface cross-context narrative on founder page and home…
ryanaidilp May 8, 2026
de0de51
chore(m5.6): tune about copy to name target audiences explicitly
ryanaidilp May 8, 2026
eec98bb
Merge branch 'feature/m5.6-credibility-audit' into develop
ryanaidilp May 8, 2026
3c0b3ad
fix(estimator): stop double-toggle on feature multi-select
ryanaidilp May 8, 2026
9c9f3b6
Merge branch 'fix/estimator-multiselect' into develop
ryanaidilp May 8, 2026
b882f67
feat(hero): two-column layout with media on the right
ryanaidilp May 8, 2026
8a3c741
feat(content): add real pico sulteng screenshots
ryanaidilp May 8, 2026
9ef09b8
feat(content): add carwa app screenshots with annotations cropped
ryanaidilp May 8, 2026
dc114b5
feat(content): add anonymized reku work product on founder page
ryanaidilp May 8, 2026
daa8f13
Merge branch 'feature/real-screenshots' into develop
ryanaidilp May 8, 2026
1e87053
feat(hero): redesign hero stage and revert thumbnails to original svg
ryanaidilp May 8, 2026
2a0bb1d
fix(services): render lucide icons instead of dumping icon name as text
ryanaidilp May 8, 2026
bd22879
chore: log m5.7 content expansion + unsplash imagery
ryanaidilp May 8, 2026
dd25961
feat(m4.5): add scroll-reveal lib and section reveal animations
ryanaidilp May 8, 2026
aa72063
feat(m4.5): magnetic hover on primary cta buttons
ryanaidilp May 8, 2026
dc93238
feat(m4.5): animated counter on trust strip numbers
ryanaidilp May 8, 2026
75cd53c
feat(m4.5): link underline reveal and smooth scroll
ryanaidilp May 8, 2026
8b1261e
chore(m4.5): install gsap 3.15.0 with scrolltrigger
ryanaidilp May 8, 2026
cbc9e51
refactor(m4.5): replace vanilla scroll-reveal with gsap matchmedia + …
ryanaidilp May 8, 2026
a8251fb
refactor(m4.5): replace vanilla magnetic and counter with gsap implem…
ryanaidilp May 8, 2026
6753cbc
refactor(m4.5): replace dotgrid scroll listener with gsap scrub
ryanaidilp May 8, 2026
a0e1a5b
feat(m4.5): theme toggle crossfade morph via gsap
ryanaidilp May 8, 2026
c9f3944
chore(m4.5): clean up obsolete reveal css and vanilla scripts
ryanaidilp May 8, 2026
2df04f1
Merge branch 'feature/m4.5-microinteractions' into develop
ryanaidilp May 8, 2026
5d24461
feat(content): add surat bmpr case study (pemprov sulteng partnership)
ryanaidilp May 8, 2026
07d20bc
fix(nav): keep navbar opaque on scroll across view transitions
ryanaidilp May 8, 2026
ce8e540
chore(m5.7): add 8 unsplash stock photos for services, about, and fou…
ryanaidilp May 8, 2026
494dd12
feat(m5.7): expand 8 service detail bodies bilingually with imagery
ryanaidilp May 8, 2026
77f1946
feat(m5.7): expand /services with supergroup intros and engagement mo…
ryanaidilp May 8, 2026
a1272eb
feat(m5.7): expand /about with our story, how we work, and why us sec…
ryanaidilp May 8, 2026
dae8888
feat(m5.7): expand /founder with longer story and engineering philosophy
ryanaidilp May 8, 2026
957345c
fix(m5.7): remove invalid JSX block comments from service MDX files
ryanaidilp May 8, 2026
11629d5
Merge branch 'feature/m5.7-content-expansion' into develop
ryanaidilp May 8, 2026
7e5e5e8
fix(contact): set real founder whatsapp number 6287784808269
ryanaidilp May 8, 2026
1e18911
fix(qw): replace [ ## ] section markers with numbered [ 01 ]–[ 04 ] m…
ryanaidilp May 8, 2026
3ef6e59
feat(qw): wire client logo row onto home trust block for ID and EN
ryanaidilp May 8, 2026
76f31a7
feat(qw): tighten hero subheadline and trust strip claims for target-…
ryanaidilp May 8, 2026
1278a95
chore(qw): SEO quick wins — canonical, robots.txt, og:locale, keyword…
ryanaidilp May 8, 2026
575ccd1
chore(qw): contact page CTA hierarchy — remove redundant Email card, …
ryanaidilp May 8, 2026
477062b
Merge branch 'feature/marketing-quickwins' into develop
ryanaidilp May 8, 2026
d752d1f
feat(m7): install satori + resvg-js and create build-time OG image ge…
ryanaidilp May 9, 2026
4e0d325
feat(m7): generate per-route og images at build time
ryanaidilp May 9, 2026
3a9b17b
feat(m7): expand organization schema with sameAs, knowsAbout, areaServed
ryanaidilp May 9, 2026
72243d4
feat(m7): add localbusiness schema on contact page
ryanaidilp May 9, 2026
e8f3fd8
feat(m7): add faqpage schema on service detail pages with faqs
ryanaidilp May 9, 2026
e7e82e2
feat(m7): add itemlist schema on portfolio index
ryanaidilp May 9, 2026
b2f594b
feat(m7): add breadcrumb schema to about/founder; expand person schema
ryanaidilp May 9, 2026
5f91835
feat(m7): preload critical fonts and set fetchpriority on lcp image
ryanaidilp May 9, 2026
3d66e42
feat(m7): wire i18n alternates into sitemap
ryanaidilp May 9, 2026
e0d5fa6
fix(m7): add atom:link to RSS feed and image loading attrs on EN pages
ryanaidilp May 9, 2026
e727a44
chore(m7): a11y fixes from axe-core run — zero violations confirmed
ryanaidilp May 9, 2026
3741662
chore(m7): pin og fonts and generator tweaks
ryanaidilp May 9, 2026
68d62aa
Merge branch 'feature/m7-seo-perf' into develop
ryanaidilp May 9, 2026
0adcdf5
feat(logos): add indonesian government emblems (commons.wikimedia)
ryanaidilp May 9, 2026
1c51d31
feat(logos): add private brand logos (goto financial, reku, stockbit,…
ryanaidilp May 9, 2026
d3afb72
chore(logos): wire up png+svg support in client and founder logo rows
ryanaidilp May 9, 2026
a0a5a14
Merge branch 'feature/real-logos' into develop
ryanaidilp May 9, 2026
0aa0d8a
fix(clients): drop dinas bmpr from trust strip to avoid duplicate emblem
ryanaidilp May 9, 2026
c309379
feat(logos): add brantas inti utama logo extracted from patonro splash
ryanaidilp May 9, 2026
29d4464
fix(home): render lucide icons on ideal-clients tiles
ryanaidilp May 9, 2026
0cb97d6
chore(zog): install lenis and wire into gsap ticker
ryanaidilp May 9, 2026
81cc3d2
feat(zog): build pinned client-logo cycle component
ryanaidilp May 9, 2026
7301d10
feat(zog): wire client logo cycle into home pages
ryanaidilp May 9, 2026
8037c16
feat(zog): build pinned why-banua-coder carousel
ryanaidilp May 9, 2026
aac31a5
feat(zog): wire why-carousel into home pages
ryanaidilp May 9, 2026
cab2707
chore(zog): reduced-motion fallback for both pinned sections
ryanaidilp May 9, 2026
abb3292
fix(zog): client logo cycle now actually visible and animates correctly
ryanaidilp May 9, 2026
c66efd9
feat(zog): per-logo scatter cycle, process/ideal scroll-driven reveal…
ryanaidilp May 9, 2026
a6ebd2b
copy: use 'Ryan' in narrative body prose, keep formal name for schema…
ryanaidilp May 9, 2026
7ea138f
copy: use 'Ryan' in narrative body prose (id + en)
ryanaidilp May 9, 2026
01dacbe
feat(zog): add per-cell parallax drift to client logo cycle
ryanaidilp May 9, 2026
2448bd4
feat(zog): bare logos, white silhouette on dark, emerge from behind h…
ryanaidilp May 9, 2026
7491474
style(zog): exclude pemda emblems from white-silhouette filter on dar…
ryanaidilp May 9, 2026
0f4a18f
chore: rename engineering bucket to open-source, add Caretaker/Detexi…
ryanaidilp May 9, 2026
9cb7e91
chore: stop tracking .playwright-mcp/ debug artifacts
ryanaidilp May 9, 2026
c4adbf4
feat(portfolio): Play Store badges, Archipelago + Sikerja entries, De…
ryanaidilp May 9, 2026
796a3dd
content: archipelago is a paid product, ayana/pico add web links, flu…
ryanaidilp May 9, 2026
16ef0d5
feat(portfolio + founder): tech stack logos + Reku marquee for prior …
ryanaidilp May 9, 2026
ebfd9dd
fix(zog): logos vanish at viewport edge; founder marquee mixes BC pro…
ryanaidilp May 9, 2026
c048701
fix(zog): anchor slots also fade out at edge before section unpins
ryanaidilp May 9, 2026
e64e1c6
feat(hero): auto-cycling product carousel — main rotates 4 BC product…
ryanaidilp May 9, 2026
28f7199
fix(founder): group marquee shots by product so each app reads as a c…
ryanaidilp May 9, 2026
d4b8e5d
fix(hero): sync front + back phones so they always show the SAME product
ryanaidilp May 9, 2026
5d9a60f
fix(hero): update CSS selector to match renamed data-hero-cycle-group
ryanaidilp May 9, 2026
9e49df5
feat(hero + footer): add Carwa as 5th product, swap Sikerja shots, PS…
ryanaidilp May 9, 2026
966f581
fix(zog): shorter, position-aware blur — clear in the middle, blurry …
ryanaidilp May 9, 2026
b74d5b0
fix(zog): each partner logo appears exactly once in the cycle
ryanaidilp May 9, 2026
e3850ac
feat(home): scroll storytelling for Services + Public Sector + revert…
ryanaidilp May 9, 2026
722187a
feat(home): testimonial quote reveals word-by-word as section enters
ryanaidilp May 9, 2026
cce3397
feat(home): scroll storytelling for About decoration, Founder experie…
ryanaidilp May 9, 2026
5a3d1e0
perf: add page loader + convert big PNG screenshots to WebP (~85% siz…
ryanaidilp May 9, 2026
abd0319
feat(portfolio): add MSP performance audit case study with embedded v…
ryanaidilp May 9, 2026
8f91c0e
fix(msp): move videos from wrongly-nested src path to public/portfoli…
ryanaidilp May 9, 2026
0fc127e
fix(mobile): hamburger menu was a no-op + page overflowed by 81px
ryanaidilp May 9, 2026
169088f
copy: simpler Indonesian, brand-icon loading screen
ryanaidilp May 9, 2026
061f583
fix(hero): show both phones on mobile, no more off-centre singleton
ryanaidilp May 9, 2026
5280efc
fix(favicon): use full BC monogram instead of B-only variant
ryanaidilp May 9, 2026
79f8565
merge: zog scroll experiments → marketing site redesign
ryanaidilp May 9, 2026
29b8ebf
fix(loader): hide on astro:after-swap so view transitions don't stran…
ryanaidilp May 9, 2026
6eaab89
fix(theme): persist across view transitions
ryanaidilp May 9, 2026
fce3ae2
chore(contact): use contact@banuacoder.com instead of hello@
ryanaidilp May 9, 2026
0300036
feat(404): add branded not-found page
ryanaidilp May 9, 2026
bffce7e
fix(portfolio): render inline backticks/bold in problem & solution fi…
ryanaidilp May 9, 2026
1a2f24e
fix(content): apply renderInlineMd to summary, impact, faq.a fields
ryanaidilp May 10, 2026
eb30980
tweak(zog): pull gowa+detexi toY closer to centre, off the edges
ryanaidilp May 10, 2026
37992d0
fix(zog): preserve cell centering with xPercent/yPercent so GSAP scal…
ryanaidilp May 10, 2026
167ca8f
feat(portfolio): add cektrans + tweak exit fade to fire only after ed…
ryanaidilp May 16, 2026
092edfa
ci(marketing): GH Actions deploy workflow + fix engineering→openSourc…
ryanaidilp May 29, 2026
c846015
ci: gitflow release workflow following cektrans/ayana_web pattern
ryanaidilp May 29, 2026
01eb28c
chore: bump version to 1.0.0
github-actions[bot] May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
73 changes: 73 additions & 0 deletions .beads/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# Dolt database (managed by Dolt, not git)
dolt/
embeddeddolt/

# Runtime files
bd.sock
bd.sock.startlock
sync-state.json
last-touched
.exclusive-lock

# Daemon runtime (lock, log, pid)
daemon.*

# Interactions log (runtime, not versioned)
interactions.jsonl

# Push state (runtime, per-machine)
push-state.json

# Lock files (various runtime locks)
*.lock

# Credential key (encryption key for federation peer auth — never commit)
.beads-credential-key

# Local version tracking (prevents upgrade notification spam after git ops)
.local_version

# Worktree redirect file (contains relative path to main repo's .beads/)
# Must not be committed as paths would be wrong in other clones
redirect

# Sync state (local-only, per-machine)
# These files are machine-specific and should not be shared across clones
.sync.lock
export-state/
export-state.json

# Ephemeral store (SQLite - wisps/molecules, intentionally not versioned)
ephemeral.sqlite3
ephemeral.sqlite3-journal
ephemeral.sqlite3-wal
ephemeral.sqlite3-shm

# Dolt server management (auto-started by bd)
dolt-server.pid
dolt-server.log
dolt-server.lock
dolt-server.port
dolt-server.activity

# Corrupt backup directories (created by bd doctor --fix recovery)
*.corrupt.backup/

# Backup data (auto-exported JSONL, local-only)
backup/

# Per-project environment file (Dolt connection config, GH#2520)
.env

# Legacy files (from pre-Dolt versions)
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm
db.sqlite
bd.db
# NOTE: Do NOT add negation patterns here.
# They would override fork protection in .git/info/exclude.
# Config files (metadata.json, config.yaml) are tracked by git by default
# since no pattern above ignores them.
81 changes: 81 additions & 0 deletions .beads/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Beads - AI-Native Issue Tracking

Welcome to Beads! This repository uses **Beads** for issue tracking - a modern, AI-native tool designed to live directly in your codebase alongside your code.

## What is Beads?

Beads is issue tracking that lives in your repo, making it perfect for AI coding agents and developers who want their issues close to their code. No web UI required - everything works through the CLI and integrates seamlessly with git.

**Learn more:** [github.com/steveyegge/beads](https://github.com/steveyegge/beads)

## Quick Start

### Essential Commands

```bash
# Create new issues
bd create "Add user authentication"

# View all issues
bd list

# View issue details
bd show <issue-id>

# Update issue status
bd update <issue-id> --claim
bd update <issue-id> --status done

# Sync with Dolt remote
bd dolt push
```

### Working with Issues

Issues in Beads are:
- **Git-native**: Stored in Dolt database with version control and branching
- **AI-friendly**: CLI-first design works perfectly with AI coding agents
- **Branch-aware**: Issues can follow your branch workflow
- **Always in sync**: Auto-syncs with your commits

## Why Beads?

✨ **AI-Native Design**
- Built specifically for AI-assisted development workflows
- CLI-first interface works seamlessly with AI coding agents
- No context switching to web UIs

🚀 **Developer Focused**
- Issues live in your repo, right next to your code
- Works offline, syncs when you push
- Fast, lightweight, and stays out of your way

🔧 **Git Integration**
- Automatic sync with git commits
- Branch-aware issue tracking
- Dolt-native three-way merge resolution

## Get Started with Beads

Try Beads in your own projects:

```bash
# Install Beads
curl -sSL https://raw.githubusercontent.com/steveyegge/beads/main/scripts/install.sh | bash

# Initialize in your repo
bd init

# Create your first issue
bd create "Try out Beads"
```

## Learn More

- **Documentation**: [github.com/steveyegge/beads/docs](https://github.com/steveyegge/beads/tree/main/docs)
- **Quick Start Guide**: Run `bd quickstart`
- **Examples**: [github.com/steveyegge/beads/examples](https://github.com/steveyegge/beads/tree/main/examples)

---

*Beads: Issue tracking that moves at the speed of thought* ⚡
54 changes: 54 additions & 0 deletions .beads/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Beads Configuration File
# This file configures default behavior for all bd commands in this repository
# All settings can also be set via environment variables (BD_* prefix)
# or overridden with command-line flags

# Issue prefix for this repository (used by bd init)
# If not set, bd init will auto-detect from directory name
# Example: issue-prefix: "myproject" creates issues like "myproject-1", "myproject-2", etc.
# issue-prefix: ""

# Use no-db mode: JSONL-only, no Dolt database
# When true, bd will use .beads/issues.jsonl as the source of truth
# no-db: false

# Enable JSON output by default
# json: false

# Feedback title formatting for mutating commands (create/update/close/dep/edit)
# 0 = hide titles, N > 0 = truncate to N characters
# output:
# title-length: 255

# Default actor for audit trails (overridden by BEADS_ACTOR or --actor)
# actor: ""

# Export events (audit trail) to .beads/events.jsonl on each flush/sync
# When enabled, new events are appended incrementally using a high-water mark.
# Use 'bd export --events' to trigger manually regardless of this setting.
# events-export: false

# Multi-repo configuration (experimental - bd-307)
# Allows hydrating from multiple repositories and routing writes to the correct database
# repos:
# primary: "." # Primary repo (where this database lives)
# additional: # Additional repos to hydrate from (read-only)
# - ~/beads-planning # Personal planning repo
# - ~/work-planning # Work planning repo

# JSONL backup (periodic export for off-machine recovery)
# Auto-enabled when a git remote exists. Override explicitly:
# backup:
# enabled: false # Disable auto-backup entirely
# interval: 15m # Minimum time between auto-exports
# git-push: false # Disable git push (export locally only)
# git-repo: "" # Separate git repo for backups (default: project repo)

# Integration settings (access with 'bd config get/set')
# These are stored in the database, not in this file:
# - jira.url
# - jira.project
# - linear.url
# - linear.api-key
# - github.org
# - github.repo
24 changes: 24 additions & 0 deletions .beads/hooks/post-checkout
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
# --- BEGIN BEADS INTEGRATION v1.0.3 ---
# This section is managed by beads. Do not remove these markers.
if command -v bd >/dev/null 2>&1; then
export BD_GIT_HOOK=1
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
if command -v timeout >/dev/null 2>&1; then
timeout "$_bd_timeout" bd hooks run post-checkout "$@"
_bd_exit=$?
if [ $_bd_exit -eq 124 ]; then
echo >&2 "beads: hook 'post-checkout' timed out after ${_bd_timeout}s — continuing without beads"
_bd_exit=0
fi
else
bd hooks run post-checkout "$@"
_bd_exit=$?
fi
if [ $_bd_exit -eq 3 ]; then
echo >&2 "beads: database not initialized — skipping hook 'post-checkout'"
_bd_exit=0
fi
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
fi
# --- END BEADS INTEGRATION v1.0.3 ---
24 changes: 24 additions & 0 deletions .beads/hooks/post-merge
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
# --- BEGIN BEADS INTEGRATION v1.0.3 ---
# This section is managed by beads. Do not remove these markers.
if command -v bd >/dev/null 2>&1; then
export BD_GIT_HOOK=1
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
if command -v timeout >/dev/null 2>&1; then
timeout "$_bd_timeout" bd hooks run post-merge "$@"
_bd_exit=$?
if [ $_bd_exit -eq 124 ]; then
echo >&2 "beads: hook 'post-merge' timed out after ${_bd_timeout}s — continuing without beads"
_bd_exit=0
fi
else
bd hooks run post-merge "$@"
_bd_exit=$?
fi
if [ $_bd_exit -eq 3 ]; then
echo >&2 "beads: database not initialized — skipping hook 'post-merge'"
_bd_exit=0
fi
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
fi
# --- END BEADS INTEGRATION v1.0.3 ---
24 changes: 24 additions & 0 deletions .beads/hooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
# --- BEGIN BEADS INTEGRATION v1.0.3 ---
# This section is managed by beads. Do not remove these markers.
if command -v bd >/dev/null 2>&1; then
export BD_GIT_HOOK=1
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
if command -v timeout >/dev/null 2>&1; then
timeout "$_bd_timeout" bd hooks run pre-commit "$@"
_bd_exit=$?
if [ $_bd_exit -eq 124 ]; then
echo >&2 "beads: hook 'pre-commit' timed out after ${_bd_timeout}s — continuing without beads"
_bd_exit=0
fi
else
bd hooks run pre-commit "$@"
_bd_exit=$?
fi
if [ $_bd_exit -eq 3 ]; then
echo >&2 "beads: database not initialized — skipping hook 'pre-commit'"
_bd_exit=0
fi
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
fi
# --- END BEADS INTEGRATION v1.0.3 ---
24 changes: 24 additions & 0 deletions .beads/hooks/pre-push
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
# --- BEGIN BEADS INTEGRATION v1.0.3 ---
# This section is managed by beads. Do not remove these markers.
if command -v bd >/dev/null 2>&1; then
export BD_GIT_HOOK=1
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
if command -v timeout >/dev/null 2>&1; then
timeout "$_bd_timeout" bd hooks run pre-push "$@"
_bd_exit=$?
if [ $_bd_exit -eq 124 ]; then
echo >&2 "beads: hook 'pre-push' timed out after ${_bd_timeout}s — continuing without beads"
_bd_exit=0
fi
else
bd hooks run pre-push "$@"
_bd_exit=$?
fi
if [ $_bd_exit -eq 3 ]; then
echo >&2 "beads: database not initialized — skipping hook 'pre-push'"
_bd_exit=0
fi
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
fi
# --- END BEADS INTEGRATION v1.0.3 ---
24 changes: 24 additions & 0 deletions .beads/hooks/prepare-commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
# --- BEGIN BEADS INTEGRATION v1.0.3 ---
# This section is managed by beads. Do not remove these markers.
if command -v bd >/dev/null 2>&1; then
export BD_GIT_HOOK=1
_bd_timeout=${BEADS_HOOK_TIMEOUT:-300}
if command -v timeout >/dev/null 2>&1; then
timeout "$_bd_timeout" bd hooks run prepare-commit-msg "$@"
_bd_exit=$?
if [ $_bd_exit -eq 124 ]; then
echo >&2 "beads: hook 'prepare-commit-msg' timed out after ${_bd_timeout}s — continuing without beads"
_bd_exit=0
fi
else
bd hooks run prepare-commit-msg "$@"
_bd_exit=$?
fi
if [ $_bd_exit -eq 3 ]; then
echo >&2 "beads: database not initialized — skipping hook 'prepare-commit-msg'"
_bd_exit=0
fi
if [ $_bd_exit -ne 0 ]; then exit $_bd_exit; fi
fi
# --- END BEADS INTEGRATION v1.0.3 ---
Loading
Loading