Väinämöinen is the wise, rune-singing hero of the Finnish epic Kalevala. He is a legendary sage whose songs shape the world and guide his people.
This is an app that delegates moderation powers to established community members based on subreddit-specific user flair.
- Delegated actions: Lock/Unlock, Sticky/Unsticky, Remove, Restore, plus mod-only Freeze/Unfreeze controls to pause activity on a single post or comment. Each user can only do one action to any item.
- Requires logged reasons for actions and logs are visible via individual item logs on the three dot menu for post and comments. (by all users) Only subreddit mods can see the users who performed actions, but everyone can see the reasons.
- Role-based access: "Baby Väinämöinen" and "Väinämöinen" flair thresholds enforced at click time.
- Automated setup: one-click menu task seeds flair templates, Automod karma rules, and a stickied onboarding comment for every new submission.
- Abuse protections: rate-limited action tracker with automatic warnings and 7-day bans for repeated abuse, plus moderator dashboards for audit and cleanup.
- Install the app on your subreddit. (This will add u/vainamoinen-mod as a moderator.)
- Create
r/<sub>/wiki/config/automoderatorif it does not already exist. - From the subreddit context menu run “Väinämöinen Initial Setup.”
- Ensures the two flair templates exist (no-op if already present).
- Writes or refreshes the Automod block that assigns flair by combined subreddit karma and injects the default stickied guidance comment.
- Rerun the setup any time to restore the defaults.
- Installation settings (per subreddit):
enable-remove-restore-postsenable-remove-restore-comments- Use these to turn off or on the ability for remove/restore on either posts or comments.
- Baby Väinämöinen (≥500 subreddit karma): Lock/Unlock.
- Väinämöinen (≥2000 subreddit karma): Lock/Unlock, Sticky/Unsticky, Remove/Restore.
- Anyone without the required flair still sees the menu item, but receives a motivational toast instead of action.
- Anti-abuse tracker warns at 5/10 actions (hour/day), issues a final warning at 6/11, and auto-bans for 7/12 within the same windows.
- Complete logging via Community Moderator Logs.
- View Action Log – timestamped action history per user (last 20 days).
- View Action Counts – lifetime totals of each delegated action (Remove and Restore tracked separately).
- Clear Action Log – deletes stored timestamps while retaining cumulative counts.
- Freeze/Unfreeze State (Mod) – post/comment buttons that block delegated Remove/Restore/Lock/Sticky until unfrozen.
- My Action Log – available to everyone for personal accountability.
- For your own app, change devvit.yaml app name to your app name.
- Working node environment (dev-env: node 24.8.0 / npm 11.6.0)
- Playtest:
npm run dev - Upload:
npm run deploy - Production:
npm run launch
See CHANGELOG.md for version history and release notes.
- It doesn't seem Devvit can hide menu items by flair, so enforcement happens during
onPress. - Users must be logged in; otherwise, actions are declined.
- Automod wiki operations require the bot account to retain wiki permission.
- Sticky posts use highlight slot 2 by default.
- App setting for Finnish or English and appropriate translations of app content.
- Enhanced Logging
- GitHub: https://github.com/betazep/vainamoinen-mod
- Published: https://developers.reddit.com/apps/vainamoinen-mod
- Devvit docs: https://developers.reddit.com/docs/
- Dev portal: https://developers.reddit.com/my/apps
This app was developed with assistance from ChatGPT Codex in Visual Studio as well as help from the Reddit Devs Community (Special thank you to https://github.com/PitchforkAssistant!)