We were inspired to create Glyphy because we wanted a positive, low-pressure corner of the internet for creativity. We love emojis and thought it would be fun to use them as a daily spark for writing. Our goal was to build a simple app that encourages creativity over length.
Glyphy is a daily writing app that gives you six new emojis every day as a prompt. You write a short story inspired by them, but here's the twist: you have to submit your own story before you can unlock and read what everyone else in the community wrote for the day. This keeps everyone involved. We also built in a streak system with a little flame icon to motivate you to write every day and build a consistent habit.
We built the app with Flask and Python on the backend. We used SQLAlchemy to manage our user and story data in a SQLite database, with Flask-Login handling all the user accounts. For the daily prompt, we created a huge list of emojis in our code. To make sure everyone gets the same "random" emojis each day, we used the current date to seed the random number generator. This way, the selection is unique every day but consistent for all users. One of the big challenges was the displaying of the emojis. At first, we tried the python emoji library, but due to type conflicts, accessing and saving them proved difficult. In the end, we chose the temporary solution of the "EMOJI ARRAY V1" which is as ugly as it sounds.
The front end is made with standard HTML, CSS, and JavaScript, using AJAX to handle features like liking and editing stories in real-time so the page doesn't have to reload. We also used gemini-2.5-flash model to moderate for explicit content in the users' messages. Implementing AI was a new thing for many of us, so it took some time to figure out what that code was supposed to look like. We made sure to utilize safe password-storing practices with hashing and password validation.
One of the slowest parts was when we had to figure out the table interactions in our database. At one point we miscommunicated the primary keys of the user database, which caused some confusion, but this happened early enough where we were able to guarantee that strong communication was practiced later in the challenge.
We're really proud of how it turned out. We also love the little details, like the interactive streak flame on the streak page that reveals your count when you hover over it. Getting the real-time likes and story edits working smoothly with JavaScript was another big accomplishment that makes the app feel fast and modern.
This whole project was a fantastic learning experience in building a full-stack application from scratch. It taught us a lot about separating a project's logic on the backend from its interactive elements on the frontend. Looking ahead, we think Glyphy would be perfect as a mobile app. Our next big goal is to refactor the Flask backend into an API that could power both an iOS and Android app, allowing us to add features like push notifications to remind everyone about the daily prompt.
Log in or sign up for Devpost to join the conversation.