Skip to content

Repository files navigation

Flow — AI-Native Go + React Modular Monolith Framework

You describe it. AI builds it. You ship.

Go React TypeScript Tailwind CSS License

Go backend + React/TypeScript frontend in a modular monolith — with built-in AI agents, self-registering modules, SSR, and in-memory database.


Quick Start

git clone --recurse-submodules <repo-url> && cd flow
make init && make run
open http://localhost:3000

Prerequisites: Go 1.24+, Node.js 22+, Make. Already cloned? Run git submodule update --init --recursive.


Create a Module

make scaffold name=blog ssr=--ssr

Generates colocated modules/blog/ — backend (Go), frontend (React/TS), tests, templates. Register in modules/register.go, then make run. Live at /blog.


Architecture

HTTP Request → Handler → Service → Repository → In-Memory Store

Modules self-register via init(). AI agents handle the dev pipeline:

User Request → @orchestrator → @analyst → @implementer → @reviewer → Done
Agent Role
@orchestrator Task queue, dispatch
@analyst Requirements → spec
@implementer Go backend / React frontend
@reviewer Architecture review

Shared Config

.copilot/ submodule (gatralaya/copilot) — single source of truth for agents, skills, prompts. See .copilot/README.md.

Location Purpose
.copilot/ Shared config (agents, skills, instructions)
.github/ Repo-specific (workflows, tasks, specs)

Commands

Command Description
make init Initialize core from templates
make scaffold name=<name> Create new module
make run Build + start server
make test Go tests + Vitest
make lint golangci-lint + ESLint
make clean Remove generated files
make sync Push .copilot/ to upstream
make sync-pull Pull latest .copilot/

Configuration

Variable Default Description
PORT 3000 Server port
HOST 0.0.0.0 Server host

Access: AccessPublic, AccessPrivate (Bearer), AccessSameOrigin. Rate limiting per-route.


Tech Stack

Go 1.24 · React 18 · TypeScript 5 · Tailwind CSS v4 · ESBuild · Vitest · ULID


Why Flow?

Problem Solution
Scattered files One folder per feature — colocated
Manual routes Self-registration via init()
Inconsistent style Skills enforce conventions
Generic AI Tool-locked agents with roles
External DB In-memory store with TTL
SSR issues Skeleton HTML fallback

Docs

Document Description
Architecture Structure & conventions
Guardrails Security rules
Contributing How to contribute
Changelog Version history

MIT License — see LICENSE

Built with ❤️ by ynwd

About

AI-native Go + React modular monolith framework for rapid development with AI agents

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages