Inspiration
As artists, we know how valuable constructive feedback can be when developing our skills. However, most social media platforms prioritize entertainment, popularity, and passive engagement rather than meaningful artistic discussion. We wanted to create a platform specifically for artists to share their work, discover other artists, and exchange thoughtful critiques; especially giving feedback to artists with less access to mentorship!
Our goal was to combine the visual discovery experience of Pinterest and TikTok with a community centered on artistic growth.
What it does
Curve is an art-sharing and critique platform that helps artists discover artwork, provide feedback, and improve their craft.
Users can create accounts, upload artwork, browse a personalized masonry-style feed, and leave critiques on other artists' work.
Rather than displaying artwork purely chronologically, Curve uses a bandit-based recommendation algorithm that learns from user engagement, particularly which types of artwork users choose to comment on. The algorithm balances recommending content aligned with users' interests with exploring new artistic mediums to encourage discovery and enjoyment.
Curve also integrates Google Gemini to generate AI-powered summaries of the feedback an artwork receives. Instead of reading through numerous comments individually, artists receive organized summaries highlighting strengths, areas for improvement, and actionable suggestions.
Together, these features help artists both give and receive meaningful feedback.
How we built it
We divided development into two main responsibilities: Hans developed the backend, while Angela developed the frontend.
Our technology stack included:
- Frontend: React 19, TypeScript, Vite, Tailwind CSS v4, React Router v7, and lucide-react.
- Backend: Node.js and Express 5.
- Database: PostgreSQL with Prisma 7.
- Authentication: JWT-based authentication with bcryptjs password hashing.
- Image hosting: Multer for image uploads and Cloudinary for storage.
- AI: Google Gemini API for structured critique summaries.
- Recommendations: A lightweight bandit-based algorithm that adapts artwork recommendations using user engagement data and an exploration-versus-exploitation strategy.
We used AI-assisted coding tools extensively to accelerate development, then applied our own technical knowledge to review, debug, restructure, and refine the generated code. This allowed us to build quickly while still making deliberate architectural and implementation decisions.
We integrated the frontend and backend through REST APIs, creating a complete system for authentication, artwork uploads, personalized discovery, comments, and AI-generated feedback.
Challenges we ran into
One of our biggest challenges was designing and integrating the artwork recommendation algorithm. Initially, we considered implementing a full reinforcement learning system, but quickly realized that it would be unnecessarily complex for our timeline and available interaction data.
We explored contextual bandits before simplifying the implementation around artwork mediums and engagement statistics. Figuring out how to incorporate online learning into an already largely completed backend, particularly how to track recommendations and update user preferences after comments, required considerable thought and restructuring.
On the frontend, one challenge involved displaying artwork in fullscreen mode. Initially, selecting an artwork caused the image to expand to the width of the screen while overflowing vertically, preventing users from viewing the entire piece. We had to refine the layout and image-sizing behavior to accommodate artwork with different aspect ratios.
More broadly, building and integrating a complete full-stack application under a 24-hour deadline required us to carefully balance functionality, technical ambition, and visual polish.
Accomplishments that we're proud of
We're particularly proud of Curve's user interface and personalized recommendation system.
Angela created a polished, visually engaging frontend that makes exploring artwork feel natural and enjoyable. We wanted the platform to feel like an actual social application rather than a collection of disconnected hackathon features.
We're also proud of implementing an adaptive recommendation system that goes beyond simply displaying the newest artwork. It learns from user interactions and uses those signals to personalize future recommendations while still encouraging exploration.
Most importantly, we're proud that we built a working, integrated full-stack application in just 24 hours. Authentication, image uploads, artwork feeds, comments, AI summaries, and content recommendations all come together to support a coherent user experience.
What we learned
This project gave us hands-on experience with several technologies and concepts that were new to us.
We learned how to integrate the Google Gemini API into a full-stack application and use structured JSON responses to turn unstructured feedback into useful information.
We also gained a much deeper understanding of contextual bandits, exploration versus exploitation, and online-learning recommendation systems. Translating these concepts from theory into an actual application helped us understand the practical challenges of collecting engagement signals, defining rewards, and updating recommendations.
Finally, we learned a great deal about collaborative software development. Working on separate parts of the application required us to coordinate API contracts, communicate design decisions, integrate independently developed features, and troubleshoot issues across the frontend and backend.
We also gained experience using AI-assisted development responsibly by critically reviewing and improving generated code rather than relying on it blindly.
What's next for Curve
We want to expand Curve from an artwork-sharing platform into a more connected and supportive artistic community.
Our next major feature is a friends and messaging system, allowing artists to follow one another, build relationships, and exchange feedback more directly.
We also plan to introduce AI-assisted comment moderation using vector embeddings and cosine similarity. By comparing comments with the artwork's context, we hope to identify irrelevant or off-topic feedback and encourage more constructive discussions. This would serve as an additional relevance signal rather than automatically treating every semantically different comment as inappropriate.
Longer term, we'd like to continue improving our recommendation system with richer signals about artistic interests, styles, and skill preferences.
Ultimately, we want Curve to become a place where artists aren't simply posting their work for attention, but are actively learning from and growing alongside one another.
Built With
- express.js
- gemini-api
- jsonwebtoken
- node.js
- postgresql
- prisma
- react
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.