{"id":25638513,"url":"https://github.com/marfusios/micro-frontend-gateway","last_synced_at":"2025-04-15T00:22:11.734Z","repository":{"id":52058025,"uuid":"165678417","full_name":"Marfusios/micro-frontend-gateway","owner":"Marfusios","description":"🌐 Micro Frontends PoC in Angular - GATEWAY","archived":false,"fork":false,"pushed_at":"2023-04-04T17:07:45.000Z","size":3473,"stargazers_count":26,"open_issues_count":2,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-28T12:21:09.668Z","etag":null,"topics":["angular","demo","micro-frontends","microfrontends","microservices"],"latest_commit_sha":null,"homepage":"http://marfusios.github.io/micro-frontend-gateway/","language":"TypeScript","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/Marfusios.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-14T14:46:41.000Z","updated_at":"2023-07-13T11:20:33.000Z","dependencies_parsed_at":"2025-02-23T02:31:46.086Z","dependency_job_id":"c9cbc244-a019-4efa-a5f9-2bca9e155e3f","html_url":"https://github.com/Marfusios/micro-frontend-gateway","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marfusios%2Fmicro-frontend-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marfusios%2Fmicro-frontend-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marfusios%2Fmicro-frontend-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Marfusios%2Fmicro-frontend-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Marfusios","download_url":"https://codeload.github.com/Marfusios/micro-frontend-gateway/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248981641,"owners_count":21193229,"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":["angular","demo","micro-frontends","microfrontends","microservices"],"created_at":"2025-02-23T02:31:42.120Z","updated_at":"2025-04-15T00:22:11.704Z","avatar_url":"https://github.com/Marfusios.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![logo](logo.png)\n# GATEWAY [![Build Status](https://travis-ci.com/Marfusios/micro-frontend-gateway.svg?branch=master)](https://travis-ci.com/Marfusios/micro-frontend-gateway) [![demo link](https://img.shields.io/badge/demo-link-blue.svg)](http://mkotas.cz/micro-frontend-gateway)\n\nThis is Micro Frontends proof of concept. \n\nTo cover these **requirements**: \n* separate frontend per every microservice (micro frontend AKA ‘MF’)\n* MF independently deployable, has to be dynamically loaded in runtime (not statically built)\n    * via canary deployment we want to load ALPHA microservice in version 1.0, but BETA microservice in version 1.2\n    * other canary deployment wants to load ALPHA microservice in version 2.0, but BETA microservice in version 1.0\n* frontend source codes as part of the backend git repository (to be versioned together)\n* preserve look and feel of SPA application\n    * like desktop application\n    * instant switching between modules\n    * only one full reload\n\n### Architecture\n\n![separation](mf_separation.png)\n\n### Implementation\n\nCurrent implementation is based on [Angular](https://angular.io/) and [Angular Package Format](https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/preview) (via library [ng-packagr](https://github.com/ng-packagr/ng-packagr)).\n\nMicro frontends can be found here: \n* ALPHA [github.com/marfusios/micro-frontend-alpha](https://github.com/Marfusios/micro-frontend-alpha)\n* BETA [github.com/marfusios/micro-frontend-beta](https://github.com/Marfusios/micro-frontend-beta)\n\nGateway deployed at: [mkotas.cz/micro-frontend-gateway](http://mkotas.cz/micro-frontend-gateway)\n\n### Usage\n\n* local development\n    * `npm start`\n    * modify urls in 'app-routing.module.ts'\n* remote deployment\n    * `npm build-deploy`\n    * copy content of 'deployment' directory into web server\n\n### Resources\n\n* [Micro Frontends idea](https://micro-frontends.org/)\n* [Lazy Loading Angular modules from a remote server](https://www.all-loops-considered.org/2018/07/07/angular-remote-lazy-loading/)\n* [Creating a Library with Angular CLI](https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarfusios%2Fmicro-frontend-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarfusios%2Fmicro-frontend-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarfusios%2Fmicro-frontend-gateway/lists"}