Inspiration
Bilimano is an app inspired by a real problem - I moved to Spain and there are many expats here in the area where I live, but most of the services are only findable in Spanish. So each time I need something I ask in groups, trying to find recommendations. I wanted to create a space where everyone can add their service and the users can easily find what they need in their own language.
What it does
Bilimano is a local service market place where users can add and search services. The app supports the 4 main languages spoken in the area - English, Spanish, Russian and Arabic. Smart match powered by Gemini 3 API helps you clarify your search and uses embeddings and semantic search to find you the best service for you needs, no matter in what language it was added. When you want to contact a provider, the messages page is also translated in your language. The services and the chat are protected by a safeguard against offensive or misleading content.
How we built it
I started with a Streamlit app, as I wanted to build an MVP, but after I added all the functionality I was not satisfied by the outcome. Streamlit is easy to work with for prototypes, but it's making redesign a way more complicated. So I migrated to Reflex and build a cleaner and mobile optimised look. The app frontend is deployed on Firebase hosting and the backend lives on Google Cloud Run. Gemini 3 API is used to:
- Clarifying Questions: Automates follow-ups to narrow down search intent.
- Service Ranking: Matches and prioritizes providers based on user needs.
- Content Moderation: Scans listings and chats to ensure policy compliance.
- Smart Replies: Offers instant, context-aware response suggestions.
- Semantic Search: Uses embeddings to connect related concepts (e.g., "dog walking" → "pet sitting").
- i18n: Facilitates multilingual support and localized content adaptation.
Challenges we ran into
I knew that Streamlit redesign will not be easy, so I planned to rewrite the app from the beginning. However I planned to host it on a plain GCP container. Splitting the backend on Cloud Run and frontend on Cloud Storage for the Reflex app turned out to be unstable, so I had to use Firebase hosting. I already use Firestore to store the user and services data, and for the services vector embeddings, so this came along just fine. Another main challenge I had, was that Gemini 3 API free tier in my region is very limited, so I had to add a paid billing account to test.
Accomplishments that we're proud of
I am happy I managed a good looking app, that has all the initial functionality, that I've planned - user and services management, services listing and filtering, smart match and messages and all that in all the languages.
What we learned
I learned more about Reflex and Firestorage, even if I've used Firestorage and Firebase before. Got to exercise some knowledge on embeddings, semantic search and coding agents.
What's next for Bilimano
I am planning to continue building the app - add more languages, test and polish it, add bookings and calendar. Then I will share it with the local community, hope people will find it useful!
Built With
- firebase
- firestore
- gemini
- gemini-3-flash-preview
- google-cloud
- python)
- react
- reflex
Log in or sign up for Devpost to join the conversation.