
Ben Forms
May 31, 2023
I wanted to build an ask-for-help form into an app that my JumboCode team built, in case the client had questions after we handed it off:
But in true fashion, I decided to over engineer it. I thought, What if I had a little site that I could use to generate forms for anything?, and forms.ben.page was born.

I just configure a bit of JSON, and it spits out another page that I can use.

Currently the responses go to LogSnag, but Iām thinking of migrating it to just send me a Discord notification instead.
Look, this was definitely overkill and the chance that I use this again for another form is quite slim. But I had a bit of fun building it! And thatās not a bad outcome.

Prototyping an AI-powered note-taking app
May 18, 2023
Greetings from Croatia!

Iām on vacation here with my parents. But in the airport, in the car, and in the evenings, Iāve been tinkering with building a note-taking app.
The idea was for a note-taking app where you can ask an AI assistant questions based on your notes:
How I built it
- Laravel, React (via Inertia)
- A background job periodically extracts new paragraphs from your notes and āembedsā them using OpenAIās embeddings.
- When you ask a question, the app embeds your question and finds the most relevant paragraphs in your notes.
- It feeds these paragraphs into ChatGPTās API, along with your question, and the AI synthesizes an answer.
How do embeddings work? (Based on Benās very basic understanding)
An embedding takes a piece of text and outputs a vector, an array of 1,536 numbers that identifies a point in 1,536-dimensional space (just like 3 numbers identify a point in 3D space).
Then you can take any two pieces of text thatāve been āembeddedā into a vector and calculate how far apart they are (like you could for two points in 3D).
That distance between the two points is how closely related they are āĀ for example, a sentence about ācatsā and āpetsā would be more closely related than a sentence about ācatsā and āmountainsā.
meh
I donāt think Iām gonna keep building this.
feature parity
Note-taking apps are a fickle thing to build, and despite this I keep trying to build them. But thereās a ton of features that a note-taking app eventually needs to have to be in line with the myriad of note-taking apps out there.
If Iām going to ask people (starting with myself) to use this app, it needs those features. And Iām the one whoās going to have to build them all, and make them nice.
is this useful?
After thinking about it, Iām not convinced that āChatGPT for your notesā is a useful concept.
Every use-case I can come up with can be solved by really good search, powered by vector embeddings. But feeding the search results into AI and having it synthesize an answer doesnāt seem to add any value, and costs speed and money for each question.
(If you have ideas of common situations where it would be useful, please let me know!)
And at the end of the day, good search is a feature, not a product. Iām sure Notion and all the others are looking into using embeddings to power their search. I look forward to when that happens.

JumboCode+
May 17, 2023
This is an idea for JumboCode (What is JumboCode?) that is not a particularly good idea, and JumboCode should probably not do it, but I thought itās interesting nonetheless.
JumboCode builds these free apps for non-profits each school year, but then the club doesnāt maintain them. If clients want improvements or bug-fixes, we donāt do them. It feels like there might be an idea here, but Iāll explain at the end why itās probably not worth exploring right now.
Maintenance is integral
If you want the organization to keep using the app you built for them, maintenance is super important.
As soon as bugs start cropping up, or they notice features that are missing, it feels like a ticking time bomb: why keep using this software that wonāt get improved?
My idea for JumboCode+
My āJumboCode+ā idea is that we create an organization to do the maintenance, hiring already-skilled developers, but we charge the clients for our work.
These developers will be experienced in web development; most JumboCode developers are learning web development for the semi-first time (which is fantastic!), but these developers will need to be more experienced since:
- Theyāre jumping into an unfamiliar codebase, full of decisions that were made by a team that is no longer reachable.
- Weāre billing the clients for their work.
š¤
The money that JumboCode+ earns could be split between the developers and JumboCode, as a way of funding the club. (The club is also providing the service of finding clients, which justifies its cut.)
And more club funding is always great!
So, why not?
Itās a conflict of interest
- Building an app for free, but then offering paid maintenance? That sounds a bit like a mafia shakedown.
- JumboCode is an organization that aims to do philanthropic good. Having an offshoot of the organization that charges money muddies the mission a bit.
Itās not the focus
Personally, I see JumboCodeās mission as two things:
- Teach students web development (often this means introducing them to it for the first time).
- Empower student to use their technical skills for good.
Money is nice, but this JumboCode+ idea doesnāt contribute to either of these. Itās something that would take a large amount of effort, and it seems misguided to expend effort here rather than furthering the core mission.

What is JumboCode?
May 3, 2023
JumboCode is a club at Tufts that builds apps for non-profits.
Theyāre letting me be the Head of Engineering for it next year! So I figured Iād write one short blog post about what it is, so every time I write about it I can link back here.
The club forms ~9-12 teams of developers who work on teams with 1 project manager, 1 tech lead, and 1 designer. Theyāre assigned to a non-profit that wants an app or website built.
They spend the whole school year, from September until May, building the app. It gets handed off to the client at the end of the school year, at which point it becomes their responsibility to maintain.
Itās not a super old club āĀ I believe it started in 2015 āĀ but itās grown to be one of the larger clubs on campus, with 100+ members.