{"id":43235407,"url":"https://github.com/aakarim/monorepo-example","last_synced_at":"2026-02-01T10:37:58.151Z","repository":{"id":57631241,"uuid":"409549337","full_name":"aakarim/monorepo-example","owner":"aakarim","description":"CNCF - based monorepo example. Like a framework for the containerised web.","archived":false,"fork":false,"pushed_at":"2021-09-30T20:31:37.000Z","size":8147,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-20T02:06:31.117Z","etag":null,"topics":["framework"],"latest_commit_sha":null,"homepage":"","language":"Starlark","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aakarim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-23T10:39:58.000Z","updated_at":"2022-12-01T09:02:40.000Z","dependencies_parsed_at":"2022-09-16T01:11:51.295Z","dependency_job_id":null,"html_url":"https://github.com/aakarim/monorepo-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aakarim/monorepo-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aakarim%2Fmonorepo-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aakarim%2Fmonorepo-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aakarim%2Fmonorepo-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aakarim%2Fmonorepo-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aakarim","download_url":"https://codeload.github.com/aakarim/monorepo-example/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aakarim%2Fmonorepo-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28976334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T09:57:52.632Z","status":"ssl_error","status_checked_at":"2026-02-01T09:57:49.143Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["framework"],"created_at":"2026-02-01T10:37:58.075Z","updated_at":"2026-02-01T10:37:58.144Z","avatar_url":"https://github.com/aakarim.png","language":"Starlark","readme":"# Monorepo template designed around small teams \u0026 developer productivity\nDesigned for those who want to use Cloud Native technology, without dedicated build \u0026 deployment teams (like myself). Designed to inspire future work @lix-it.\n\nUsing Bazel we can operate a micro-service-ish monorepo, and build, test, and deploy only what we need to work on right now.\n\n## Curent Tools\n### Build \u0026 Deploy\n- Bazel\n- Skaffold\n### Configuration\n- Cue\n### DevEx \u0026 Code Generation\n- iBazel\n- Gazelle\n- Buildifier\n### Orchestration\n- Kubernetes (Production)\n- Skaffold \u0026 Local Docker (Local)\n\n## Supported Service Languages/ Frontend Build systems\n- [x] Go\n    - [ ] Protobuf\n- [ ] NodeJS\n    - [ ] Protobuf\n- [ ] Python\n    - [ ] Protobuf\n- [ ] PHP\n    - [ ] Laravel \n    - [ ] Protobuf\n- [ ] Javascript\n    - [ ] Webpack\n    - [ ] Rollup\n\n## Goals\n- Be a playground for an idealised workspace.\n- Have a unified interface for performing common workflow tasks including, but not limited to:\n    - Code Generation.\n    - Local database migrations.\n    - Connecting to databases in different execution contexts, locally.\n- Maximise app configuration re-use through generation/compilation.\n- Play nice with VSCode. First party extensions like the Golang and Typescript should work as expected with no additional configuration.\n- Fast Feedback loop:\n    - Services should be brought up/torn down as required.\n    - It should run on my laptop.\n- Flexible enough to support common paradigms for frontend and backend development.\n- Production deploys should use the same tools \u0026 shared configuration as far as possible. \n    - K8s manifests should be generated from simple, user-editable files.\n- Easily share common code amongst different projects.\n- Supports MacOS, Windows (WSL) \u0026 Linux.\n- Follow the 12 factor app principles.\n- Play nice with existing frameworks. This is a selfish one, but I have a Laravel-based service that's too easy to use to throw away in favour of a full-Go app. Any build system should also play nicely with Laravel (and similar frameworks).\n\n## Non-goals\n- Support the 20% use case.\n- Be a proper template. This is a toy project and will probably need customisation to work properly. For instance, all the Go package paths will refer to this repo.\n- Make our own DSL or add so much custom scripting that it results the same effect. All tools should be used out-of-the-box as far as possible and if developers have to learn how to use Starlark \u0026 BUILD, then so be it.\n- Hide implementation complexity - Users *should* have to learn how each tool works, to the level of 1 day's experience.\n- Hotswapping configs. Restarting is fine for the moment.\n\n## Constraints\n- External tools should be used out-of-the-box, without extensive shell scripting.\n- Inheritance should be avoided, code generation used instead, where possible.\n\n# Concepts\n## Execution Contexts\nE.g. Dev, Prod, Staging. \n\nAn EC is the final compiled configuration that is ultimately loaded by a service. ","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faakarim%2Fmonorepo-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faakarim%2Fmonorepo-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faakarim%2Fmonorepo-example/lists"}