Skip to content

Repository files navigation

Hatcha

A social event planning app powered by GenUI for Flutter. Hosts plan through a conversational interview while GenUI generates themed invites, tailored components, and planning modules, all shaped by your event and its audience.

As guests share preferences, GenUI composes new modules, generates follow-up questions, and evolves the experience to match. Not a form you fill out and forget. A living experience that GenUI actively constructs around its hosts and guests. The menu lets you switch between users to explore both the host and guest sides of the same event.

Built by gskinner, Hatcha showcases how GenUI and A2A can power rich, AI-driven experiences on mobile and web.

Installation

If you're new to Flutter the first thing you'll need is to follow the setup instructions.

Once Flutter is set up, you can use the latest stable channel:

  • flutter channel stable
  • flutter upgrade

Install dependencies:

flutter pub get

Starting the agent

Hatcha requires a running agent server. Quick local setup:

cd agents
make install              # or: uv sync
cp .env.sample .env       # then set your GEMINI_API_KEY
uv run -m hatcha_agent --reload

The agent runs on http://localhost:10003 by default. See agents/README.md for configuration, deployment, and Cloud Run setup.

Running the app

Once the agent is running, launch the Flutter client. First, create your config file by copying the appropriate example in config/ and removing the .example suffix (see Configuration below).

# With a local agent (default http://localhost:10003)
flutter run --dart-define-from-file config/local.env.json

# With a deployed agent
flutter run --dart-define-from-file config/remote.env.json

Supported platforms: Android, iOS, Web.

Tip: VS Code launch profiles are preconfigured in .vscode/launch.json — use Hatcha: Debug or Hatcha (REMOTE AGENT): Debug.

Configuration

Copy the example config for your setup, rename to remove .example, and fill in the values:

See the example files for available variables and documentation. All variables are compile-time constants defined in lib/env.dart.

About gskinner

We build innovative digital experiences for smart clients, and we love how Flutter unleashes our creativity when building multi-platform apps. Don't hesitate to stop by our site to learn more about what we do, or check out other innovative Flutter projects we've built. We'd love to hear from you!

License

This application is released under the BSD 3-Clause license. You can use the code for any purpose, including commercial projects.

license

About

A showcase vignette for the Flutter GenUI ecosystem. Hatcha demonstrates how to build a party-planning agent with the Google ADK, utilizing the A2UI SDK to generate dynamic, context-aware interfaces in real-time.

Resources

Stars

64 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages