Data Annotation Course Practical Lab
Introduction Practical Lab Comparing Development Environments
Welcome to the practical lab session for our Data Annotation course. In this lab, we will explore and compare modern development environments, focusing on Firebase Studio within the Google Cloud Platform (GCP) ecosystem, and contrasting it with alternatives like Visual Studio Code (VS Code) paired with GitHub Copilot, and the AI-native editor Cursor.
TL;DR. We’re probably going to use GitButler or our own IDE built on Tauri.
After all, VScode easily beats a remote service, especially a janky, half-baked product like Firebase Studio for any use case, but this lab is really actally a meta-thing. It’s really about understanding how Firebase Studio works under the hood [it’s an app running containers on GCP managed by k8s], and how we would add in GitButler’s approach and build a gameified, ie FUN with a scorekeeper or commitgraph, collaborative integrated development environment.
The goal of this lab is to evaluate different tools and IDE’s knowledge engineering projects for SHARED KNOWLEDGE … that means building collaborative data visualization tools that help users enjoy the process of social, multi-branch coding to map things like causation dependencies, connections … that might be accomplished through annotations to the IDE’s AI-assisted code generation … it’s HUMAN-in-the-loop stuff … the AI can do the tedious stuff, but the humans are the ones who make the observations, commentary, sidenotes, inane commentary, questions/answers, suggestions, whatifs, various hot takes, and other forms of making connections/building relationships into the data … we should expect that no-code development will happen across diverse domains like agriculture (soil/yield data), music (ambient tracks in film), and medical imaging (body/brain scans).
We will assess these environments based on:
- Usability: Ease of setup and daily use.
- AI Assistance: Quality and integration of AI-powered coding help (e.g., code generation, debugging, ideation).
- Collaboration Features: Support for social coding (ideation), peer coding (real-time editing), and branch coding (version control workflows).
- Graph Coding Capabilities: Suitability for developing graph database interactions and visualizations (e.g., using ArangoDB, D3.js).
- Git Integration & Workflow: How well they support modern version control practices, including principles inspired by GitButler (task-oriented, virtual branches).
- Ecosystem Integration & Portability: How they fit within broader cloud ecosystems (GCP, Azure, AWS) and how easily workflows can be moved between them.
This lab will involve hands-on exploration and critical comparison to help you choose the right tools for complex, collaborative, AI-driven projects.
Background Concepts
Before diving in, let’s clarify some key concepts:
- Knowledge Engineering: The process of building and maintaining knowledge-based systems. In our case, it involves structuring data from different domains and representing the relationships between them, often using graph structures.
- Graph Databases & Coding: Databases optimized for storing and querying relationships (e.g., Neo4j, ArangoDB 18). Graph coding involves writing queries (e.g., Cypher, AQL) and logic to manipulate and visualize this connected data.
- Collaborative Coding:
- Social Coding: Using platforms and tools for shared ideation, discussion, and problem-solving around code (e.g., GitHub discussions, integrated chat/canvas features) 22.
- Peer Coding: Real-time collaborative editing of the same codebase, often with shared cursors and debugging sessions (e.g., VS Code Live Share, Firebase Studio’s real-time collaboration).
- Branch Coding: Utilizing version control branching strategies (like Gitflow or task-oriented models) to manage parallel development, experiments, and features 45. GitButler introduces concepts like virtual branches to streamline this 5, 12.
- AI-Assisted Development: Using AI tools integrated into the IDE to assist with code generation, completion, debugging, testing, documentation, and even design (e.g., Gemini Code Assist 1, 2, 13, GitHub Copilot, Cursor).
- Vibe Coding: An informal term suggesting a more intuitive, exploratory, and creative coding process, often facilitated by AI tools that can interpret high-level ideas or desired “vibes” and translate them into code.
The Knowledge Engineering Challenge: Cross-Domain Visualization
Our hypothetical project involves creating a tool similar to “Connected Papers” but for visualizing “memes” or conceptual connections across seemingly unrelated domains:
- Agriculture: Soil types, crop yields, geographic maps, cropping history.
- Music: Ambient music tracks, their use in film/video, mood analysis, metadata.
- Medical Imaging: Body/brain scan data (e.g., MRI, CT), annotations, links to biological pathways or diagnoses.
Project Requirements:
- Data Handling: Ingest, process, and integrate diverse data formats (structured, unstructured, geospatial, graph).
- Graph Modeling: Represent entities (crops, tracks, scans) and relationships (e.g., “similar mood,” “grown in same region,” “associated diagnosis”) effectively, likely using a graph database like ArangoDB 18 or potentially extending PostgreSQL [e.g., with pgRouting].
- Visualization: Develop an interactive frontend (e.g., using D3.js) to render the knowledge graph, allowing users to explore connections dynamically.
- Collaboration: Enable a team with diverse expertise (agronomist, musicologist, medical researcher, developer) to contribute effectively.
- AI Integration: Leverage AI for suggesting potential cross-domain links, optimizing queries, and speeding up development.
- Scalability & Portability: Ensure the solution can scale and that the core logic/data can potentially be migrated to other platforms (Azure, AWS) if needed 37, 28.
Development Environment Deep Dive
Let’s examine the primary contenders for our project.
1. Firebase Studio + Google Cloud Platform (GCP)
- Overview: A relatively new, web-based IDE from Google designed for full-stack development, particularly AI-powered applications, tightly integrated with Firebase and GCP services 7, 8, 11.
- AI Assistance: Features integrated Gemini 2.5 Pro/Flash 20, 21, 49 for code generation, explanation, debugging, commit messages, PR descriptions, and more 39. Includes a “Canvas” for visual ideation and agentic chat.
- Collaboration: Offers real-time peer coding (like Google Docs), integrated chat, and the Canvas for social coding/brainstorming.
- Graph Coding: Gemini can assist in generating graph database queries (e.g., AQL for ArangoDB) and visualization code (e.g., D3.js). Integration with GCP services like BigQuery 3 or Cloud Functions facilitates data pipelines for the graph.
- Git Integration: Embedded Git client for branching, committing, and PRs within the IDE 7. Syncs with external repositories (GitHub, GitLab). Gemini assists with commit messages and PR descriptions.
- Ecosystem & Hosting: Native integration with Firebase Hosting 38 for web apps, Cloud Functions for backend logic, and other GCP services (e.g., Vertex AI 17, Cloud Workstations 4).
- Portability: While integrated with GCP, code (e.g., Node.js, Python, React) and Git history are standard. Firebase configuration files are specific but can be replaced for other platforms. Syncing to GitHub is key for portability 37.
- Pros for Project: All-in-one cloud environment simplifies setup; strong AI integration (Gemini) aids coding and ideation; excellent real-time collaboration features; Canvas is good for social coding across domains; seamless deployment via Firebase Hosting.
- Cons for Project: Being web-based might feel limiting for some; Git integration is functional but less powerful than dedicated clients or VS Code extensions; reliance on Gemini means its quality directly impacts productivity; ecosystem lock-in potential if not managed carefully 28, 37.
2. VS Code + GitHub Copilot (+ Azure/AWS)
- Overview: The dominant open-source desktop code editor, highly extensible, often paired with GitHub Copilot for AI assistance. Can be configured to work seamlessly with any cloud platform (Azure, AWS, GCP).
- AI Assistance: GitHub Copilot (powered by OpenAI models like GPT-4o) provides inline code suggestions, chat-based assistance, and code explanation. Can be augmented with other AI tools and extensions (e.g., Claude models via plugins).
- Collaboration: Live Share extension enables real-time peer coding, shared debugging, and terminals. Social coding typically happens via integrated GitHub features (Discussions, Issues, PRs).
- Graph Coding: Excellent support through extensions for various graph databases (Neo4j, ArangoDB 18) and visualization libraries (D3.js). Copilot provides strong context-aware suggestions for queries and visualization code.
- Git Integration: Best-in-class Git support via built-in features and extensions like GitLens. Highly compatible with GitButler 6, 12 for advanced, task-oriented branch management. Full control over complex Git workflows.
- Ecosystem & Hosting: Platform-agnostic. Integrates deeply with Azure (via Azure extensions), AWS (AWS Toolkit), and GCP (Cloud Code 1). Deployments target specific cloud services (e.g., Azure App Service, AWS Amplify/ECS, GCP Cloud Run).
- Portability: Highly portable workflow. Skills and configurations transfer easily between cloud platforms.
- Pros for Project: Maximum flexibility and extensibility; mature ecosystem for graph databases and visualization; powerful Git integration (especially with GitLens/GitButler); Copilot offers robust AI assistance; platform-agnostic, ensuring portability; strong offline capabilities.
- Cons for Project: Requires more setup and configuration than Firebase Studio; collaboration via Live Share is excellent but less integrated than Studio’s native feel; social coding/ideation requires switching to external tools (GitHub, Miro etc.); AI assistance is primarily code-focused, less on visual ideation like Canvas.
3. Cursor
- Overview: An AI-first code editor, essentially a fork of VS Code, designed around deep integration with AI models (GPT-4o, Claude 3.7 Sonnet) for code generation, editing, and understanding.
- AI Assistance: Features like “Chat with your codebase,” “Edit in natural language,” and generating code from prompts are central. Aims for a more conversational and context-aware AI interaction than standard Copilot.
- Collaboration: Relies primarily on VS Code’s Live Share for peer coding. Social coding is external.
- Graph Coding: Leverages its strong AI models to generate graph queries and visualization code. Benefits from VS Code’s extension compatibility.
- Git Integration: Inherits VS Code’s robust Git capabilities, compatible with GitLens and GitButler 6, 12. AI can assist with commit messages.
- Ecosystem & Hosting: Platform-agnostic like VS Code. Deploys to any cloud.
- Portability: High portability, similar to VS Code.
- Pros for Project: Potentially superior AI assistance for complex code generation and refactoring tasks; intuitive natural language interaction; benefits from VS Code ecosystem.
- Cons for Project: Less mature than VS Code; subscription cost; collaboration features are not its primary focus; AI effectiveness is tied to the underlying models (GPT/Claude).
4. GitButler Principles (Workflow Enhancement)
- Overview: GitButler 12 is a Git client aiming to simplify workflows, particularly for managing multiple tasks concurrently using virtual branches 5, 14. Even without using the tool directly, its principles can enhance our workflow in any IDE.
- Key Principles:
- Task-Oriented Branching: Create branches for specific features or fixes (e.g., feature/add-crop-nodes, fix/music-query-perf).
- Virtual Branches / Work Isolation: Work on multiple tasks simultaneously in the same working directory, committing changes selectively to their respective task branches 5. This reduces context switching and prevents unrelated changes from mixing.
- Intent-Driven Commits: Write clear commit messages explaining the purpose of the change, not just the what 50. AI can help formulate these.
- Simplified Workflow: Focus on the task, let the tool manage Git complexities (e.g., staging, committing relevant parts) 16, 46.
- Application in Our Project: These principles are highly relevant for managing parallel work across agriculture, music, and medical domains. We can apply them within Firebase Studio’s or VS Code’s Git interface by:
- Naming branches clearly by task/intent.
- Being disciplined about committing only changes relevant to the current task branch.
- Using AI (Gemini/Copilot) to help write intent-driven commit messages.
Comparative Analysis for Knowledge Engineering
Feature | Firebase Studio (GCP) | VS Code + Copilot (Azure/AWS/GCP) | Cursor | GitButler Principles |
---|---|---|---|---|
Graph Coding | Good; Gemini assists with queries/viz code. | Excellent; Strong extensions & Copilot context. | Strong; AI-driven generation. | N/A (Workflow pattern) |
AI Assistance | Excellent (Gemini); Integrated across tasks, Canvas. | Very Good (Copilot); Code-focused, extensible. | Excellent; Deep AI integration, conversational. | Aids commit messages (via IDE AI) |
Social Coding | Excellent; Canvas & Chat for integrated ideation. | Fair; Relies on external tools (GitHub, Miro). | Poor; Focused on solo AI interaction. | N/A |
Peer Coding | Excellent; Native real-time collaboration. | Excellent; Via Live Share extension. | Fair; Via Live Share. | N/A |
Branch Coding Support | Good; Embedded Git, basic branching. | Excellent; GitLens, GitButler compatible. | Excellent; Inherits VS Code Git. | Excellent (Defines pattern) |
GitButler Alignment | Fair; Can apply principles manually. | Excellent; Directly compatible with GitButler tool. | Excellent; Compatible with GitButler tool. | N/A |
Hosting & Ecosystem | Good; Tight GCP/Firebase integration. | Excellent; Platform-agnostic, deep cloud integrations. | Excellent; Platform-agnostic. | N/A (Tool agnostic) |
Portability | Good; If GitHub sync & standard code used. | Excellent; Designed for flexibility. | Excellent; Based on VS Code. | N/A (Principles are portable) |
Suitability for Domains | Strong for Agri/Music (Geo/Creative); Good for Med. | Strong across all domains due to extensions. | Strong where AI excels (Music/Med logic). | Enhances multi-domain mgmt. |
Ease of Use / Setup | Excellent; Cloud-based, minimal setup. | Good; Requires setup & extension management. | Good; Desktop app, easy install. | Adds conceptual layer |
Refined Workflow Proposal (Firebase Studio Start + Portability)
Given the project’s collaborative and cross-domain nature, starting with Firebase Studio offers advantages for initial ideation and prototyping, while incorporating GitButler principles ensures a structured and portable Git workflow.
Workflow Steps:
- Setup (Firebase Studio & GitHub):
- Create a Firebase Studio workspace for the “CrossDomainGraph” project 8.
- Initialize a Git repository within Studio.
- Create a corresponding empty repository on GitHub.
- Configure Studio’s Git to sync with the GitHub repository (this is the key to portability). main branch is the stable base.
- Ideation & Schema Design (Social Coding + Task Branch):
- Use Studio’s Canvas and Chat with the team (agronomist, musicologist, researcher) to brainstorm connections and sketch the initial graph schema (nodes: Crop, MusicTrack, MedicalScan; edges: relatedTo, locatedNear, evokesMood).
- Let Gemini assist in refining the schema (e.g., suggesting properties, generating JSON for ArangoDB).
- Create a task branch: feature/schema-design.
- Commit the initial schema files with an intent-driven message (Gemini-assisted): e.g., feat: Define initial ArangoDB schema for cross-domain graph.
- Push the branch to GitHub.
- Parallel Backend Development (Peer Coding + Task Branches):
- Task 1: Crop Data Ingestion: Create branch feature/crop-ingestion. Use peer coding in Studio to write a Cloud Function (Node.js) to ingest mock crop data into ArangoDB. Use Gemini for AQL query help. Commit relevant files only. git commit -m “feat: Implement crop data ingestion function”. Push.
- Task 2: Music API Integration: Create branch feature/music-resolver. Collaboratively build a GraphQL resolver to fetch music track data (mock or via API). Use Gemini for boilerplate/async code. Commit relevant files. git commit -m “feat: Add GraphQL resolver for music tracks”. Push.
- (Apply GitButler principle: Work on separate tasks, commit changes only to the relevant branch, even if editing shared utility files.)
- Frontend Visualization (Branch Coding):
- Create branch feature/graph-visualization.
- Develop a React component using D3.js to render the graph fetched via GraphQL.
- Use Gemini to generate initial D3 force layout code or suggest optimizations.
- Commit incrementally with intent: feat: Implement basic D3 force-directed graph rendering. Push.
- Code Review & Merging (Studio PRs):
- When a task branch is ready, create a Pull Request within Firebase Studio’s Git interface (targeting main).
- Use Gemini’s suggestions for the PR description and potential reviewers.
- Team members review the code directly in Studio.
- Merge the PR once approved. Studio’s UI handles the merge. The merge commit also syncs to GitHub.
- Deployment & Iteration:
- Deploy the main branch frontend to Firebase Hosting directly from Studio 38.
- Gather feedback, use Canvas/Chat for discussion.
- Create new task branches for fixes or features (e.g., fix/graph-zoom, feature/scan-annotation-display).
- Repeat the commit -> PR -> merge -> deploy cycle.
- Ensuring Portability:
- GitHub as Source of Truth: Regularly push all task branches to GitHub. This allows anyone to clone the repo and work in VS Code/Cursor using Azure/AWS.
- Standard Code: Write platform-agnostic code (standard Node.js, React, Python etc.).
- Isolate Configs: Keep Firebase-specific files (firebase.json, .firebaserc) separate. Document how to set up equivalent configurations on Azure/AWS if needed.
- Use Standard Git: Stick to standard Git commands and branch naming conventions recognizable by any platform or tool.
Practical Lab Assignment Tasks
Your task is to gain hands-on experience with Firebase Studio and collaborative, AI-assisted, branch-based workflows.
- Setup & Familiarization:
- Schema Ideation (Social Coding):
- Using the Canvas, sketch a simple graph schema connecting at least two domains (e.g., Crop -> hasYield -> YieldData, Crop -> grownIn -> Region, MusicTrack -> usedInRegion -> Region).
- Use the Chat with Gemini to ask questions about refining the schema or generating a sample JSON structure for ArangoDB.
- Create a branch feature/lab-schema. Commit your schema design (e.g., a Markdown file or JSON snippet) with an intent-driven message (use Gemini’s suggestion). Push to GitHub.
- Backend Snippet (Branch Coding):
- Create a branch feature/lab-mock-ingest.
- Create a simple JavaScript file (e.g., ingest.js). Write a mock function that simulates adding a Crop node and a Region node to a hypothetical graph database (just use console logs, no real DB needed).
- Use Gemini (Ask Gemini or inline suggestions) to help write the function structure or suggest console log formats.
- Commit only this file to the feature/lab-mock-ingest branch. Push to GitHub.
- Frontend Snippet (Branch Coding):
- Create a branch feature/lab-simple-viz.
- Create a basic HTML file (index.html). Add placeholders for where a D3.js graph would render.
- Use Gemini to generate a simple boilerplate HTML structure or suggest how to include D3.js.
- Commit only this file to the feature/lab-simple-viz branch. Push to GitHub.
- Code Review Simulation (PR):
- From the feature/lab-mock-ingest branch, create a Pull Request within Firebase Studio targeting the main branch.
- Examine the PR interface. Use Gemini’s suggestion for the description. Assign yourself or a teammate (if working in pairs) as a reviewer.
- Add a comment to the PR.
- Merge the PR using the Studio interface. Observe the changes on main and GitHub.
- Reflection:
- Contemplate the following questions, perhaps with AI, but also by further explorations with Firebase Studio, Claude, Grok, ChatGPT, et al:
- How easy was it to create and manage branches in Firebase Studio – what could be better, why?
- How helpful was Gemini for code suggestions, commit messages, and PR descriptions – what could be better, why?
- How did the Canvas/Chat contribute to ideation compared to traditional methods – what could be better, why?
- How effectively could you apply GitButler’s task-oriented principles in this workflow – what could be better, why?
- How confident are you that this project could be moved to VS Code/Azure/AWS based on the GitHub sync? What challenges might arise?
- Contemplate the following questions, perhaps with AI, but also by further explorations with Firebase Studio, Claude, Grok, ChatGPT, et al:
Conclusion
Modern development environments offer powerful tools for tackling complex projects like cross-domain knowledge engineering. Firebase Studio provides a compelling, integrated, AI-first experience, particularly strong for collaboration and rapid prototyping within the GCP ecosystem. VS Code offers unparalleled flexibility, maturity, and platform agnosticism, especially when paired with Copilot and advanced Git workflows like those inspired by GitButler.
By understanding the strengths and weaknesses of each approach and maintaining portability through standard practices and tools like Git/GitHub, you can select and adapt your workflow to best suit your project’s evolving needs, whether you stay on GCP or migrate to Azure, AWS, or other platforms. This lab provides a starting point for making those informed decisions.
References
- Google Cloud. (n.d.). Code with Gemini Code Assist Standard and Enterprise. Gemini for Google Cloud. Retrieved April 11, 2025, from https://cloud.google.com/gemini/docs/codeassist/write-code-gemini
- Google Cloud. (n.d.). Gemini Code Assist Standard and Enterprise overview. Google Cloud. Retrieved April 11, 2025, from https://cloud.google.com/gemini/docs/codeassist/overview
- Google Cloud. (n.d.). Vertex AI Workbench. Google Cloud. Retrieved April 11, 2025, from https://cloud.google.com/vertex-ai-notebooks
- Google Cloud. (n.d.). Cloud Workstations. Google Cloud. Retrieved April 11, 2025, from https://cloud.google.com/workstations
- GitButler Docs. (n.d.). Overview - Virtual Branches. Retrieved April 11, 2025, from https://docs.gitbutler.com/features/virtual-branches/overview
- GitHub - gitbutlerapp/gitbutler. (n.d.). The GitButler version control client. Retrieved April 11, 2025, from https://github.com/gitbutlerapp/gitbutler
- Google. (n.d.). Firebase Studio. Firebase Documentation. Retrieved April 11, 2025, from https://firebase.google.com/docs/studio
- Google. (n.d.). Get started with Firebase Studio. Firebase Documentation. Retrieved April 11, 2025, from https://firebase.google.com/docs/studio/get-started
- Google for Developers. (n.d.). Review GitHub code using Gemini Code Assist. Retrieved April 11, 2025, from https://developers.google.com/gemini-code-assist/docs/review-github-code
- dasarpAI. (n.d.). Google AI Studio vs Vertex AI. Retrieved April 11, 2025, from https://dasarpai.com/dsblog/google-ai-studio-vs-vertexai
- The Firebase Blog. (2025, April). Introducing Firebase Studio. Retrieved April 11, 2025, from https://firebase.blog/posts/2025/04/introducing-firebase-studio/ (Note: Hypothetical future date in URL)
- GitButler. (n.d.). Retrieved April 11, 2025, from https://gitbutler.com/
- Google for Developers. (n.d.). Gemini Code Assist overview. Retrieved April 11, 2025, from https://developers.google.com/gemini-code-assist/docs/overview
- GitHub - gitbutlerapp/gitbutler-docs. (n.d.). Butler Flow. Retrieved April 11, 2025, from https://github.com/gitbutlerapp/gitbutler-docs/blob/main/content/docs/features/virtual-branches/butler-flow.mdx
- TensorOps. (n.d.). Vertex AI Workbench vs Colab Enterprise: Which Notebook Solution is Right for You? Retrieved April 11, 2025, from https://www.tensorops.ai/post/vertex-ai-workbench-vs-colab-enterprise-which-notebook-solution-is-right-for-you
- GitButler Blog. (n.d.). GitButler’s new patch based Code Review (Beta). Retrieved April 11, 2025, from https://blog.gitbutler.com/gitbutlers-new-patch-based-code-review/
- Google Cloud. (n.d.). Introduction to Vertex AI Workbench. Retrieved April 11, 2025, from https://cloud.google.com/vertex-ai/docs/workbench/introduction
- ArangoDB. (n.d.). Graph Category - Explore Graph Database Solutions. Retrieved April 11, 2025, from https://arangodb.com/category/graphs/
- ArangoDB Docs. (n.d.). Tutorials: Versioning Patterns. (Link inaccessible in original list) https://www.arangodb.com/docs/stable/tutorials-versioning-patterns.html
- Google Cloud. (n.d.). Gemini 2.5 Pro. Generative AI on Vertex AI. Retrieved April 11, 2025, from https://cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/2-5-pro
- Google Cloud Blog. (n.d.). Gemini 2.5 on Vertex AI: Pro, Flash & Model Optimizer Live. Retrieved April 11, 2025, from https://cloud.google.com/blog/products/ai-machine-learning/gemini-2-5-pro-flash-on-vertex-ai
- Fahad, M. (n.d.). Social Coding. Medium. Retrieved April 11, 2025, from https://medium.com/@mfahad1667/social-coding-6eaa4e7dd2ed
- GitHub - GoogleCloudPlatform/cymbal-superstore. (n.d.). Sample app for AI-assisted development on Google Cloud. Retrieved April 11, 2025, from https://github.com/GoogleCloudPlatform/cymbal-superstore
- Google. (n.d.). Firebase - Google’s Mobile and Web App Development Platform. Retrieved April 11, 2025, from https://firebase.google.com/
- Google AI for Developers. (n.d.). Release notes - Gemini API. Retrieved April 11, 2025, from https://ai.google.dev/gemini-api/docs/changelog
- Google Cloud. (n.d.). Code with Gemini Code Assist - Cloud Workstations. Retrieved April 11, 2025, from https://cloud.google.com/workstations/docs/write-code-gemini
- Google. (n.d.). Gemini Code Assist - AI coding assistant. Retrieved April 11, 2025, from https://codeassist.google/
- Indie Hackers. (n.d.). Why would you NOT use Firebase? Retrieved April 11, 2025, from https://www.indiehackers.com/post/why-would-you-not-use-firebase-2f5e49dcfc
- GitButler Blog. (n.d.). 20 years of Git. Still weird, still wonderful. Retrieved April 11, 2025, from https://blog.gitbutler.com/20-years-of-git/
- GitHub - GitLiveApp/firebase-kotlin-sdk. (n.d.). A Kotlin-first SDK for Firebase. Retrieved April 11, 2025, from https://github.com/GitLiveApp/firebase-kotlin-sdk
- YouTube. (n.d.). Google’s Firebase Studio: FULLY FREE AI Code Editor! (Link appears broken/generic) https://www.youtube.com/watch?v=tdzmtlyD9kA
- YouTube. (n.d.). Firebase Studio (Project IDX): FREE AI Code Editor! (Link appears broken/generic) https://www.youtube.com/watch?v=fYZarUw9iMg
- YouTube. (n.d.). Google Firebase is an AI IDE now… (Link appears broken/generic) https://www.youtube.com/watch?v=dAE4YloBUgI
- PuppyGraph Blog. (2025). 5 Best Graph Database Tools in 2025. Retrieved April 11, 2025, from https://www.puppygraph.com/blog/graph-database-tools
- Sogl, D. (n.d.). Gemini Code Assist for GitHub: Automated Code Reviews with Gemini. DEV Community. Retrieved April 11, 2025, from https://dev.to/danielsogl/gemini-code-assist-for-github-automated-code-reviews-with-gemini-3km5
- Google. (n.d.). FAQ and troubleshooting - Firebase App Hosting. Firebase Documentation. Retrieved April 11, 2025, from https://firebase.google.com/docs/app-hosting/troubleshooting
- Reddit - r/Firebase. (n.d.). Firebase and vendor lock-in. Retrieved April 11, 2025, from https://www.reddit.com/r/Firebase/comments/oibgtp/firebase_and_vendor_lockin/
- Google. (n.d.). Firebase App Hosting. Firebase Documentation. Retrieved April 11, 2025, from https://firebase.google.com/docs/app-hosting
- Google. (n.d.). AI assistance within Firebase Studio. Firebase Documentation. Retrieved April 11, 2025, from https://firebase.google.com/docs/studio/ai-assistance
- Google. (n.d.). Gemini Advanced. Retrieved April 11, 2025, from https://gemini.google/advanced/
- GitHub Marketplace. (n.d.). gemini-code-assist. Retrieved April 11, 2025, from https://github.com/marketplace/gemini-code-assist
- DataCamp. (n.d.). Gemini Code Assist: A Guide With Examples. Retrieved April 11, 2025, from https://www.datacamp.com/tutorial/gemini-code-assist
- Android Developers. (n.d.). Gemini in Android Studio. Retrieved April 11, 2025, from https://developer.android.com/studio/preview/gemini
- Medium - itnext. (n.d.). Build Gen AI Apps Fast with Firebase and Flutter: A Hands-On Starter Guide. Retrieved April 11, 2025, from https://medium.com/itnext/build-gen-ai-apps-fast-with-firebase-and-flutter-a-hands-on-starter-guide-54525e524e70
- Nulab. (n.d.). 6 best practices for Git version control. Retrieved April 11, 2025, from https://nulab.com/learn/software-development/version-control-best-practices/
- GitButler Blog. (n.d.). How to do patch-based review with git range-diff. Retrieved April 11, 2025, from https://blog.gitbutler.com/interdiff-review-with-git-range-diff/
- Reddit - r/git. (n.d.). Anyone tried out gitbutler? Retrieved April 11, 2025, from https://www.reddit.com/r/git/comments/1co83tv/anyone_tried_out_gitbutler/
- Hacker News. (n.d.). I struggled with Git, so I’m making a game to spare others the pain. Retrieved April 11, 2025, from https://news.ycombinator.com/item?id=43230734
- Google Developers Blog. (n.d.). Gemini 2.5 Flash and Pro, Live API, and Veo 2 in the Gemini API. Retrieved April 11, 2025, from https://developers.googleblog.com/en/gemini-2-5-flash-pro-live-api-veo-2-gemini-api/
- GitButler Docs. (n.d.). Commits - Virtual Branches. Retrieved April 11, 2025, from https://docs.gitbutler.com/features/virtual-branches/commits
- Google for Developers. (n.d.). Set up Gemini Code Assist Standard and Enterprise. Retrieved April 11, 2025, from https://developers.google.com/gemini-code-assist/docs/set-up-gemini-standard-enterprise