Announcing V2
Along with the anticipation of Survivor 47 comes some exciting updates to Survivor Survivor League that I’m happy to share! This update includes some small redesigns to the core features of the app, as well as a re-write of the underlying data model to make league administration much easier.
New Features
New UI
- Redesigned some key aspects of the UI
- New “League Stats” page showing a more detailed breakdown of picks across the league
- See here for more info
- New league navigation support for more fine-grained pages across the app, and better support for mobile devices
- Tribe groups on the picks page are now collapsible to hide tribes you don’t wish to pick from for that episode
- League winner list will now show the reason why they won (e.g. “Perfect”, “Firemaking Tiebreaker”, etc.)
- Added dark mode
Feed
- You can now
@mention
other league members in posts and comments- Users will receive a notification when another user mentions them in a post or comment
- Click on a mention to navigate to that user’s profile page
- You can now upload images to attach to your posts
- You can now react to specific comments on posts
- Post reactions now have a default set of emojis to choose from, in addition to the full set
League Administration
- League admins no longer need to create/manage “weeks” in the app. Episode results are now global, and all you need to do is click a button when you want to move your league on to the next episode
- See here for more info
- League admins have the option to automatically advance their league on the Sunday after the episode airs, removing the need to manually process anything on the admin page
- See here for more info
- Deadline of when you have to make league members have to make their winner pick by is now configurable
- Invitation links are controlled by the league admin and are now unique/can expire
- Invitations can now be automatically emailed to a desired recipient
Pick Reminders
- You can now opt-in to pick reminders by email, SMS, or both
- Along with this work, I improved the reliability of the automated reminders to occur at a more predictable time
Bug Fixes
- Fixed a bug that caused eliminated league members to still receive pick reminders
Notice of League History
- Since I have switched to a new database system, you may not see history of your previously completed leagues in the dashboard anymore. I do still have all of the data, and will work to migrate it over to the new format eventually
Nerd Stuff
- Small performance improvements across the app
- Refactored logic to have a global “source of truth” for eliminations
- Migrated from Prisma↗ to Drizzle↗ for better serverless performance, developer experience, and SQL optimization.
- Database calls are much more efficient now, and migrations are much easier
- Moved from PlanetScale↗ to Neon↗ to avoid charges after PlanetScale sunsetted their free tier
- Switched from Tiptap↗ to Lexical↗ for rich text editing
- Unlocked mentions, markdown support, and other key functionality
- Moved a bunch of microservices over to AWS
- This is part of a larger effort to port everything over to AWS eventually. As we get more and more people on the site, it makes less and less sense to stay on Vercel↗ (especially if I want to make money in the future 😈)
Feedback
For any feedback/ideas for the future, feel free to email me at matthewgramigna at gmail dot com. I also added a “feedback” option in the profile menu where you can submit feedback directly through the site