A productive project developed for Alrayada Alarabiah using Kotlin JS
The project is built using Kobweb framework which is built on top of Compose for HTML
Compose for HTML is under active development and Kobweb is built on top of it, and it adds some extra features, like static rendering for improved SEO
Better live reload, markdown, the basics more similar to Compose Multiplatform
- Clone the repository and download IntelliJ IDEA or use your favorite IDE
- Make sure you have at least JDK 11, I recommend JDK 17 at the current time
- Download the Kobweb binary and follow the steps there
- Go to SectionsConstants.kt in
utils.constants
and please make sure theFORM_URL
constant in the objectAbout
is empty or replace it with yours - Open the project in the terminal or in the integrated terminal in IDE and cd to
site
folder - Run
kobweb run
in the command line
First navigate to the site module.
Run
kobweb export --layout static
in the command line and you will get the output in
site/.kobweb/site
To try it out, run kobweb run --layout static --env prod
or you can run it in development mode directly
kobweb run
- When navigate to the policy page in the menu and scroll to the very end, you will get error messages about the sections of previous page if the Animations is enabled, by
ObserveViewportEntered()
function, the error messages are in the log are NullPointerException, it doesn't cause any issues, but it shouldn't happen, when we navigate to different page, all the listeners and things registered should be disposed or paused automatically by the framework to save some memory. - Rtl direction is not supported yet, but it's not needed for now.
- When you open the localized page url and navigate to different url, then refresh it will revert the language to the default device language, but as I said 95% of the users of this landing page are english users, I will wait while kobweb is getting improved to the next level then I plan on improve the website to the next level, the multi-language support is still experimental
This project is licensed under the MIT License. Just remember to change assets that related to the branding or the naming in your fork.
- Thanks to Kobweb to make the core UI elements from Compose Multiplatform like Row, Column, Box, Modifier as well as other features
- Thanks to Jetbrains for Kotlin, IntelliJ IDEA Community Edition, and Compose for Web
- Thanks to the welcoming community
- Thanks to FontAwesome for crafting the Awesome Icons
- Thanks to Alrayada Alarabiah to actually use the website to provide the services, I often create toy projects and push them on GitHub with no use
- The base design is inspired by Tanbir Ahmed, thanks to his time