Overview
Bulletin Board automates content distribution:- Followers subscribe to profiles they’re interested in
- System compiles new stories from followed profiles
- Digests delivered on schedule (daily, bi-daily, weekly)
- Multiple delivery channels (Email, Telegram)
- Personalized content based on follows
Subscriptions are per-profile, per-channel. A user can have different digest frequencies for different profiles.
Subscription System
Creating a Subscription
Set frequency
- Daily: Digest sent every day
- Bi-daily: Digest sent every two days
- Weekly: Digest sent once per week
Configure preferences
- Preferred Time: UTC hour for delivery (0-23)
- Default Locale: Language for digest content
Subscription Properties
Delivery Channels
Delivered to user’s verified email address
Telegram
Sent via Aya Bot to linked Telegram account
Email Delivery
Requirements:- User must have verified email
- Email delivery service configured
- HTML with responsive design
- Grouped by followed profile
- Story summaries with read-more links
- Unsubscribe link in footer
- Profile branding (logos, colors)
Telegram Delivery
Requirements:- User must have linked Telegram account (see Telegram Bot)
- Aya Bot must be able to message user
- Markdown-formatted messages
- Grouped by profile
- Story titles with direct links
- Inline navigation buttons
- Author information
Telegram digests use Telegram’s native formatting for optimal mobile experience.
Digest Frequency
Daily Digests
- Sent every day at preferred time
- Includes stories from past 24 hours
- Best for high-volume profiles
- May be empty if no new content
Bi-Daily Digests
- Sent every two days at preferred time
- Includes stories from past 48 hours
- Balanced frequency for moderate activity
- Reduces notification fatigue
Weekly Digests
- Sent once per week at preferred time
- Includes stories from past 7 days
- Best for low-volume profiles
- Comprehensive weekly roundup
Digest Content Structure
Digest Groups
Digests are organized by followed profile:Story Information
Each story in digest includes:- Story title (linked to full story)
- Story kind (article, news, event, etc.)
- Summary or AI-generated summary
- Author profile info
- Publication date
- Story picture (if available)
- Read time estimate
Stories use AI-generated summaries (
summary_ai) if manual summary is missing.Digest Generation
Digests are generated in batch:Scheduler identifies due subscriptions
System finds subscriptions due for delivery based on frequency and last sent time
Query new stories
For each subscription:
- Find followed profiles (via membership)
- Get published stories since last bulletin
- Filter by publication status and visibility
Apply locale fallback
Use 3-tier fallback for story content:
- Subscriber’s preferred locale
- Profile’s default locale
- Any available translation
Empty Digests
Digest is skipped if:- No new published stories since last bulletin
- All stories are private (user lacks access)
- Followed profiles have no publications
Bulletin Logs
Each delivery is logged:sent: Successfully deliveredfailed: Delivery failed (see error_message)
- Email: Bounced, invalid address, rate limited
- Telegram: Bot blocked by user, user deleted account
Managing Subscriptions
View Subscriptions
Users can view all their subscriptions:- Grouped by channel (Email, Telegram)
- Sorted by profile
- Shows frequency and last delivery
- Next scheduled delivery time
Update Subscription
Unsubscribe
Methods:- Click unsubscribe in digest footer
- Remove subscription from settings page
- Unfollow profile (removes all related subscriptions)
Unsubscribing from one channel (Email) doesn’t affect other channels (Telegram). Users can maintain separate preferences.
Preferred Delivery Time
Users set preferred UTC hour (0-23): Examples:9= 09:00 UTC (morning in Europe)14= 14:00 UTC (morning in US East Coast)22= 22:00 UTC (evening in US, morning in Asia)
Multi-Locale Support
Digests respect locale preferences:
Supported Languages:
ar, de, en, es, fr, it, ja, ko, nl, pt-PT, ru, tr, zh-CN
Profile Perspective
Profile owners can see:- Number of bulletin subscribers
- Breakdown by channel (Email vs Telegram)
- Subscriber growth over time
- Most subscribed frequency
Individual subscriber information is private. Profile owners see aggregated statistics only.
Best Practices
As a Content Creator
As a Content Creator
- Publish stories at consistent times
- Write compelling summaries (they appear in digests)
- Use story pictures for visual appeal
- Consider subscriber time zones when publishing
- Enable AI summarization for automatic summaries
- Promote subscription on your profile
As a Subscriber
As a Subscriber
- Choose frequency based on profile activity
- Set delivery time for your reading routine
- Use different channels for different needs
- Unsubscribe from inactive profiles
- Update locale if language preferences change
- Check spam folder if emails missing
For Communities
For Communities
- Encourage members to subscribe
- Maintain regular publishing schedule
- Feature bulletin subscription in onboarding
- Use consistent story kinds for filtering
- Monitor delivery success rates
- Provide value in every digest
Delivery Timing
Digests are sent in batch jobs: Process:- Cron job runs hourly
- Identifies subscriptions due at current hour
- Generates and sends digests
- Updates
last_bulletin_attimestamp - Schedules next delivery based on frequency
Actual delivery may occur 0-59 minutes after preferred hour depending on batch processing time.
Spam Prevention
Rate Limiting
Maximum 1 digest per frequency period
Empty Skip
No digest sent if no new content
Failure Pausing
Pause after 3 failed deliveries
Easy Unsubscribe
One-click unsubscribe in every digest
Troubleshooting
Not receiving email digests
Not receiving email digests
- Check spam/junk folder
- Verify email address is correct and verified
- Check subscription is active (not paused)
- Review bulletin logs for delivery errors
- Ensure followed profiles have published new stories
Not receiving Telegram digests
Not receiving Telegram digests
- Verify Telegram account is linked
- Check you haven’t blocked Aya Bot
- Start conversation with bot if first time
- Review subscription status
- Check bulletin logs
Receiving too many/few updates
Receiving too many/few updates
- Adjust frequency (daily/bi-daily/weekly)
- Follow/unfollow profiles as needed
- Check profile activity level
- Consider different channels for different profiles
Wrong language in digest
Wrong language in digest
- Update subscription locale setting
- Check profile has translations in your language
- System falls back to profile default if no translation
Configuration
Server Configuration:Next Steps
Stories
Create content for digests
Telegram Bot
Link Telegram for digest delivery
Profiles
Build your following
AI Integrations
Enable AI summarization for digests