DEV Community

Cover image for Announcing Genkit for Python and Go in Firebase: Web Architecture & Implementation Guide
Alex Patterson for CodingCatDev

Posted on Originally published at codingcat.dev

Announcing Genkit for Python and Go in Firebase: Web Architecture & Implementation Guide

Original: https://codingcat.dev/post/firebase-2025-04-genkit-python-go

**Announcing Genkit for Python and Go **marks an important milestone for full-stack web and AI engineers building on Firebase and Google Cloud. Following the official announcement by Chris Gill, Peter Friese on the Firebase Blog (2025-04-09), this hands-on CodingCat.dev implementation guide breaks down how to adopt these capabilities in modern TypeScript, Next.js, SvelteKit, React, and Angular applications. Building intelligent features into your apps can be complex. Testing models, building prompts, and debugging your solution are all real challenges when building apps powered by large language models. We built Genkit to help you with these challenges. Genkit is an open-source framework with built-in tooling and observab

Why Announcing Genkit for Python and Go Matters for Full-Stack Web Developers

When evaluating every new Firebase release for our production web apps and Google Developer Expert (GDE) architecture reviews, the first question is always how it improves developer velocity, runtime security, and end-user latency in the browser and on the server. Building intelligent features into your apps can be complex. Testing models, building prompts, and debugging your solution are all real challenges when building apps powered by large language models.

We built Genkit to help you with these challenges. Genkit is an open-source framework with built-in tooling and observability. Together, these capabilities provide both a unified API to build your app using a variety of AI models from Google, OpenAI, Anthropic, and open models through Ollama, etc. While you’re building the app, you’ll also get the tooling needed to help you iterate quickly on your solution and debug common problems, as well as the observability you need to monitor your app in production once you deploy to Google Cloud or Firebase.

Earlier this year, we announced our stable release of Genkit for Node.js, and today we’re thrilled to announce the expansion of Genkit’s language support with Genkit for Python (Alpha) and Go (Beta).

These new SDKs bring Genkit’s powerful capabilities to even more developer ecosystems:

  • Genkit for Python (Alpha) is ideal for experimentation and early development. The API may evolve rapidly as we incorporate your feedback, but all essential capabilities are available to start building today.
  • Genkit for Go (Beta) has a rich feature set, and increased reliability as it approaches production readiness.

Whether you’re using Node.js, Python, or Go, you can now leverage Genkit’s consistent tools and concepts to build sophisticated AI-powered features with robust primitives, integrated tooling, and an extensible plugin system that simplifies prototyping, building, and deploying AI workflows.

We’re also excited about partners that build plug-ins for Genkit such as Pinecone, Astra DB, Neo4j, AuthO, and others. This growing ecosystem of plugins significantly expands Genkit’s capabilities, letting you to seamlessly integrate a wide array of specialized tools and services into their AI-powered applications.

**Note: **Both SDKs are still in versions <1.0.0 and may have breaking changes without major version increments as we refine the APIs based on your feedback.

Genkit for Python (Alpha)

If you’re building with Python, Genkit has intuitive and concise syntax for working with AI capabilities. The Python SDK offers a clean, asynchronous API with strong typing support through Pydantic integration.

Python’s data class capabilities, enhanced by Pydantic for schema definition, shine in this Genkit example for structured output. Notice how the RpgCharacter class clearly defines the expected format, ensuring the structured_character_flow consistently returns AI-generated data in this predictable structure.

from
from
from

ai 
    plugins
    model
)

