Freehand
Log in

Demo: data may reset. Use the buttons above to explore. About this demo

About Freehand

Walls need art. Artists need walls.

What it is

Freehand is a tiny matchmaking service for the Greater Cambridge and Boston area. Local businesses with blank walls post what they are looking for. Emerging artists respond with photos of their work and an itemized estimate of what materials would cost. The business picks one. Afterwards they connect directly: the business covers only the materials, the artist gets a wall and an audience, and the business keeps the finished piece.

No money changes hands here, and no real emails are sent.

Freehand only displays the artist’s estimated materials cost. Reimbursement happens between the two parties, off-platform. Login codes are shown on screen in demo mode instead of being emailed.

Who it is for

  • Emerging artists

    Students and early-career artists who want their work seen, for free.

  • Local businesses

    Cafés, shops, studios, and offices that want original art without gallery prices.

The loop

  1. A person logs in with a one-time email code (no passwords).
  2. A business posts a wall: photos, size in inches, and the vibe they want.
  3. An artist responds with photos of their work and a materials estimate.
  4. The business accepts or declines. Accepting reveals contact details to both sides.

Walkthrough: what to click

  1. 1

    Click “Try as a business” in the header.

    You are now Lena at Cardinal Coffee. You land on your dashboard.

  2. 2

    Click “Post a wall”.

    Fill in a title, address, size, vibe, and add a photo. Any JPEG or PNG works. Submit.

  3. 3

    Open “Switch demo user” and pick Jules Okafor (Artist).

    Go to “Browse walls”, open your new wall, and click “Respond to this wall”.

  4. 4

    Fill in the response.

    Add a photo, a description, and a few materials. Watch the total update live. Send it.

  5. 5

    Switch back to Lena (Business).

    On “My account”, click “Review responses” on your wall. Accept the proposal.

  6. 6

    See the result.

    The wall is now Filled, other responses are auto-declined, and contact details appear for both parties. Switch to Jules to see the artist’s side.

You can also log in with any email address: the login page shows your one-time code on screen in demo mode.

Tech stack

  • Next.js (App Router) + TypeScript + Tailwind CSS, deployed on Vercel.
  • Database: a Google Sheet, accessed server-side through the Sheets API with a service account.
  • Images: a Google Drive folder, served through a private proxy route (files are never public).
  • Auth: passwordless 6-digit codes, hashed at rest; sessions are signed httpOnly JWT cookies (jose).
  • Validation with zod on every route; unit tests with Vitest.
  • Without Google credentials the app runs on an in-memory data layer with seed data, which is how this demo is running right now: storage = in-memory / local, demo mode = on.

Good to know

  • Demo data may reset at any time (serverless instances restart).
  • Demo accounts use @example.com addresses. No real email is ever shown publicly.
  • There is no payment, messaging, editing, or notification feature in this MVP, on purpose.