{"id":15694145,"url":"https://github.com/cestef/flow","last_synced_at":"2025-09-13T15:06:13.727Z","repository":{"id":188814514,"uuid":"679249540","full_name":"cestef/flow","owner":"cestef","description":"Real-time collaborative flowchart editor","archived":false,"fork":false,"pushed_at":"2024-01-05T14:47:12.000Z","size":7060,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-06T19:49:01.108Z","etag":null,"topics":["editor","nextjs","trpc","websocket"],"latest_commit_sha":null,"homepage":"https://flow.cstef.dev","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/cestef.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":"CODE_OF_CONDUCT.md","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":"2023-08-16T12:26:44.000Z","updated_at":"2025-02-23T19:18:32.000Z","dependencies_parsed_at":"2023-08-17T02:12:30.313Z","dependency_job_id":"d0803c78-af58-40c3-8163-bb58711c0e8d","html_url":"https://github.com/cestef/flow","commit_stats":null,"previous_names":["cestef/flow"],"tags_count":75,"template":false,"template_full_name":null,"purl":"pkg:github/cestef/flow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cestef%2Fflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cestef%2Fflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cestef%2Fflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cestef%2Fflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cestef","download_url":"https://codeload.github.com/cestef/flow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cestef%2Fflow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274981926,"owners_count":25385328,"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","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["editor","nextjs","trpc","websocket"],"created_at":"2024-10-03T18:53:17.077Z","updated_at":"2025-09-13T15:06:13.711Z","avatar_url":"https://github.com/cestef.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flow\n\n\n![GitHub license](https://img.shields.io/github/license/cestef/flow)\n![GitHub issues](https://img.shields.io/github/issues/cestef/flow)\n![Github Workflow Status](https://img.shields.io/github/actions/workflow/status/cestef/flow/ci.yml)\n![GitHub Repo stars](https://img.shields.io/github/stars/cestef/flow?style=social)\n\n\u003e **Warning** \n\u003e This project is still in heavy development and is not ready for production use, expect data loss and breaking changes\n\n\u003e **Note**\n\u003e This is a complete rewrite using [pluv.io](https://pluv.io) as the backend. The old version can be found [here](https://github.com/cestef/flow/tree/legacy)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"assets/banner_rounded.png\" width=\"auto\" height=\"250px\"\u003e\n\u003c/p\u003e\n\n**Collaborate with your teammates and get started on projects right away, in real-time.**\n\nFlow is a web application that allows you to create, edit and share flowcharts. It is completely \u003cu\u003efree and open-source\u003c/u\u003e. \n\nYou can use it to create flowcharts for your projects, plan your next vacation or even to create a mind map.\n\n**Live demo**: [flow.cstef.dev](https://flow.cstef.dev)\n\n## Running Locally\n\n### Prerequisites\n- [Node.js](https://nodejs.org/en/) (v18.0.0 or higher)\n- [pnpm](https://pnpm.io/) (v8.0.0 or higher)\n\n### Installing and Running\n\n1. Clone the repository\n```bash\ngit clone https://github.com/cestef/flow.git\ncd flow\n```\n\n2. Install dependencies\n```bash\npnpm install\n```\n\n3. Register a new OAuth app on [GitHub](https://github.com/settings/applications/new) and set the callback URL to `http://localhost:3000/api/auth/callback/github`\n\n4. Register a new OAuth app on [Discord](https://discord.com/developers/applications) and set the callback URL to `http://localhost:3000/api/auth/callback/discord`\n\n5. Create a `.env` file based on the [`.env.example`](.env.example) in the root directory or copy the following:\n```bash\n# Github\nGITHUB_ID=\"github-id\"\nGITHUB_SECRET=\"github-secret\"\n\n# Discord\nDISCORD_CLIENT_ID=\"discord-client-id\"\nDISCORD_CLIENT_SECRET=\"discord-client-secret\"\n\n# next-auth\nNEXTAUTH_URL=\"http://localhost:3000/api/auth\" \nNEXTAUTH_SECRET=\"smash-the-keyboard-here\"\n\n# Pluv\nPLUV_SECRET=\"smash-the-keyboard-again-here\"\nPLUV_WS_URL=\"ws://localhost:3001/api/pluv\"\nPLUV_AUTH_URL=\"http://localhost:3000/api/pluv/authorize\" # The URL that the frontend requests\nPLUV_INTERNAL_AUTH_URL=\"http://localhost:3001/api/pluv/authorize\" # The URL that the backend requests when the request is proxied via NextJS's API\n\n# Misc\nDATABASE_URL=\"postgresql://postgres:postgres@localhost:5432/flow\"\nAPP_URL=\"http://localhost:3000\"\n\n# Optional - only needed for Umami analytics\nUMAMI_WEBSITE_ID=\"get-this-from-umami\"\n```\n\n6. Start the development server\n```bash\npnpm dev\n```\n\nYou can now access the app at [localhost:3000](http://localhost:3000)\n\n## Production\n\n### Prerequisites\n- [Docker](https://www.docker.com/)\n\n### Installing and Running\n\nYou can use the provided [`docker-compose.yml`](docker-compose.yml) file to run the app in production mode. It will automatically start a PostgreSQL database, a Next.js server and a WebSocket server.\n\nAn image is automatically built and pushed to the [GitHub Container Registry](https://ghcr.io/cestef/flow) on every version tag.\n\nFollow [Running Locally](#running-locally) steps **1**, **3**, **4** and **5** to set up the OAuth apps and `.env` file.\n\nand run the following command to start the app\n\n```bash\ndocker-compose up\n```\n\u003e **Note**\n\u003e You can also start the app in detached mode with `-d`\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\n## Support\n\nIf you need help with anything related to the project, feel free to join the [Discord server](https://discord.gg/CYQwAW2Yuq) and ask in the [`#support`](https://discord.com/channels/1141658461403357184/1142511788307525732) channel.\n\n[![Discord](https://img.shields.io/discord/1141658461403357184?color=7289DA\u0026label=Discord\u0026logo=discord\u0026logoColor=white)](https://discord.gg/CYQwAW2Yuq)\n\n\n## License\n\nThis project is licensed under the [MIT License](https://choosealicense.com/licenses/mit/).\n\n## Acknowledgements\n\n- [`Next.js`](https://nextjs.org/) - [React](https://reactjs.org/) framework\n- [`tRPC`](https://trpc.io/) - End-to-end typesafe API client and server\n- [`Prisma`](https://prisma.dev) - Database ORM\n- [`next-auth`](https://next-auth.js.org/) - Authentication\n- [`react-flow`](https://reactflow.dev/) - React component for building node-based editors","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcestef%2Fflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcestef%2Fflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcestef%2Fflow/lists"}