If you’re reading my posts you’ve probably also seen the posts from other (smarter) writers about using AI to create fully executable code projects with just a request. Here’s a good example from a month ago. Essentially “vibecoding” is, as Ethan Mollick put it, speaking things into existence. Type your wish into the magic box, and voilà, you get an app, like a simple game.
Could it work for access to justice?
A lot of what A2J technology is about is, really, just creating apps to do discrete things, funded by grants, serving either lawyers or people (I guess lawyers are people too). It reminds of the “there’s an app for that” phrase from the early days of smartphones:
Need to fill out a request for the court to ____________? There’s an app for that.
Need to understand your rights as a tenant in NYC? There’s an app for that.
And so forth.
Here’s the thing - those kind of projects have a big lead time and take up a good bit of money & resources, both for the technology provider and the org that hires them to create it.
I’ll also add that because there’s typically no room for iteration (even though everyone talks about “agile development”), the app often gets created with minimal feedback from the actual user.
Can vibecoding solve some of that?
BLUF, to borrow the “Bottom Line Up Front” idea from the military, is yes and no. But I think mostly yes. I’ll get to the “no” part later.
An experiment
I used Gemini 2.5 Pro (experimental), and simply put in the following:
Can you create a "choose your own adventure" style game for renters in Florida that uses the information on this page as the source material? https://bals.org/help/resources/tenants-handbook
Here’s the thinking process it used:
The user wants a "choose your own adventure" game for Florida renters based on the information from the provided URL:
https://bals.org/help/resources/tenants-handbook
.
Understand the Goal: Create an interactive game where the user makes choices related to renting in Florida, and the game provides information and outcomes based on the linked Tenant's Handbook.
Source Material: The core information will come from the Bay Area Legal Services (BALS) Tenant's Handbook. I need to access and understand the key topics covered in this handbook (e.g., lease agreements, security deposits, repairs, eviction).
Game Format: "Choose Your Own Adventure" implies a branching narrative structure. The user starts at a certain point (e.g., looking for an apartment) and makes choices that lead to different scenarios and information points.
Technology: HTML, CSS, and JavaScript are suitable for creating this type of interactive web-based game. It allows for displaying text, handling user choices (buttons), and dynamically changing the content. Tailwind CSS will be used for styling.
Game Structure:
Start: Introduction to the game and the initial scenario (e.g., "You're looking for an apartment in Florida...").
Nodes/Scenes: Each point in the game will represent a situation or decision. Each node will have:
Descriptive text explaining the current situation.
Relevant information drawn conceptually from the handbook (paraphrased, not directly copied).
Choices (buttons) for the user to proceed.
Branching: Choices lead to different nodes, simulating consequences or different paths in the renting process.
Information Delivery: The game should educate the user about their rights and responsibilities as a Florida tenant, referencing key concepts from the handbook.
End States: Some paths might lead to successful outcomes (e.g., signing a lease correctly), while others might highlight potential problems (e.g., facing eviction due to a specific action) and provide relevant advice.
Disclaimer: Include a clear disclaimer that this game is for informational purposes only and is not legal advice. Advise users to consult the full handbook or a legal professional for specific issues.
Content Extraction (Mental Outline):
Finding an Apartment: Application fees, discrimination, reviewing the lease.
The Lease: Oral vs. written leases, important clauses, understanding terms.
Security Deposit: Limits, how it should be held, getting it back.
During Tenancy: Paying rent, landlord's entry rights, repairs (landlord's duty, tenant's options if repairs aren't made - withholding rent carefully, terminating the lease).
Ending the Tenancy: Proper notice, moving out procedures, eviction process (notice types, court process).
Implementation Details (HTML/JS):
Use a container
div
to hold the game content.Use paragraph tags (
<p>
) for the story text.Use a
div
to hold the choice buttons.Use JavaScript to:
Define the game structure (nodes, text, choices, next nodes). An object or array of objects would work well.
Display the current node's text.
Create and display buttons for the choices.
Add event listeners to the buttons to transition to the next node based on the user's choice.
Update the display with the new node's content.
Styling (Tailwind):
Center the game container.
Use a clean font (Inter).
Style buttons for clear interaction (hover effects, rounded corners).
Ensure good readability and mobile responsiveness.
Refinement: Keep the scenarios relatively simple but informative. Focus on common renting situations and decisions. Ensure the information provided aligns with the spirit and key points of the BALS handbook. Avoid giving definitive legal advice.
(Self-Correction/Refinement):
Directly scraping the website content within the game is not feasible or reliable. I need to manually synthesize the key information from the handbook (based on my knowledge or a quick browse if I had browsing capability) and structure it into game nodes. The game will refer to the concepts, not dynamically pull text.
The game should not be overly complex. A few key branching points covering major topics (lease signing, repairs, ending tenancy) will be more effective than trying to cover every detail.
Make it clear this is a simplified simulation, not exhaustive legal guidance. The goal is education and awareness.
Need to add a clear disclaimer.
Will use Tailwind for styling as per instructions.
Will use JavaScript to manage the game state and transitions between scenes.
Okay, I can create a "Choose Your Own Adventure" game to help you learn about renting in Florida, using key concepts from the BALS Tenant's Handbook.
This interactive game will guide you through common scenarios faced by renters, presenting you with choices and showing potential outcomes based on Florida tenant law principles.
The “yes” part
The result was … really good! Note that I didn’t ask it to make it web-based, use Tailwind or JavaScript, or add a disclaimer. I also just told it to make it “for renters in Florida” and to use “the information on this page as the source material” - this page being the renter’s guide put out by Bay Area Legal Services.
There were a couple of hitches - a couple of the choices didn’t do much - like the “Refuse to pay anything before seeing a lease” button on the screen above just ended the game with the explanation that the landlord rented the property to someone else, and gave the option to restart. But on the whole it worked.
So I had a little back and forth discussion to fix those issues, as well as add in features I thought would be useful. Here’s my inputs, I’ll spare you the lengthy thinking processes from Gemini:
This is great - Can you adjust so that it reaches an ending screen that gives the player a "rundown" of what their choices were and the potential consequences / benefits of those choices? Also can you add in explanations for things from the source material?
Thanks! Can you make the three choices on the starting screen all lead to the "proceed with the application" choice, and just give the player the information about how application fees are non-refundable? Also can you add a "Go back a step" button to it so the player can do that?
Awesome - can you just remove the "Keep calling (likely ineffective)" button? Also, can you modify the summary page to use something more visual to give players an idea of risky vs. safe choices? Maybe a color gradient or icons?
This is the end result, which you can play through. All in all it’s 432 lines of code in HTML and JavaScript.
This is the end screen:
It’s really good! Astonishingly, I didn’t have to direct it to do the nitty-gritty stuff, like tell it the steps to take, the CSS framework to use, or the laws to cite. I just vibed and whispered my desires into the little magic box (via my fingers on my keyboard), and Gemini created it ex nihilo. Honestly I’m amazed.
This type of tool is already a “thing” in A2J tech, typically called a “risk detector,” “legal navigator,” or an “action plan” - you can see an example here or here. These typically try to connect people with legal help for their legal problems, while the Gemini experiment is more a “role playing” kind of educational tool.
The “no” part
As promised up above, there is a “no” component here we should discuss. Well, two components. I’ll list them out.
Maintainability:
Let’s say I work at a legal aid org and created this, and wanted to make it live to end users. That’s pretty straightforward, since it’s a one-page web application and I’d probably be able to publish it on whatever website platform I was using pretty easily. But let’s say the law changes on something, or I need to edit something to say something different. That then becomes a complex problem for me since I’m not great with JavaScript. I suppose I could, at that point, just ctrl-c the code and send it back to Gemini and tell it “hey change this for me.” But it’s still added labor around maintainability down the line.
Let’s reverse the scenario and say I paid a tech firm $______.__ to create this tool. I’d have to put in a change request with them, and while I may or may not have to pay for it, I’d certainly have to wait a while.
Honestly I think the best scenario here would be to have Gemini create this tool in a system like Docassemble that’s more universally maintainable rather than in JavaScript…
Subject matter expertise:
I am not a landlord-tenant attorney, although I have handled maybe 3 cases in the area over my career. I am basically taking what Gemini puts in this as fact, and not checking whether or not it’s correct. That’s fine for this kind of experiment, but I’d definitely want an expert’s eye on this before ever publishing it as some source of truth.
Granted - it’d be pretty easy I think for a landlord-tenant attorney to check the wording on this, and probably pretty simple for Gemini to fix it.
Usefulness and the speed of agile development:
Maybe this is more of a philosophical question than a “no” area, but I’m honestly not sure how useful this type of tool would be for renters in Florida. Would they use it? Maybe? Would they better understand their rights and the laws about renting afterwards? I hope so but I can’t say for sure (this is also why I can’t sell things).
But! Creating this tool using Gemini was all of around 20-30 minutes for me. In fact, it took longer to write this post than to do it. Which is important, because in A2J tech things take a long time, months, or in some cases years, to develop and test.
Answering the question of “is this type of tool actually useful” - at least to me - should now be much, much faster and easier. If development of a prototype can be done in less than a day, that’s more time for testing and iteration. More time for testing and iteration means more feedback, and more feedback (assuming that feedback is incorporated) means better products. Better products means more problems get solved. That’s something we should be hoping for, and something worth trying (or vibecoding).