class
    name: 
    backstory: 
    abilities: list[

@
async
    """
    result 
        prompt
        output_schema
    )
    return
Enter fullscreen mode Exit fullscreen mode

Genkit is also designed with intuitive and concise syntax for defining tools, as illustrated in this example. Leveraging decorators and Pydantic for data modeling, creating a tool like convert_currency and integrating it into an asynchronous flow becomes straightforward.

# Imports and initialization omitted for brevity

class
    amount: 

@
async
    """
    print
    return

@
async
    """
    response 
        prompt
        tools
    )
    return
Enter fullscreen mode Exit fullscreen mode
  • Google GenAI: Access Google’s Gemini, Imagen, embedding models from Google AI Studio or Google Cloud Vertex AI.
  • Ollama: Run open models like Gemma, Llama, and Mistral locally.
  • Flask Integration: Easily serve your Genkit flows via a Flask web server.
  • Firestore: Ground your generations with data retrieved using Firestore vector search.

Genkit for Go (Beta)

If you’re building with Go, Genkit offers a robust and explicit API with strong type safety, making it suitable for building scalable applications approaching production readiness.

This Go snippet illustrates Genkit’s approach to guaranteeing structured output by explicitly defining a RpgCharacter struct and using ai.WithOutputType. Observe how the characterPrompt is configured with the desired output type, ensuring the structuredCharacterFlow reliably produces data conforming to the specified schema.

package

import
    "
    "
    "
    "
    "
    "
    "
)

type
    Name      
    Backstory 
    Abilities []
}

func
    ctx 
    g, err 
        genkit.
        genkit.
    )
    if
        log.
    }

    characterPrompt, _ 
        ai.
        ai.
        ai.
    )

    genkit.
        func
            resp, err 
            if
                return
            }

            var
            if
                return
            }
            return
        },
    )

    mux 
    for
        mux.
    }
    log.
}
Enter fullscreen mode Exit fullscreen mode

Run the Go app and call your flow using:

curl -X POST localhost:8080/structuredCharacterFlow \
-H "Content-Type: application/json" \
-d '{"data": "Elara"}'
Enter fullscreen mode Exit fullscreen mode

Genkit offers a robust and explicit way to define and integrate custom tools into your AI workflows, as shown below. This example clearly demonstrates the registration of the convertCurrencyTool and its use within the convertCurrencyFlow, emphasizing Go’s type safety and suitability for building scalable applications.

// Imports omitted for brevity

func
    ctx 
    g, err 
    if
        log.
    }

    convertCurrencyTool 
        "
        func
            log.
            return
        },
    )

    flow 
        func
            return
                ai.
                ai.
                ai.
            )
        },
    )

    mux 
    mux.
    log.
}
Enter fullscreen mode Exit fullscreen mode
curl -X POST localhost:8080/convertCurrencyFlow \
-H "Content-Type: application/json" \
-d '{"data": 190.00}'
Enter fullscreen mode Exit fullscreen mode

Developer tooling for rapid iteration

Building AI applications involves unique challenges. Genkit provides dedicated tooling, consistent across Python, Go, and Node.js, to accelerate testing and development.

Our CLI and intuitive browser-based **Developer UI **help you:

  • Experiment Faster: Interactively run and iterate on your flows, prompts, and tools in dedicated playgrounds within the UI
  • Debug Efficiently: Visualize detailed execution traces, inspect inputs/outputs (including structured data), view logs, and understand exactly how your flows are executing
  • Evaluate Confidently: Test your AI workflows against predefined datasets and analyze scored metrics to ensure quality and reliability

Launch the Developer UI by running your app like so:

  • Go: genkit start, go run main.go
  • Python: genkit start, python main.py

Get started

Ready to build your next AI-powered application? Explore our comprehensive documentation and resources:

What’s next?

We are committed to continuously evolving and improving Genkit across all supported languages. We are actively working towards bringing Genkit for Python and Go to feature parity with Genkit for Node.js, as well as embracing language-specific benefits and integration.

Got questions or feedback? Join us on our Discord server, or Stack Overflow. For feature requests and bug reports, hit us up on the GitHub issue tracker.

Join our community, share your feedback, and help shape the future of Genkit! Whether you’re developing in Python or Go, now is the perfect time to explore the possibilities of building intelligent, agentive applications with Genkit.

Happy coding, and we look forward to seeing what you create!

Production Web Architecture & Security Checklist

Whether you are deploying on Firebase App Hosting, Cloudflare Workers, or Vercel, shipping AI features to production requires defense-in-depth across three layers:

  • **Enforce Firebase App Check & Attestation: **Protect your web endpoints, Cloud Functions, Data Connect GraphQL resolvers, and Firebase AI Logic calls against unauthorized replay or billing abuse using Firebase App Check with reCAPTCHA Enterprise.
  • **Validate Locally with the Firebase Emulator Suite: **Run deterministic integration tests against local Firestore, Auth, Functions, and Data Connect PostgreSQL emulators before promoting schema or rule changes to production.
  • **Keep Server & Client Boundaries Type-Safe: **Use the modular Firebase Web SDK and generated TypeScript bindings so SSR frameworks like Next.js, SvelteKit, and Angular serialize state cleanly without hydration flickers.

Watch Our Related Firebase Video Tutorial on YouTube

Want to see how we architect and debug Firebase web applications live? Watch our related CodingCat.dev session Firebase SQL with Data Connect below, and make sure to Subscribe to CodingCat.dev on YouTube for weekly full-stack web and AI deep dives:

Resources, Official Docs & Related CodingCat.dev Guides

Frequently Asked Questions (FAQ)

What are the key capabilities introduced in Announcing Genkit for Python and Go?

Announcing Genkit for Python and Go (announced 2025-04-09) enhances the Firebase platform for Firebase, Google Cloud, Web Dev, AI, TypeScript workloads. Building intelligent features into your apps can be complex. Testing models, building prompts, and debugging your solution are all real challenges when building apps powered by large language models. Developers can review the official release notes on the Firebase Blog alongside the implementation patterns in this guide.

How do web developers use Announcing Genkit for Python and Go with Next.js, SvelteKit, React, or Angular?

Web developers can integrate these features using the modular Firebase JavaScript/TypeScript SDK, Firebase Data Connect web bindings, and Firebase App Hosting. Always pair client-side SDK initialization with Firebase App Check and strict Security Rules, and test locally with the Firebase Local Emulator Suite before deploying.

Where can I watch video tutorials on Firebase Web and AI development?

You can watch our hands-on Firebase video walkthroughs on the CodingCat.dev YouTube Channel, including Firebase SQL with Data Connect, and browse our complete Firebase tutorial archive on CodingCat.dev.

Top comments (0)