News, insights, and practical best practices from a studio focused on building sharper, faster, more thoughtful digital experiences.

A few months ago I had an idea for a passion project — a memorial site for my father-in-law, a deeply creative man I never got to meet. He was a musician, an actor, a voice-over artist. My wife has videos of him, recordings of his music, old animated TV episodes where you can hear his voice. I wanted to build a place where she and her family could go and feel connected to him — a hub where you could listen to his songs, watch the one music video his band made, or catch an episode of a show he brought to life.
The vision was completely formed in my head. I just needed the right reason to execute it the right way.
That reason turned out to be Cursor.
The original version of fje-memorial.vercel.app was built off a Brad Traversy tutorial — vanilla JavaScript, straightforward DOM manipulation, no framework, no backend. It worked. It did the job. But it was a static file sitting on a server, and as the vision for the site grew, the architecture didn't hold up.
I wanted dynamic content management. I wanted file storage. I wanted the ability to add new music or video without touching the codebase. That meant going full-stack — and that meant revisiting skills I hadn't actively used since completing my bootcamp at Vanderbilt back in 2020.
I'd been hearing about Cursor for a while — an AI-native IDE built on top of VS Code that lets you prompt, generate, and refactor code inline with full project context. It's not a chatbot bolted onto your editor. It understands your entire codebase, can make multi-file edits, and reasons through architecture decisions with you.
This project was my test case. The goal: take a vanilla JS site and transform it into a Next.js application backed by Supabase for storage and database, deployed on Vercel. Full-stack, production-grade, using modern tooling — and see how much of the heavy lifting Cursor could handle.
Here's the honest version of the timeline.
The actual coding — the migration from vanilla JS to Next.js, wiring up Supabase for file storage and database tables, building out the media hub components — moved fast. Cursor handled a significant amount of the scaffolding, refactoring, and boilerplate. Having a tool that understands the full project context and can reason across files rather than generating isolated snippets is a different experience than using a standard AI assistant.
What took longer than expected? Account setup.
A meaningful chunk of the total time was spent getting Vercel and Supabase properly configured — creating accounts, setting up projects, connecting environment variables, understanding storage bucket permissions, and making sure the deployment pipeline was talking to the right services. It's not glamorous, but it's real. If you're planning a project like this, budget for the infrastructure setup separately from the development work. They're different kinds of effort.
Once the plumbing was in place, Cursor let me move through the migration at a pace I wouldn't have hit working through it manually. Cursor removed the friction of context-switching, documentation diving, and boilerplate so I could stay focused on what the site actually needed to be. The workflow felt more like being a PM or Dev manager than being a codemonkey.
For reference, here's what the site runs on now:
Framework: Next.js (App Router)
Database & File Storage: Supabase
Deployment: Vercel
IDE: Cursor
Is Next.js overkill for a personal memorial site? Yes, technically. But that's also the point. This project isn't just a tribute — it's a proof of concept. Full-stack development is a muscle I built during my bootcamp and then mostly set aside as my freelance work concentrated on Shopify, Webflow, and the front-end layer. This was a chance to dust it off in a real context with real stakes.
It's good. Better than I expected, in the specific ways that matter.
The context-awareness is the differentiator. When I'm in a project and ask Cursor to help with something, it's not working blind — it sees the file structure, understands what's already been built, and makes suggestions that fit the codebase rather than generic ones I have to adapt. That's a different tool than a chat window.
The practical takeaway for anyone considering it: Cursor compresses the time between idea and working code. It doesn't replace judgment — you still need to understand what you're building and why — but it removes a significant amount of friction from the execution side. For a developer who already has the conceptual foundation, it's a real accelerant.
I'll be using it more.
The memorial site lives at fje-memorial.vercel.app. It's a personal project, built with intention and care for people who loved someone I never got to meet. The fact that it also gave me a reason to sharpen full-stack skills, experiment with Cursor, and work with a modern deployment stack felt like exactly the right kind of project to take on.
Sometimes the best technical work comes from personal stakes.