I got married!
This september i got married, but this isn’t a post to talk about my wedding, but to share a digital wedding invitation i created to celebrate the event, you can check it out here: 3settembre.it
Created using Flutter
The digital invitation has been made using Flutter, version 2.10.x (i deployed the final version before Flutter 3 was released on stable branch).
You may be wondering why I used Flutter for such a project instead of a static site builder like Jekyll, 11ty or similar. Consider this was just an experiment, I wanted to build something lightweight for the web using Flutter and measure its performance. In my opinion, Flutter is still not the best choice (from a performance point of view) for web-only projects, the website is heavy and slow compared to other web-only oriented frameworks, but if you are a Flutter lover (like me )…go for it without hesitation!
P.S. if you want to get fancy, you can build the Android version just running flutter build apk
P.P.S. iOS artifact is easy to create too, it’s just the distribution that’s a pain in the ass :)
Deployment
The project uses Firebase tools for the management distribution, i made this choice because this was the quickest solution to go online (and if you don’t need a custom domain, it’s 100% free).
In order to use Firebase Hosting you only need to go on your Firebase Console, create a new project, and setup the web environment (ignore the configurations for iOS/Android platforms). After that, go back to your local project and bind your project to Firebase using Firebase CLI… That’s it!
Now everytime you want to deploy a new version you only need to run these 2 commands:
flutter build web
firebase deploy
Don’t you like the free Firebase domain and you want a custom name for your website?
If you want to stick to Google (like i did), go on Google Domain, search and buy a domain you like (I bought mine for something like 10€).
The last step is to connect your bought domain to your Firebase project: check the official Firebase guide for doing it. Remember you are not obliged to buy the domain on Google Domain in order to configure it with your Firebase project, you can use a different provider, the guide includes the configuration for the most famous ones.
Source code
If you want to take a look at the project, the source code is available on my github.
Keep in mind the project has been created in a single day, there are many improvements that could have been done if I had more time to dedicate (i18n, a proper MVVM implementation, assets management, etc…).
Feel free to clone the project (and improve it!) if you are planning to get married and want to create a digital invitation with minimum effort :)