Morning Routine

Morning Routine

A tontine-style game. Phase 1: Mint a token. Phase 2: Check in by screaming into your mic on the web or via Frames daily to stay qualified. Last participant standing wins the net proceeds from mint.

The problem Morning Routine solves

Morning Routine combines blockchain technology, social interaction, and gamification to foster a community focused on positive daily routines.

Uniqueness
Morning Routine stands out with its tontine-style approach, where the last participant standing wins the net proceeds from mint. This competitive element drives continuous engagement, motivating participants to maintain their daily check-ins. The option to scream into the microphone during check-in adds a playful twist, serving as a stress reliever and a tongue-in-cheek counter to our optimization-obsessed culture—sometimes you just need to start the day with a scream. Additionally, each token’s image and features are dynamic, updating daily to reflect the token’s qualified, disqualified, or winning status.

Abstraction
Web3 UX is known to be difficult to navigate for new users. To address this, Morning Routine is designed to be completely playable through Frames in Warpcast or through the website, abstracting away much of the underlying complexity.

Engagement
Morning routines are a universal concept. The Warpcast channel, /morning-routine, has amassed nearly 300 participants GM'ing each other and sharing routines. Pinned instructions and Frames for playing the game are also available in the channel, making it easy to follow and participate.

Transparency
All of the core game logic is contained in a Solidity smart contract, tested, stored on the blockchain, and verified via Basescan. This ensures that the game mechanics are clear, fair, and tamper-proof.

Morning Routine leverages blockchain technology, social interaction, and financial incentive to create an engaging game and supportive community around the idea of consistent daily habits. The accessibility provided through Frames in Warpcast ensures inclusivity, allowing anyone to participate and enjoy the game. By combining these elements, Morning Routine transforms the often solitary act of maintaining a daily routine into a shared, enjoyable experience.

Challenges I ran into

While developing Morning Routine, I encountered several challenges. Two hurdles were related to testing the game's phased nature and the other was related to integrating Frames in Warpcast for better accessibility.

Testing
Writing tests for Morning Routine was challenging due to the game's phased nature, involving minting followed by daily check-ins. Handling time progression in the tests made them complex and tedious to write. However, writing these tests proved invaluable as they caught several bugs related to tracking qualified tokens. One critical realization was the need to handle scenarios with more than one winner. If multiple tokens were qualified one day and none checked in the next, the proceeds had to be split evenly among the winners. This required a couple of storage updates and additional logic to track previously qualified tokens. By addressing these challenges, the tests ensured robust and reliable game mechanics.

Integrating Frames
Initially, Morning Routine was designed to be played exclusively on the website. However, after seeing some compelling Frame examples, I wanted to make the game more accessible and playable entirely through Frames, as well as the website. To integrate Frames into my Next.js project, I leveraged Coinbase's OnchainKit library. Their documentation and example repository were immensely helpful. Additionally, I aimed to create dynamic Frames showing up-to-date game stats and token information. Although I couldn't find an exact example, a thread in the Warpcast Frames channel mentioned using Satori and Sharp. After reviewing their documentation, I successfully integrated these packages to create dynamic Frames. This enhancement significantly improved the game's accessibility and user experience.

These challenges highlighted the importance of thorough testing and leveraging community resources to overcome technical hurdles. By addressing these issues, I was able to build a better, more robust, and accessible game.

Tracks Applied (2)

OnchainKit

To make Morning Routine entirely playable through Frames in Warpcast, I leveraged Coinbase's OnchainKit. This allowed me...Read More

Gaming Track

Morning Routine is an onchain game designed to be both fun and accessible. Frame integration enhances the user experienc...Read More

GAMING with thirdweb

Cheer Project

Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.

Discussion