{"id":49151070,"url":"https://github.com/darula-hpp/uigen","last_synced_at":"2026-04-25T09:06:49.855Z","repository":{"id":351200506,"uuid":"1209809178","full_name":"darula-hpp/uigen","owner":"darula-hpp","description":"UIGen is a smart OpenAPI-to-UI compiler that generates beautiful, interactive React (and soon Svelte/Vue) frontends at runtime directly from your OpenAPI specification.","archived":false,"fork":false,"pushed_at":"2026-04-22T04:56:17.000Z","size":12626,"stargazers_count":47,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-22T06:40:14.842Z","etag":null,"topics":["django","fastapi","low-code","openapi3","reactjs","ruby-on-rails","spring-boot"],"latest_commit_sha":null,"homepage":"https://uigen-docs.vercel.app/","language":"TypeScript","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/darula-hpp.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-13T19:59:03.000Z","updated_at":"2026-04-22T04:44:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/darula-hpp/uigen","commit_stats":null,"previous_names":["darula-hpp/uigen"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/darula-hpp/uigen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darula-hpp%2Fuigen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darula-hpp%2Fuigen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darula-hpp%2Fuigen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darula-hpp%2Fuigen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darula-hpp","download_url":"https://codeload.github.com/darula-hpp/uigen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darula-hpp%2Fuigen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32256248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T04:23:17.126Z","status":"ssl_error","status_checked_at":"2026-04-25T04:21:53.360Z","response_time":59,"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":["django","fastapi","low-code","openapi3","reactjs","ruby-on-rails","spring-boot"],"created_at":"2026-04-22T06:06:51.721Z","updated_at":"2026-04-25T09:06:49.850Z","avatar_url":"https://github.com/darula-hpp.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# UIGen\n\n\u003e Point it at an OpenAPI spec. Get a fully functional frontend. Zero boilerplate.\n\n![UIGen Demo](https://github.com/darula-hpp/uigen/raw/main/examples/output.gif)\n\n**⚠️ Disclaimer:** Project not ready for production yet, but we're fast approaching v1.\n\n---\n\n## Getting Started\n\n### Quick Start (npx)\n\n```bash\n# Configure your spec (optional but helpful - Includes theme config)\nnpx @uigen-dev/cli config openapi.yaml\n\n# Serve your UI\nnpx @uigen-dev/cli serve openapi.yaml\n```\n\nVisit `http://localhost:4400` to see your app.\n\n### Try the Example App\n\n```bash\ngit clone https://github.com/darula-hpp/uigen\ncd examples/apps/fastapi/meeting-minutes\n\n# Setup backend (FastAPI + PostgreSQL)\ndocker compose up -d\ndocker compose exec app alembic upgrade head\n\n# Test UIGen with the example\ncd ../../../  # Back to repo root\npnpm install \u0026\u0026 pnpm build\npnpm run test:config\npnpm run test:serve\n```\n\n---\n\n## What Just Happened?\n\nUIGen transforms your OpenAPI spec into a complete, interactive frontend in seconds. Here's the flow:\n\n```\nCLI Command\n    |\n    v\n+----------------+     +----------------+     +----------+     +------+     +--------+     +--------------+\n| API Document   |----\u003e| Reconciler     |----\u003e| Adapter  |----\u003e|  IR  |----\u003e| Engine |----\u003e|  React SPA   |\n| (YAML/JSON)    |     | (Config Merge) |     | (Parser) |     |      |     |        |     | (served)     |\n+----------------+     +----------------+     +----------+     +------+     +--------+     +--------------+\n       |                      ^                                                                    |\n       |                      |                                                          +---------+\n       |               +----------------+                                                v\n       |               | Config File    |                                          +-----------+\n       |               | (.uigen/       |                                          | API Proxy |---\u003e Real API\n       |               |  config.yaml)  |                                          +-----------+\n       |               +----------------+\n       |\n       +---\u003e (Source spec unchanged on disk)\n```\n\nUIGen reconciles your config with the spec, then parses it into a framework-agnostic Intermediate Representation containing:\n- Resources and their relationships\n- Operations (CRUD + custom actions)\n- Schemas with validation rules\n- Authentication flows\n- Pagination strategies\n\nThe React renderer reads this IR and generates:\n- **Table views** with sorting, filtering, pagination\n- **Create \u0026 edit forms** with validation\n- **Detail views** with related resource links\n- **Search interfaces** from query parameters\n- **Authentication flows** (Bearer, API Key, HTTP Basic, credential-based login)\n- **Multi-step wizards** for complex forms\n- **Custom action buttons** for non-CRUD endpoints\n- **Dashboard** with resource overview\n- **Dark/light theme** toggle\n\nBecause the IR is framework-agnostic, you can swap renderers. The same spec works with `@uigen-dev/react`, `@uigen-dev/svelte`, or `@uigen-dev/vue` (coming soon).\n\n---\n\n## Read More\n\n- **[Full Documentation](https://uigen-docs.vercel.app)** - Complete guides, API reference, and examples\n- **[Architecture](./ARCHITECTURE.md)** - Deep dive into the IR, adapters, and rendering pipeline\n\n---\n\n## Current Priorities\n- Better handling of resources and their relationships\n- Layout Config\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarula-hpp%2Fuigen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarula-hpp%2Fuigen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarula-hpp%2Fuigen/lists"}