Unlock Your Team's Potential with Purpose Pool – Collaboration, AI, and Focus!
Discover how Purpose Pool helps you align your personal goals and team efforts with ease! This innovative platform offers a gamified approach to task management, integrating timers, real-time collaboration, and AI-powered features. Whether you're embedding documents for instant vector search or using our token-based system to organize complex ideas, Purpose Pool ensures you stay focused and aligned.
Watch as we showcase its seamless interface, live updates across teams, and groundbreaking search capabilities. Ready to transform how you work? Try Purpose Pool today, and let us know how we can improve your experience!
Inspiration
The origin of the name came from a system we plan to build called Attention Lanes. Which is a interface that allows you to focus and get into the zone with a idea or task.
Purpose pool was inspired by a idea that most businesses provide value through a list of some type. The display and interaction with this data is becoming more important then the availability. People are overwhelmed by data and that data is often not making our everyday choices easier. Purpose pool is designed to deliver
What it does
Gamified list creation, our “pool” is a feature rich, real-time interface designed to focus. Due to high alignment with convex, we wanted to leverage real time collaboration to invoke the psychological principles of motivation, and the intrinsic motivators of curiosity, mastery, and flow to maximize the collaborative listmaking, voting, and realtime team-alignment experiences.
How we built it
6-7 days a week 60-90hour weeks.
Tech Stack: https://stackshare.io/ludum-vitae/ludum-vitae-core
Convex DnD-Kit Clerk Shadcn Shadcn-chat
Convex related inspired and code used: Convex 1.16 (v.record()) Convex Ents Convex Helpers Convex Tests Convex Cronvex
Examples used https://github.com/get-convex/convex-presence https://github.com/get-convex/fullstack-convex/ https://github.com/a16z-infra/ai-town https://github.com/ldanilek/endtoend https://github.com/get-convex/convex-saas https://github.com/get-convex/ents-saas-starter https://github.com/get-convex/llama-farm-chat https://github.com/ianmacartney/mid-embeddings https://github.com/jamwt/cached-dmv https://github.com/JamesCowling/cronvex https://github.com/get-convex/uploadstuff/
Presence On the front-end: Users are able to join and leave multiple rooms and the system will display that user's presence. Users are able to switch between rooms using an interface that updates a context provider under the hood.
Presence on the convex backend: Our system uses a custom context. Once the JWT token is confirmed valid with clerk, then our own custom implementation is leveraged, reducing database bandwidth and unnecessary traffic updating session information.
The client-to-system heart beats have a optimized counter that uses a search query to find stale presence in other rooms on a per session basis. The heart beat slows when users open a 2nd tab on the same browser. A 2nd presence is created if you have another browser window open.
Rate Limit: Our rate limiting system is modified to support Convex's new "Ents". Front end rateLimit data is passed via login-secured functions to avoid querying user context unnecessarily. The Presence system uses some of these functions as well.
Vector Search: We offer both comparing to stored embedding of your list and/or using a text search to compare meaning. Embedding results are kept private.
Stripe: Subscription through stripe processes using actions, however the full flow is not complete.
Query Cache: We leverage the convex query cache for both querying Stats and User presence details.
File Uploads: When you upload a file next to Add item, it takes the upload then creates a new block, schedules processing by openai and then updates the block with a description of the file.
Sessions: Session Wrappers for useQuery for the front end Ents grabs the sessionId sent in by the NextJs wrapper making it invisible to the database functions.
Challenges we ran into
We had to revamp the mono repo, due to typescript and other build issues and a few other issues that provided a big distraction for a week in the beginning.
Everything requires significant modification for our uses, not only so we can use ents but our design needs to allow for lots of flexibility.
Choosing to build towards our business needs and not just hackathon goals was challenging, we pick a more user-friendly and familiar interface over our complete re-think of a interface design.
Drag and Drop on Dnd-Kit is amazing well built but getting it to sync right with convex took more time then we would like to admit. A tree with sibling/parent relationships is not easy.
Learning the difference between well designed software and poorly designed software.
Accomplishments that we're proud of
We believe our hackathon entry will be the best example of what can be done with convex, showing off real time and acid transactions with our token system. We want to provide all users of our software access to their own transactions.
We want to use our app more than other software we have used for years and we built the UI, assembled stack, designed and implemented the specific schema for this tool in less than 30 days.
Tech usage: Custom live updating. Site wide presence with room switching* Event driven architecture. Integrated AI API (for summarizing uploaded files into draggable items)
What we learned
We should be less aggressive on the features and bring in more features we already had built. We used very little of the design of our existing code base. Our focus has been mostly on the interface as the biggest priority with feature implementation second.
What's next for LV
We are going to launch purpose pool to our audience and get feedback so they can grow their own communities around access to lists and all the data they can contain.
Next features:
Deploy to purposepool.com
Finishing our immediate rod-map.
Upgrading presence to allow for simultaneous sphere/org and room switching.
Finishing AI chat & with work stealing.
Adding the ability for stripe connect allowing each user to whitelabel/resell access to their lists.
Improving up multi-user mode and sphere invites.
More Item types including recurring, agentic, and more!
Original submission video: https://youtu.be/XohMNjWSAOw
Log in or sign up for Devpost to join the conversation.