Leveraging AI For Collaboration Tools

Leveraging AI For Collaboration Tools

Examples of AI tools and services we use to enhance application development
Adam Kempler

Software Architect

Adam Kempler

February 3, 2025

AI tools and services are transforming application development, from Single Page Applications (SPAs) to more complex multi-page applications. The GovWebworks AI Lab has been assessing the value of these tools by testing them on internal applications such as project management dashboards and content migration tracking systems.

We prefer to test on internal applications because they entail lower overall risk and require less optimization than public-facing applications. This allows for quick prototyping and rollout of MVPs without the need for the rigorous testing and refinement needed for large-scale client use.

This article provides a comparative analysis of some leading AI tools and services that streamline small application development such as SPAs, enabling the development of sophisticated, user-friendly applications with increased efficiency.

How we determine the best tool for the job

When evaluating the variety of new AI tools for application development, we consider features such as code generation, UI design, integrations, deployment, and code management. Additionally we evaluate ease of integration with existing workflows and customization for project needs, scalability, learning curve, security, and the overall cost and value.

On the simpler end of the spectrum, we have tools like Bolt and Lovable. These provide a UI for the creation of applications via a natural language input and try to hide the code that runs the application as much as possible. They also provide the ability to easily deploy your applications to the cloud for instant access by users. These tools can be ideal for non-developers.

In the middle, tools like Replit, similar to Bolt and Lovable, give you a natural language input to tell the assistant what you want to build, but also offer a web-based code editor so you can manage all the generated code files including manually writing and editing the code.

On the more complex end of the spectrum are tools like Cursor and Windsurf. These “AI-first” code editors are primarily targeted towards developers. They provide integrated AI assistants that like the other tools, allow you to describe your app and features that you want to build, but all of this is from within your code editor. There are no live previews of your app within your editor. It is up to you to run your application to view and test it, and you will need to deploy it yourself.

Of course, a developer might still use tools like Bolt and Lovable, and a non developer might use a tool like Cursor, but it’s good to have an idea what to expect. See chart at the bottom for our list of AI tools and services that stood out in research and in use cases as viable options for developing applications.

Jira Story Writing Assistant

We wanted to create an assistant that allowed a user to provide various contexts for a new feature and have it write a first draft of a Jira story for us. For this I used Replit Agent because it currently allows you to use Python or React/Nextjs as the technical stack. I went with Python because at the time of my testing, React support wasn’t available.

We wanted the app to be able to:

  • Generate a Jira story containing an overview and a bulleted list of “Conditions of Satisfaction”
  • Provide context as text and/or images
  • Provide any other relevant details to the team such as third party technical requirements
  • Provide manual QA testing guidance

To create this app with Replit Agent, I started with a fairly simple prompt:

“Build an ai-powered application to generate Jira stories based on user input, uploaded images, or linked webpages. Features include story generation and clipboard functionality.”

My goal here was to see not just what it could do technically, but how it would handle a rather vague description. I was impressed with how it handled this prompt. Not only did it build out a functional application, it also prompted me for details necessary to integrate AI by prompting me with the following question and form:

“To implement AI-powered story generation, we need to integrate with OpenAI’s API. Could you please provide your OpenAI API key? This will allow us to use GPT to generate well-structured Jira stories based on your inputs. The API key typically starts with ‘sk-‘.”

The API key was all I needed to provide. It handled adding the necessary OpenAI libraries and integrating them without any further prompting from me.

It also proactively made some nice recommendations, for example, it asked if I would like to create an integration for Jira. I answered “yes”, and it displayed a form asking for the relevant details to allow the connection. Honestly that’s pretty awesome. I didn’t have to consult any documentation as to what needed to be provided, look for an api/sdk, or read through tons of docs. It handled everything for me. All I had to do was provide the necessary credentials it prompted.

I was then able to test the application, and out of the box, it generated a story for me and had a “Publish to Jira” button that worked on the first try. Not bad for an hour or so of prompting.

Drupal Migration Assistant

Not all of my tests went so flawlessly. For example, the Drupal Migration Assistant app didn’t quite succeed.

A lot of our projects require migrating legacy content to a new Drupal website. Often this content will be semi-structured including tables of data and content such as lists of contacts, media files, etc. I wanted to be able to provide a URL and have the app analyze the content, recommend a content schema for a Drupal content type and related taxonomies, and then have it extract the data and provide it as json to match the schema. The hope was that it could then be used for easy import into Drupal.

For this app, I wanted it to provide data persistence using a database such as Postgresql. Nothing fancy, just some basic crud (create, read, update, delete) functionality.

Replit really struggled with this. To begin with, I wanted it to capture each unique “scrape”. A scrape would be a particular set of data that I wanted to migrate. It setup the database and form to provide a URL to scrape. It correctly stored these in the database and allowed me to view scrapes and delete them. However, as I added features and additional items to store in the database it continually failed to correctly store the data. It took many iterations of various prompts to get it to a semi functional point, but some of the crud functionality never worked.

While I could have reviewed and edited the code manually to fix it, my goal was to see how far I could get without writing code. This one will need more time to get it right.

Migration Tracker Application

On a more successful note, one of our project managers had an idea for a tool to help teams manage and track the progress of website migration projects. Previously we were using spreadsheets to track this data.

