Quickstart
Generate your first AI-powered content in under 5 minutes
This guide walks you through setting up Notra, connecting GitHub, configuring your brand voice, and generating your first piece of content.
Before you begin: You'll need a GitHub account with access to at least one repository. Notra works best with repositories that have recent pull request activity.
Setup
1. Create your organization
After signing up for Notra, you'll be prompted to create your organization workspace.
Set organization details
Enter your organization name (e.g., "Acme Inc") and a URL-friendly slug (e.g., "acme-inc"). The slug will be used in your workspace URL: app.usenotra.com/acme-inc
await authClient.organization.create({ name: "Acme Inc", slug: "acme-inc", websiteUrl: "https://example.com"});Optional: add your website
If you provide your website URL (e.g., "example.com"), Notra can automatically extract your brand identity, tone, and company description to help generate on-brand content.
Access your dashboard
Once created, you'll be redirected to your organization dashboard at /{slug} where you can manage integrations, content, and automation.
The organization slug cannot be changed after creation, so choose something that represents your company or team.
2. Connect your first GitHub integration
Notra generates content from GitHub activity like merged pull requests, releases, and commits.
Navigate to Integrations
From your dashboard, go to Integrations in the sidebar. You'll see available integrations including GitHub and Linear. Slack is listed as coming soon.
Click Connect on GitHub
Click the Connect button on the GitHub integration card. This will open a dialog where you can add a repository.
Notra supports both public and private repositories. For private repositories, you'll need to provide a GitHub personal access token.
Add repository URL or owner/repo
Enter your repository information in one of these formats:
- Full URL:
https://github.com/usenotra/notra - Owner/Repo:
usenotra/notra
Notra will automatically detect if the repository is public or private.
Add access token for private repos
If you're connecting a private repository, you'll need to provide a GitHub personal access token with repo scope.
How to create a GitHub personal access token
- Go to GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click Generate new token (classic)
- Give it a descriptive name like "Notra Integration"
- Select the repo scope for full repository access
- Click Generate token and copy the token
- Paste the token into the Notra integration dialog
Configure branch and outputs
- Select the default branch (usually
mainormaster) - Choose which content types to enable:
- Changelog: Technical release notes
- Blog Post: Feature announcements
- Twitter Post: Social media updates
- LinkedIn Post: Professional network updates
{ "outputs": { "changelog": { "enabled": true }, "blog_post": { "enabled": true }, "twitter_post": { "enabled": true }, "linkedin_post": { "enabled": false } }}Save integration
Click Add Integration to save. Your GitHub repository is now connected and ready to generate content.
For private repositories, keep your GitHub token secure. Notra stores it encrypted and only uses it to access repository data for content generation.
3. Configure your brand voice
Tell Notra how to write in your unique voice so all generated content matches your brand.
Navigate to Brand Identity
From your dashboard sidebar, click Brand → Identity.
Auto-extract brand information (optional)
If you provided your website URL during organization setup, Notra can automatically analyze your website to extract:
- Company description
- Brand tone and style
- Target audience
- Writing guidelines
Click Analyze to start the automated brand extraction. This takes about 30-60 seconds.
How brand analysis works
Notra scrapes your website homepage and key pages, then uses AI to extract brand information through a multi-step process:
- Scraping: Fetch website content
- Extracting: AI analyzes tone, style, and messaging
- Saving: Store brand profile for content generation
Review and customize company profile
Edit the auto-extracted information or manually enter:
- Company Name: Your product or company name
- Website: Your company website
- Description: A brief overview of what your company does
Set tone and language
Choose your content tone:
Preset tone profiles:
- Conversational: Friendly, approachable, casual
- Professional: Polished, formal, business-focused
- Casual: Relaxed, informal, personable
- Formal: Traditional, serious, authoritative
Or use custom tone:
- Define your own tone guidelines (e.g., "Technical but accessible, enthusiastic about developer experience")
Custom instructions:
- Add specific rules for content generation (e.g., "Always mention 'developers' instead of 'users'", "Avoid marketing jargon")
Define your target audience
Describe who you're writing for:
- Their role (developers, product managers, executives)
- Their pain points and interests
- What matters to them
Example: "Software engineers and DevOps teams who value automation, reliability, and clear technical documentation"
Save changes
Changes are auto-saved as you type. You'll see a success toast when your brand settings are updated.
You can re-analyze your website anytime by clicking the refresh icon next to the Company Profile heading. This is useful if you've updated your website branding.
Generate and review
4. Generate your first content
Now that you've connected GitHub and configured your brand, you're ready to generate content from your repository activity.
Create a workflow that runs automatically on a schedule.
Navigate to Automation → Schedules
From your dashboard sidebar, click Automation → Schedules.
Create new schedule
Click New Schedule to open the schedule configuration dialog.
Configure schedule settings
- Name: Give your schedule a descriptive name (e.g., "Weekly Changelog")
- Frequency: Choose Daily, Weekly, or Monthly
- Time: Set the time in UTC when the schedule should run
- Day: For weekly schedules, choose the day of the week
Example weekly schedule:
{ "frequency": "weekly", "dayOfWeek": 5, "hour": 17, "minute": 0}Select repository
Choose which GitHub integration(s) to analyze for content generation.
Choose output type
Select the content type to generate:
- Changelog
- Blog Post
- Twitter Post
- LinkedIn Post
Set lookback window
Choose how far back to analyze activity:
- 24 hours: Daily updates
- 7 days: Weekly summaries
- 30 days: Monthly roundups
Save and enable
Click Create Schedule. Your workflow is now active and will run automatically at the specified time.
Run now (optional)
Click the ••• menu on your schedule and select Run now to test content generation immediately without waiting for the scheduled time.
Create a trigger that responds to GitHub webhook events in real-time.
Navigate to Automation → Events
From your dashboard sidebar, click Automation → Events.
Create new event trigger
Click New Event Trigger to open the configuration dialog.
Select GitHub webhook source
Choose GitHub webhook as the trigger source type.
Choose event types
Select which GitHub events should trigger content generation:
- Release Published: When a new release is created
- Push to default branch: When commits are pushed to the default branch
Select release, push, or both.
Select target repositories
Choose which GitHub integrations should trigger this workflow.
Choose output type
Select what content to generate when the event occurs: Changelog, Blog Post, Twitter Post, or LinkedIn Post.
Save event trigger
Click Create Trigger. Notra will now generate content automatically whenever the specified GitHub events occur.
Event-based triggers react immediately to GitHub activity, while scheduled workflows run at specific times and analyze a range of activity.
5. View and edit generated content
Once content is generated (either from a schedule running or an event trigger), it will appear in your Content dashboard.
Navigate to Content
Click Content in the dashboard sidebar to see all generated posts.
Browse content
Content is organized by date with the most recent posts first. You can:
- Switch between Grid view and Table view
- Filter by content type
- See post status (Draft or Published)
Open a post
Click on any content card to open the full editor with:
- Markdown editor with live preview
- AI chat assistant to refine content
- Source metadata showing which PRs/issues were analyzed
Edit content
You can:
- Directly edit the markdown
- Use the AI assistant to rewrite sections
- Adjust the title
- Change content type
Publish
When ready, change the status from Draft to Published. The content is now marked as finalized.
All generated content starts as a Draft so you can review and refine before marking it as published.
What's next?
Connect Linear for issue context. Framer and other publishing destinations are planned.
Use the MCP server to let AI agents manage Notra on your behalf.
Access content programmatically and build custom integrations.
Type-safe Rust client for the Notra API.
Example workflows
Weekly engineering update
Goal: Automatically generate a changelog every Friday summarizing the week's work.
Setup:
- Go to Automation → Schedules
- Create a schedule named "Weekly Engineering Update"
- Set frequency to Weekly, day to Friday, time to 5:00 PM UTC
- Select all your GitHub integrations as targets
- Choose Changelog as output type
- Set lookback window to 7 days
- Save and enable
Result: Every Friday at 5 PM, Notra generates a changelog from the week's merged PRs and commits.
Instant release announcements
Goal: When you publish a GitHub release, automatically generate a blog post and social media updates.
Setup:
- Go to Automation → Events
- Create 3 separate event triggers:
- Trigger 1: Output type Blog Post
- Trigger 2: Output type Twitter Post
- Trigger 3: Output type LinkedIn Post
- For each trigger:
- Source: GitHub webhook
- Event type: Release Published
- Target: Your main repository
- Save all three triggers
Result: When you publish a release on GitHub, Notra generates a blog post draft and social media posts for review.
Monthly product recap
Goal: Generate a monthly summary of product progress for customers or investors.
Setup:
- Go to Automation → Schedules
- Create a schedule named "Monthly Product Recap"
- Set frequency to Monthly, day to 1 (first of month), time to 9:00 AM UTC
- Select all repositories as targets
- Choose Blog Post or Changelog as output type
- Set lookback window to 30 days
- Save and enable
Result: On the first of every month, Notra generates a summary of the previous month's achievements, features shipped, and progress.
Troubleshooting
GitHub integration not showing my repositories
- Make sure your GitHub token has the
reposcope - Verify the repository owner and name are correct
- Check that the token hasn't expired
- For organization repositories, ensure your token has access to the organization
No content is being generated
- Verify your schedule or event trigger is enabled (not paused)
- Check that your GitHub integration has recent activity (merged PRs, commits)
- Ensure the lookback window includes the period when activity occurred
- Review the integration's enabled output types match your trigger's output type
Generated content doesn't match my brand voice
- Go to Brand → Identity and review your settings
- Add more specific custom instructions
- Use the custom tone field to provide detailed voice guidelines
- Describe your target audience more specifically
- If you provided a website, try re-analyzing it to refresh brand data
Schedule not running at the expected time
- Schedules run in UTC timezone, so convert your local time to UTC
- Check the schedule status and make sure it's Active, not Paused
- View the schedule details to confirm the day/time settings are correct
Visit our GitHub repository for additional documentation, examples, and community support.
Did this work on your setup?
Not rated yet