Everything you need to ship release notes
A plain-English tour of Yanib — from connecting your first repo to publishing a changelog that reaches every channel your users read.
Contents
Jump to a section
How Yanib works
The release pipeline in 60 seconds.
Quickstart
Two tracks — shipping as a team or as a solo dev.
Connecting a repo
GitHub or GitLab. Public, private, or organization.
Your first release
Push a tag, review the draft, hit publish.
Auto-release triggers
Tag, PR merge, or scheduled batching.
Reviewing & editing
AI rewrite, multi-audience, social posts, translation.
Publishing & distribution
GitHub Release, changelog page, integrations, subscribers.
Integrations
Slack, Discord, generic webhooks, email subscribers.
Public changelog page
Customizable, SEO-ready, RSS, analytics.
SDK & embeds
Four web components to embed anywhere.
Teams
Invite members, assign roles, team repos.
Team Commit Digest
Recurring AI velocity reports — not releases.
Developer profile
Cards, stats, badges, year-in-review.
Bring your own AI key
Plug in your own API key — unlimited repos.
Plans & billing
Free, Pro, cancellation with end-of-period grace.
Troubleshooting
Common issues and how to fix them.
How Yanib works
The release pipeline in 60 seconds
You keep shipping the way you already do — commits, PRs, tags. When you publish a release on GitHub or GitLab, Yanib takes it from there.
- 1
You push a tag
Publish a release on GitHub (or tag push on GitLab). Our webhook picks it up in seconds. No CI step, no GitHub Action, no YAML to maintain.
- 2
AI writes a draft
Yanib pulls every commit and merged PR between the previous tag and this one, feeds them to the AI with context about your repo's stack and history, and produces a structured changelog — grouped by Breaking / Feature / Fix.
- 3
You review and publish
Edit anything that needs a human touch. Hit Publish. Yanib updates your GitHub Release, your public changelog page, sends it to Slack/Discord/email subscribers, and refreshes any embedded widgets — all at once.
Quickstart
Pick your track
Two common starting points. Both take about five minutes.
Shipping with a team
You have teammates who should see drafts, edit entries, and publish on behalf of the workspace.
- Sign in with GitHub, Google, or email.
- Create a team from the workspace switcher in the top nav. Name it after your product or company.
- Invite teammates by email. Assign them Admin if they'll manage repos or billing, Member if they'll edit drafts.
- In the team's Repos tab, click Connect Repo and pick one. Yanib installs a webhook automatically.
- Add a Slack or Discord integration under Integrations so every published release lands in chat.
- Push your next release tag and review the draft when you get the email.
Want a weekly "what we shipped" report for the whole team? Enable Team Commit Digest.
Shipping as a solo dev
You're maintaining a side project or open-source library and want release notes, a public changelog, and a developer profile to show it off.
- Sign in with GitHub (so your username becomes your profile slug).
- Click Connect Repo, pick your main project. Public, private, or organization repos all work.
- Go to Settings → Account. Set up your developer profile card and drop the SVG badge into your GitHub README.
- Push your first release tag. Review the AI draft, tweak the voice, hit Publish.
- Share the public changelog URL (yanib.dev/changelog/<slug>) — it has RSS, SEO, and an OG image out of the box.
Want to embed the feed on your own site? Use the SDK — one script tag, four web components.
Connect
Connecting a repo
Click Connect Repo on the Repos page. The modal shows every repo you have admin or maintain access to. Pick one, hit Connect — Yanib sets up a webhook and you're done.
GitHub: OAuth vs GitHub App
Yanib connects to GitHub one of two ways:
- OAuth webhook (default) — works for any repo you personally have admin rights to.
- Yanib GitHub App — the right choice for organization-owned repos, private repos, or when teammates without admin rights need to connect repos the org owns. Install it once per organization from inside the Connect modal.
GitLab
Sign in with GitLab or connect a GitLab account from Settings → Account. Both GitLab.com and self-hosted instances are supported. For self-hosted, use a Personal Access Token (go to Settings → Integrations → GitLab and paste the token).
After connect: automatic indexing
On first connect, Yanib spends a minute reading your README, manifest file, and the last 50 merged PRs to build a context brief about your project. This is what lets the AI write release notes that sound like your product — not generic "updated utility functions" noise.
The brief refreshes periodically so it stays current as your codebase evolves.
First release
Your first release
The default trigger is a GitHub Release (or GitLab Release / Tag Push). Create one the way you normally would:
git tag v1.0.0
git push origin v1.0.0
# then on GitHub: Releases → Draft a new release → pick the tag → PublishWithin a few seconds, Yanib will:
- Mark the release as Pending in your dashboard.
- Fetch all commits and merged PRs between the previous tag and this new one.
- Call the AI to draft structured entries (Breaking changes, New features, Bug fixes, Other).
- Notify you via email that the draft is ready to review, and transition the release to Draft.
Open the release in your dashboard, make any edits, and click Publish. Everything downstream happens in one shot.
Triggers
Auto-release triggers
Not every team tags. Yanib supports four trigger modes — pick one per repo from Repos → [repo] → Settings.
Tag (default)
Release is generated when you publish a GitHub/GitLab Release. Best when you already use semantic versioning.
PR merge
Every merged PR becomes its own release. Good for continuous deployment where each PR ships to production. Each release gets an auto-generated tag like release-2026-04-20-a3f1.
Scheduled batch
Accumulates merged PRs and bundles them into one release on a schedule — daily, weekly, or monthly. The sweet spot for teams that ship frequently but want fewer, bigger changelog posts.
Auto-publish
An opt-in toggle on any of the above — skip the draft review step and publish straight to every channel. Use carefully.
Switching modes is safe — existing releases stay, and the next trigger picks up from where you left off. Merged PRs that haven't been released yet sit in a running-draft list you can see any time under Repos → [repo] → Overview.
Review
Reviewing & editing
Once the AI produces a draft, you get a structured editor: each change is a standalone entry you can edit inline, reorder by drag-and-drop, delete, or rewrite with a single click.
AI rewrite — four styles
Hit the sparkle icon on any entry to rewrite it as:
- Concise — one tight sentence.
- Detailed — context, motivation, and what changed.
- User-facing — plain English for non-engineers.
- Technical — for a developer-only audience.
Multi-audience versions
Click Generate multi-audience to produce three parallel versions of the whole release at once — one for developers, one for product managers, one for end users. Switch between them in the release view without re-generating.
Social posts
Click Generate social to draft a Twitter/X post and a LinkedIn post for the release, ready to copy-paste or share straight to your own accounts.
Translation (13 languages)
On your public changelog page, readers can switch language from a picker. Yanib translates the entries on first request, caches the result, and serves cached translations free forever after. Technical terms (API names, function names) are preserved.
Publish
Publishing & distribution
Hitting Publish does five things at once:
- Updates your GitHub Release body (or GitLab Release) with the final markdown.
- Publishes your public changelog page at yanib.dev/changelog/<slug>.
- Posts to every integration linked to the repo (Slack, Discord, generic webhooks).
- Emails subscribers of the public changelog (with double opt-in and one-click unsubscribe).
- Refreshes embedded widgets on any site using the Yanib SDK.
If the GitHub Release update fails (rare — rate limits, revoked tokens), the integrations, emails, and public page still go out. We never let one failing channel block the others.
Export
Need the raw content elsewhere? Every release has an export button that outputs Markdown, HTML, or JSON — useful for CHANGELOG.md files, internal wikis, or custom distribution.
Integrations
Slack, Discord, webhooks, email
Integrations are set up once per account or team under Settings → Integrations, then linked per-repo under each repo's Integrations tab. A single Slack channel can receive releases from multiple repos; a single repo can post to multiple channels.
Slack
Paste an incoming webhook URL. You get formatted messages with title, summary, highlighted change types, and a link to the full release.
Discord
Paste a Discord webhook URL. You get a rich embed with color-coded change types (red for breaking, green for features, amber for fixes) and a link to the release.
Generic webhooks (Zapier / Make / n8n / custom)
Any URL that accepts JSON. Yanib sends a structured payload with the release, entries, and metadata — perfect for piping into Zapier, Make, n8n, or your own automation.
Email subscribers
Your public changelog page has a "Subscribe" form. Readers enter their email, confirm via a verification link, and get an email every time you publish. Built-in one-click unsubscribe in every email.
Public page
Your public changelog page
Every connected repo gets a public page at yanib.dev/changelog/<slug>. No configuration needed — it's live the moment you publish your first release.
Customize it
Under Repos → [repo] → Customize you can set:
- Page title and tagline
- Logo (uploaded or URL)
- Accent color (matches your brand)
- A custom hero subtitle
RSS, SEO, and analytics
Every page comes with /rss.xml automatically, an OG image for social sharing, and proper meta tags so search engines index it. Under Analytics on the repo page you can see pageviews, referrers, and the release each view landed on.
Slug stays stable
Your slug is generated when you first connect the repo and never changes — not even after a GitHub rename or transfer. That means links you've shared continue to work forever.
Embeds
SDK & embeds
Drop one script tag on any page and you can use four web components anywhere:
<script src="https://yanib.dev/sdk.js"></script>
<!-- Full release feed -->
<yanib-changelog slug="your-repo-slug" theme="light" limit="5"></yanib-changelog>
<!-- Dismissible announcement bar -->
<yanib-banner slug="your-repo-slug" dismissible="true"></yanib-banner>
<!-- Floating "what's new" bell -->
<yanib-notifications slug="your-repo-slug" position="bottom-right"></yanib-notifications>
<!-- Personal release feed (for profiles, portfolios) -->
<yanib-feed user="your-username" limit="5"></yanib-feed>The components are framework-agnostic — they work in React, Vue, plain HTML, or any static site generator. Each component fetches live data from Yanib's public API and refreshes on publish.
Public API (for programmatic access)
Prefer to build your own UI? Use the public endpoints:
- GET /api/v1/releases?slug=<slug> — all releases for a repo.
- GET /api/v1/releases/latest?slug=<slug> — latest release only.
- GET /api/feed/<username> — a user's release feed across all their repos.
- GET /api/changelog/<slug>/embed — JSON optimized for widgets (CORS-enabled).
Teams
Teams
A team is a shared workspace. Team repos, team integrations, team digests — all separate from your personal account, with separate billing.
Roles
- Owner — full control. Manage billing, delete the team.
- Admin — manage repos, members, and integrations. Cannot delete the team or change billing.
- Member — view and edit releases, publish drafts. Cannot add repos or invite others.
Switching context
The team switcher in the top nav toggles between your personal workspace and any team you belong to. Everything you do — connecting a repo, adding a Slack integration, drafting a release — applies to the current context. No accidental cross-team moves.
Invites
Invite teammates by email from Teams → [team] → Members. Invites expire after 7 days. The invitee accepts via a link emailed to them; if they don't have an account yet, they can sign up and land straight in the team.
Digests
Team Commit Digest
Digests are different from releases. A release documents a specific version. A digest is a recurring AI-generated velocity report — "here's what your team shipped this week."
Opt-in and schedule
Under Team Settings → Digests, toggle on either or both:
- Team-level digest — one report aggregating all team repos.
- Per-repo digest — one report per active repo.
Pick a cadence (daily, weekly, biweekly, monthly), the day/hour in UTC, and where it should go (Slack, Discord, email).
What you get
Each digest contains:
- A one-paragraph AI summary of the period's work
- Commit counts per repo, per contributor
- Highlighted themes (e.g. "authentication hardening," "performance")
- A per-contributor insight line (opt-out available)
- A hero quote and a "standout moment" from the period
Privacy
If your team prefers no individual attribution, toggle off Show contributor names. The AI prompt is rewritten to speak about "the team" collectively and the dashboard hides the contributor list.
Quiet periods
If zero commits happened in the window, the digest is skipped — no "you shipped nothing" Slack messages.
Profile
Developer profile
Every Yanib user automatically gets a public developer profile at yanib.dev/u/<username>. It aggregates every release you've published across every repo you've connected.
Profile card (SVG for READMEs)
Drop this in your GitHub README:
Customize light/dark theme, compact or full layout, and accent color under Settings → Account → Profile Cards. Live preview updates as you type.
Release badge
A shields.io-style badge showing the latest release of any of your repos:
The badge keeps working after a GitHub rename or transfer — old URLs redirect via the former-names list we track automatically.
Stats badge
A live "shipping stats" badge summarizing total releases, active repos, and last-ship date:
Year in Review
A year-in-review page at yanib.dev/u/<username>/<year> — great for end-of-year shipping retrospectives on Twitter/LinkedIn. Combines your Yanib releases with your GitHub activity for the year.
BYOK
Bring your own AI key
Prefer to pay Anthropic directly and avoid the platform surcharge? Plug in your own Claude API key.
What you get
- Unlimited repos on the Free tier (you're paying the AI bill yourself).
- Model choice — pick your preferred model from the Settings page.
- Isolated cache — your key's AI responses don't mix with the platform cache.
Setup
- Get a Claude API key from console.anthropic.com.
- Go to Settings → AI in Yanib.
- Paste your key and pick your preferred model. Save.
Your key is encrypted at rest with AES-256-GCM before being stored. It's decrypted only inside the AI task context and never logged.
Billing
Plans & billing
Free
No credit card required
- 1 connected repo
- AI changelog generation
- Public changelog page with RSS
- Slack, Discord, webhooks, email subscribers
- Embeddable widgets
- Developer profile + badges
Pro — $29/mo
Everything in Free, plus:
- Unlimited repos
- Teams with roles (Owner/Admin/Member)
- Team Commit Digest
- Changelog analytics (views, referrers)
- Priority support
Cancellation with end-of-period grace
Cancel from Settings → Billing. Your Pro features stay active until the end of the current billing period — then you revert to Free. No data is deleted, and you can resume any time before the grace window ends to stop the downgrade.
Troubleshooting
Common issues
I pushed a tag but nothing happened
Yanib listens for Release events, not plain tag pushes. Publish a release from the GitHub Releases UI (or API) pointing at your tag. On GitLab, either use the Releases feature or trigger via Tag Push.
I see "GitHub App" on my repo but no releases generate
The App installation under your owner may not cover that specific repo. Go to your GitHub App settings and add the repo to the install, or disconnect and reconnect the repo in Yanib — the fresh connect verifies per-repo coverage and falls back to an OAuth webhook if the App doesn't apply.
A release status is stuck on Generating
Click Retry on the release. If it keeps failing, check Settings → AI — if you're on BYOK, your key may have hit a rate limit or expired. Releases that fail are logged in the Activity feed.
I'm Pro but I see an upgrade modal when connecting a team repo
Personal Pro doesn't cover team repos. Purchase Pro for the team itself from Team Settings → Billing.
The README badge shows "none" after I renamed my repo
It should auto-recover — we track former repo names and fall back to them automatically. If it stays broken, sync the repo manually from Repos → [repo] → Sync from GitHub.
Something else?
Check the Support page for the FAQ, or email support@yanib.dev.