{"id":50761425,"url":"https://github.com/heitorlessa/brag","last_synced_at":"2026-06-11T10:02:35.773Z","repository":{"id":363528037,"uuid":"1263728775","full_name":"heitorlessa/brag","owner":"heitorlessa","description":"Local-first, privacy-first record of achievements, goals, mentoring, enablement, and energy. No server, no sync, no account.","archived":false,"fork":false,"pushed_at":"2026-06-09T09:43:16.000Z","size":225,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-09T10:16:46.091Z","etag":null,"topics":["brag-doc","career","local-first","nuxt","opfs","privacy","sqlite","vue"],"latest_commit_sha":null,"homepage":"https://brag-heitor-lessas-projects.vercel.app","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heitorlessa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-09T08:03:46.000Z","updated_at":"2026-06-09T09:52:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/heitorlessa/brag","commit_stats":null,"previous_names":["heitorlessa/brag"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/heitorlessa/brag","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorlessa%2Fbrag","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorlessa%2Fbrag/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorlessa%2Fbrag/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorlessa%2Fbrag/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heitorlessa","download_url":"https://codeload.github.com/heitorlessa/brag/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heitorlessa%2Fbrag/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34192870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["brag-doc","career","local-first","nuxt","opfs","privacy","sqlite","vue"],"created_at":"2026-06-11T10:02:35.156Z","updated_at":"2026-06-11T10:02:35.758Z","avatar_url":"https://github.com/heitorlessa.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Brag\n\n\u003e A **local-first, privacy-first** record of your achievements — and the goals,\n\u003e people, and energy behind them.\n\n**▶ Try it live: [brag-heitor-lessas-projects.vercel.app](https://brag-heitor-lessas-projects.vercel.app)** — runs entirely in your browser; nothing is sent anywhere.\n\nKeep track of the wins you'll forget by review season: the goals you set, the\npeople you mentor, the enablement you run, and a weekly energy check-in to catch\nburnout before it catches you.\n\nEverything lives in your browser — SQLite via OPFS. **No server, no sync, no\naccount.** Your data never leaves your machine. Back it up to JSON, or export a\nMarkdown \"brag doc\" for reviews whenever you like.\n\n\u003c!-- Screenshots coming soon — UI is being polished. --\u003e\n\n## What's inside\n\n- 🏆 **Achievements** — log wins with Markdown notes, impact, tags, and an optional goal link\n- 🎯 **Goals** — yearly goals grouped by year, with status and progress\n- 🤝 **Mentoring** — the people you mentor and a log of every session\n- 🎤 **Enablement** — workshops, talks, training, and docs you delivered\n- 🔋 **Energy** — a weekly reflection (energy / workload / satisfaction) with a trend chart and a burnout-risk signal\n- 📊 **Dashboard** — recent wins, goal progress, and energy trend at a glance\n- 💾 **Settings** — JSON backup \u0026 restore, and Markdown brag-doc export by date range\n\n## Quick start\n\n```bash\nmake install   # install dependencies (pnpm)\nmake watch     # dev server at http://localhost:3000\n```\n\n| Command            | What it does                        |\n| ------------------ | ----------------------------------- |\n| `make watch`       | Dev server with hot reload          |\n| `make build`       | Production build (SPA)              |\n| `make validate`    | Lint (oxlint + ESLint) + typecheck  |\n| `make test`        | Run the unit/schema test suite      |\n| `make db-generate` | Generate + embed Drizzle migrations |\n\n## Data \u0026 privacy\n\nAll data is stored locally in OPFS and is specific to this browser profile.\nThere is no telemetry and nothing leaves your device. Use **Settings → Export\nJSON** regularly to keep a backup — clearing browser storage will erase it.\n\n## Stack\n\n- **Nuxt 4** · **Vue 3** · **Nuxt UI 4** · **Tailwind 4**\n- **SQLocal** (SQLite WASM + OPFS) · **Drizzle ORM** · **drizzle-zod**\n- **TipTap** WYSIWYG editor that stores **Markdown**\n- **Vitest** · **oxlint / ESLint / oxfmt** quality gates enforced on commit via **Husky**\n\n## Automating data entry\n\nBrag exposes a `window.brag` API, WebMCP tools, and an append-from-file import so\nan agent can ingest data without clicking through forms. See\n[AUTOMATION.md](./AUTOMATION.md) for the data shapes and copy-paste recipes.\n\n## Roadmap\n\nBrag is in early dogfooding — the plan is to use it daily for a month before\ncalling it stable. Coming next:\n\n- 📸 Screenshots and a short walkthrough (once the UI settles)\n- 📚 Proper docs\n- ✨ Polish driven by real-world use\n\n\u003e ⚠️ Early days: expect rough edges and the occasional breaking change while the\n\u003e schema settles. Keep a JSON backup.\n\n---\n\nBuilt for the wins you'd otherwise forget.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheitorlessa%2Fbrag","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheitorlessa%2Fbrag","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheitorlessa%2Fbrag/lists"}