{"id":21242208,"url":"https://github.com/bitspittle/temp-render-test","last_synced_at":"2025-07-15T01:09:07.177Z","repository":{"id":181320945,"uuid":"666582612","full_name":"bitspittle/temp-render-test","owner":"bitspittle","description":null,"archived":false,"fork":false,"pushed_at":"2023-07-15T05:11:42.000Z","size":78,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T23:06:29.112Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitspittle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-07-14T22:51:22.000Z","updated_at":"2023-07-15T19:36:11.000Z","dependencies_parsed_at":"2025-06-22T23:06:30.469Z","dependency_job_id":"190e0da7-7762-4e7c-880c-26351ed8710c","html_url":"https://github.com/bitspittle/temp-render-test","commit_stats":null,"previous_names":["bitspittle/temp-render-test"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bitspittle/temp-render-test","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Ftemp-render-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Ftemp-render-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Ftemp-render-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Ftemp-render-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitspittle","download_url":"https://codeload.github.com/bitspittle/temp-render-test/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitspittle%2Ftemp-render-test/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265383448,"owners_count":23756538,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-21T00:58:42.721Z","updated_at":"2025-07-15T01:09:07.158Z","avatar_url":"https://github.com/bitspittle.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is an example of how to break up a Kobweb project into multiple modules.\n\nAs a concrete use-case, we create a chat server which requires logging in with an account to use it.\n\n## Motivation\n\nTwo common reasons for splitting up a project are:\n\n### Project organization\n\nIt can be easier to break major features up into their own separate module areas, to reduce the amount of code you have\nto worry about at one time, or (if on a team) to give people different areas that they own.\n\n### Publishing a library\n\nYou can create reusable libraries that you can publish to Maven. While this may not be useful for pages and API routes,\nit can be a great way to share custom widgets.\n\n## Structure\n\nIn this project, the `site` module represents the entire application. It is in this project that you'll trigger\n`kobweb run`.\n\nThen, there are three library modules: `core` (a bunch of general components, shared by multiple modules), `auth`\n(which provides pages and server support for creating an account and logging in), and `chat` (which handles posting and\nfetching messages).\n\nWhile you can put components, pages, and API routes in both library *and* application modules, it is recommended that if\nyou do decide to split up your project, you should strive to keep the application module relatively thin. The main thing\nthat should go in there is the `@App` composable (if you declare one) and maybe the site root (i.e. `pages/Index.kt`).\nThe rest, it should delegate to the other modules.\n\n### Compared to a monolith project\n\nSome things to notice about this multimodule app (vs. how it differs from a Kobweb monolith project):\n\n* The `core`, `auth`, and `chat` modules apply the `com.varabyte.kobweb.library` plugin in their build script, while\n  the `site` module applies the `com.varabyte.kobweb.application` plugin.\n\n* The `.kobweb/conf.yaml` file lives under `site` and not at the root level.\n  * Note that its dev script path points into the *root* build folder, not the *site* build folder.\n  * There is a `.gitignore` file in the `site` subfolder in addition to the one at the root level. This is because it is\n    responsible for ignoring the `.kobweb` folder, which moved into the `site` folder. \n\n`core`, `auth`, and `chat` each get processed by the Kobweb library plugin at build time, generating some intermediate\nartifacts that the Kobweb application plugin looks for and consumes.\n\nThe application plugin is responsible for bundling everything together into a final, cohesive, single site.\n\n## Run\n\nTo run the demo:\n\n```bash\ncd site\nkobweb run\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitspittle%2Ftemp-render-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitspittle%2Ftemp-render-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitspittle%2Ftemp-render-test/lists"}