Seed: our dynamic website template
Published on December 10, 2022
When we founded Code Bards in January 2021, we needed a website and we quickly put something together. It was just a bunch of HTML static files. When we launched Calendarium, we added our privacy policies and a newsletter to codebards.io. Suddenly, the original simple website was starting to be cumbersome to maintain. We had to track a lot of similar HTML files, most of which in English and French.
We investigated different solutions to make the website more content dynamic. We were looking to satisfy these needs:
- Support of English and French
- Ability to stay on the current page when switching from one language to another
- Support of static routes for custom static HTML pages such as the home page
- Support of dynamic routes to render content created in Markdown
- Support of redirecting old URLs
- Extensibility to allow storing data in whichever format we need
- Ease of deployment
- Good performance
We love to code, that’s what we do. We also have a custom in-house framework to build web applications. We decided to extract parts of our framework and create something new that we could share with the world: Seed was born.
Seed is not a framework to create web applications such as Rails, Django or WordPress. It’s more of a template that you can use as a starting point to build a custom website. The Dropwizard framework constitute the foundation of the template which includes everything you need to create dynamic websites. We also included flexmark-java to convert Markdown content stored in the database, ready for being rendered in an HTML view. Gradle was chosen to manage dependencies and we included custom tasks to kickstart development. The template includes an initial database migration that acts as a sample which you can use as a starting point for your database structure. A few routes are configured out of the box:
- The home page
- An about page
- A dynamic section for posts
- A dynamic section for policies
Once built, the app is contained in a single jar (excluding the config file and the database) and can be easily deployed. We included a systemd service as well.
We’re super happy with the result and we now love maintaining our website. Maybe you too will find a use case for Seed. If you decide to try it, don’t hesitate to collaborate with us!