Inspiration
Slide Puzzle is a great game, but what if we made it possible to play the game with friends online?! This way you could compete and see who's better solving the puzzle! That's what SlabHouse is all about!
What it does
It's a simple system that combines a mobile app (built in Flutter) displaying the puzzles with a remote system that manages the leaderboard. Each time a puzzle is solved the result is sent to the server and registered. People can see how many puzzles each person solved and how fast they spent solving each one. Additionally, when solving a puzzle there is an ambient music playing in the background.
The goal was to make a relaxing yet competitive puzzle experience ;)
How we built it
It's a Flutter app that communicates with a remote datastore. On the web it's a Next.js app that displays the scores and allows to manage the user account.
Challenges we ran into
Flutter tooling is not yet perfect, but it significantly improved over time. There was a bit of configuration issues with properly setting the Android SDK, the installation of Java and even making the provided example repository work with the newest Flutter release.
Overall, it was relatively smooth, but there seems to be a bit of low-hanging fruits that if fixed, could greatly increase the developing experience, especially for new comers.
Accomplishments that we're proud of
I'm happy that the app supports multiple users (auth, account management) and that the scores are being recorded in a leaderboard.
There is a relaxing music in the background when playing.
The images for puzzles are automatically fetched from Unsplash via their API.
What we learned
- the Flutter ecosystem is improving fast
What's next for slabhouse
- adding an onboarding tutorial to the mobile app
- more sophisticated scoring system for the leaderboard
- improve the Unsplash integration so that users can selected puzzle images based on the selected mood
- better user management
Built With
- dart
- flutter
- nextjs
- typescript

Log in or sign up for Devpost to join the conversation.