Icebreaker Forms

Recently, communities all over this country have been forced to navigate immigration troops in their cities, taking people, and, in some cases, erroneously deporting them due to lack of proper paperwork or dereliction of due process. I witnessed this in my community and knew I had to do something to help. Not vent or march, but something that could ease this process, if only a little
This is when the Icebreaker Forms were born. I read up on the paperwork loved ones of immigration detainees had to figure out, procure, fill out and present and in what circumstances and, frankly, I felt like I had to put myself through a law class just to navigate it. There’s no telling how much harder it is to figure these things out when someone’s life as you know it is on the line.
I worked to make a compiled form that sorted the users according to their particular needs, had them give the needed information and their email address, and, after submission, they would get the forms they needed filled out and sent right to them.
To ease this burden and do my best to cover my bases, I leveraged Claude to research, in some cases, things I’d already researched, just to make sure the information coming back was accurate. Even after checking that, I had Claude create User Stories to show me how the system saw the forms being used in practice. After passing these tests, we went about connecting pathways of the forms along with the information and setting up the system that would do the parsing and sorting and sending through n8n. After explaining my preferred tech stack and architecture, we were ready to go. Using the advantages afforded by this agentic assistant, I had the forms set together in English and Spanish and started tests on the connections.
With the help of the Plato platform, I prompted this repo to give me a diagnostic of the system’s functions and current and potential failure points, then created specific tests to mitigate or catch those issues should they arise. I’ll go ahead and let Claude explain the resulting product:

Claude Says:
Icebreaker Forms is a privacy-first web application that helps families and advocates navigate the U.S. immigration detention and bond process and prepare the legal forms it requires. Detention paperwork is a maze — EOIR appeals, attorney appearance forms like the G-28 and EOIR-28, bond contracts, and financial-support declarations such as the I-134, each with its own rules and filing quirks. Icebreaker Forms replaces that maze with a single guided intake wizard that determines which forms a person actually needs, collects the necessary information once, and produces filled, ready-to-file PDFs. It’s built to assist with form preparation, not to provide legal advice.
The intake wizard routes users through one of seven situation paths — covering arrest documentation, representation, bond eligibility, relief screening, and posting bond — capturing only what’s relevant to their case. Rather than expecting users to understand immigration law, the app infers the correct form set from their answers. Completed forms can be downloaded individually or bundled into a single filing packet, with an optional pipeline that emails the finished packet directly to the submitter. Privacy was a design priority throughout. PDFs are generated entirely client-side, so sensitive personal information never has to touch a server, and saved draft sessions are encrypted at rest with AES-256-GCM. Building this meant solving problems unique to government paperwork: reverse-engineering undocumented PDF form fields and working around USCIS’s AES-encrypted, rich-text forms to make programmatic filling reliable. The app is also fully bilingual in English and Spanish, with localization architected so the legal output stays consistent regardless of display language.
Icebreaker Forms is a full-stack TypeScript monorepo — React, Vite, and Tailwind on the front end with pdf-lib for in-browser PDF generation, and Node.js, Express, and MySQL on the back end, plus an n8n workflow for automated email delivery.