For this app, he leveraged Bolt, and provided the following guidance:

  1. Project Management: Administrators can create migration projects, specifying details like client name, start/end dates, and project descriptions.
  2. Role-Based Access: The system has two user roles:
    • Admins can create/manage projects and users
    • Migrators can work on projects they’re assigned to
  3. Migration Tracking: Users can track individual page migrations with detailed information including:
    • Source (legacy) URLs
    • Destination (new) URLs
    • Page titles
    • Migration status (Not Started, In Progress, Completed, Blocked)
    • Jira ticket references
    • Notes and comments
  4. Progress Monitoring: The dashboard provides visual progress indicators showing the status of migration items through charts and statistics, helping teams track completion rates and identify bottlenecks.
  5. Team Collaboration: Project owners can assign team members to projects, and team members can update the status of their assigned migration items, making it easy to coordinate large-scale migration efforts.

With a bit of prompting, Bolt was successfully able to build the desired application and we are currently using it on multiple projects.

AI tools and services comparison

The following is our list of AI tools and services that stood out in research and in use cases as viable options for developing applications. Some of these tools can create all aspects of the application, from frontend to backend and integrations. Others are useful for one part of the development cycle such as frontend design and development.

Note: Many of these tools are evolving quickly. The information below represents a snapshot and may be subject to updates or additional capabilities over time.

Service Description Primary Capabilities Limitations Features and Use Cases
Anthropic Artifacts AI-powered design and coding “window”. – Single page code and interface generation.
– Can iterate on a what you create via followup prompts.
An example artifact.
– Not an intuitive interface – No explicit way to generate an artifact, it’s up to claude whether to create one or not.
– Limited design capabilities.
– Interactive react components.
– Single page websites.
– Single page applications.
Bolt.new No code application development – Real-time collaborative assistant for developing applications.
– Real-time previews of your application.
– Builds complete applications with backend/frontend.
– Integrated deployment and hosting.
– Supports multiple languages and frameworks such as react, vuejs, angular, and svelte
– Can get confused when deploying. – Comprehensive application development with frontend and backend.
– Website development.
– Prototyping.
Bubble AI-powered no-code app development platform Not Tested
ChatGPT Canvas AI-powered design and coding “canvas”. – Natural language interace for developing and previewing components and smaller pieces of functionality. – Mostly for individual/single components.
– Not yet effective for building out an entire application.
– Limited preview capabilities.
– Interface is confusing to use – not obvious how to access the cavnas.
– Interactive react components.
– Single page websites.
Cursor AI-first IDE (code editor) Context-aware AI powered code assistant in an interactive IDE This is a tool for developers – not an all in one service for developing, previewing and deploying your application. – Natural language based application development using the integrated assistant.
– Code refinement, function writing, debugging, and optimization.
Github Copilot AI pair programmer that can be integrated into multiple IDEs/editors including VScode and Jetbrains. – Context‑aware code suggestions
– Deep integration with popular IDEs (VSCode, JetBrains, Neovim)
– Learns from billions of lines of public github code
– Feels a bit like an add-on to your IDE compared to AI-first IDE’s like Cursor and Windsurf.
– Support in vscode is good, but less solid in Jetbrains.
– Getting information about existing code.

– Writing functions.

Lovable No code application development Not Tested
Onlook AI No code React design and development Not Tested
Replit Agent AI pair programmer built into Replit’s cloud IDE – Real-time collaborative assistant for developing applications.
– Real-time previews of your application.
– Builds complete applications with backend/frontend.
– Integrated deployment and hosting on Replit servers.
– Public and private application hosting.
– Can struggle with adding database functionality. – Comprehensive application development with frontend and backend.
– Prototyping.
TempoLabs No code React application development Not Tested
v0.dev No code Nextjs frontend development – Creates frontends for applications using shadcn component library.
– Implemented frontend can be installed in your nextjs app with a simple npx command
– Limited backend capabilities. Mostly focuses on building out frontend interfaces.
– Nextjs only.
– Shadcn only.
– Building and prototyping frontend interfaces.
– Component creation.
Windsurf

 

AI-first IDE (code editor) Not Tested

In summary

These AI tools and services stand poised to transform the application development process, enabling faster innovation and quick prototyping of ideas. Currently they are “almost” there, but many rough edges are still present. Sometimes they can be worked around through careful prompting and re-prompting, and sometimes you will hit a brick wall.

Additionally, even when these tools successfully build an application, I would not consider them truly “production ready”. While they are fine for a smaller group of users and internal purposes, the code generated by them is frequently poorly organized and optimized. Ongoing maintenance and continuous feature development would quickly become difficult.

I believe that most of these issues are “now” issues, and the capabilities and quality will improve over the next year. Additionally, I think that most of these tools will start to incorporate multiple agents into the process, for example, the agent that takes your idea and generates code, an agent that tests that code, and one that makes design recommendations. These agents will be “experts” in their own areas and will improve the ability to automate the development process even further.

As the landscape evolves, we will continue to evaluate the available tools to identify how they can best be leveraged for client implementations. Ask us about AI tools for your project and we are happy to share our recommendations and support their implementation.

Disclaimer: This document reflects current knowledge of AI tools for SPAs. As the field evolves, new tools and features may emerge.

Learn more

Was this post helpful?