Skip to content

~/maraavailable --from november

I build fast, quiet websites and apps for small product teams.

Independent full-stack developer in Lisbon. Eleven years of shipping, the last three on my own.

How a project comes together

  1. 01vim src/pages/index.astro

    Brief, then code

    Every project starts in plain words and then a first file. No deck, no forty-page spec: a working page by the end of week one.

  2. 02npm run build

    Built and tested

    Types, tests and a preview link for every change, so you see the site grow instead of hearing about it.

  3. 03deploy --prod estuaryline.com

    Live on a real address

    Deployed to your own hosting, with the keys in your name and a handover you can read in ten minutes.

  4. 04lighthouse --all

    Fast enough to forget

    Pages that load before anyone notices they were loading. Every launch so far has scored 100 across the board.

Selected work

Things I built that are still running.

A ferry company's booking, an oyster farm's shop, a dashboard that got four times faster. Each one with its brief, its numbers and what I'd do differently.

All work
  • The Estuary Line site on a laptop screen, a departure board with the next three sailings and a large Book a ticket button over a photo of a ferry on a wide river.

    01Web appEstuary Line · 2026

    Estuary Line booking

    Tickets, timetables and live departures for a river ferry that carries 9,000 people a day. Booking went from a phone call to forty seconds on a phone.

    Tickets bought online0%61%

    • Astro
    • TypeScript
    • PostgreSQL
    • Stripe
    • Cloudflare Workers
  • The Ostra Farm shop on a laptop on a wooden table, a large photo of oysters on ice and a box with a Friday delivery date.

    02WebsiteOstra Farm · 2025

    Ostra Farm shop

    An oyster farm's site and shop that sells out every Friday. Built to load on a fisherman's phone and to be edited by the people who farm.

    Boxes sold online a week0180

    • Astro
    • Stripe
    • Supabase
    • Resend
  • A research dashboard on a laptop in a field station, with charts of soil moisture and a map of sample sites.

    03PerformanceFieldnote · 2024

    Fieldnote dashboard, four times faster

    A research dashboard that took four seconds to show anything. Two weeks later it showed the first chart in under one, without a rewrite.

    First chart4.1 s0.9 s

    • React
    • TypeScript
    • Vite
    • Vitest

Services

Three ways to work together.

Fixed prices where the work allows it, a day rate where it doesn't. Every project comes with the code, the keys and a handover in your name.

Ask about a project
  • website.md4 to 6 weeks

    Website

    A fast, accessible site you can edit yourself

    From €6,800fixed price

    How long: 4 to 6 weeks

    • Design in the browser, or built from your designer's files
    • A CMS your team can use without me
    • Lighthouse 100 and WCAG AA, tested with every build
    • Analytics, forms and email set up in your accounts
    • Two weeks of fixes after launch
    Ask about this
  • web-app.md8 to 14 weeks

    Web app

    From the first sketch to people using it

    From €18,000or €950 a day

    How long: 8 to 14 weeks

    • A working preview in week one, a new one every week
    • TypeScript, Postgres and tests from the first commit
    • Sign-in, payments and email where you need them
    • Deployed to your hosting, with a handover your next developer can read
    • Two weeks of fixes after launch
    Ask about this
  • performance.md2 weeks

    Performance rescue

    Your existing site or app, made fast

    €3,400fixed price

    How long: 2 weeks

    • Real-user and lab measurements before I touch anything
    • The fixes themselves, as reviewed pull requests
    • A performance budget and a test that keeps it
    • A before-and-after report you can show your board
    Ask about this

Experience

Eleven years, one commit at a time.

Agencies, a product team and now my own desk. The side branches are where most of what I know came from.

~/maragit log --graph --oneline career

  1. 218b214HEAD → main2023 – now

    Independent: sites, apps and speed for small product teams

    Three or four projects a year, from the brief to the morning after launch. Clients in Lisbon, Copenhagen, Rotterdam and Bristol.

  2. c7676152024

    tinyqueue 2.0: a job queue for edge functions

    Open source, 2,400 stars, used in production by teams I've never met.

  3. 6426ff02020 – 2023

    Lead front-end at Fieldnote (Copenhagen, remote)

    Took the dashboard from a single bundle to islands, led a team of four, wrote the design system with our designer.

  4. 1276f242018 – 2020

    Front-end developer at Atelier Nord, Stockholm

    Agency work: forty sites for museums, a ferry operator and a chain of bakeries. Learned to ship on a date.

  5. c3b2c452017

    Accessibility course, then everything changed

    Six weeks with screen reader users. I've tested with a keyboard first ever since.

  6. c00497b2015 – 2018

    Developer at Lund University Library

    Catalogue search, a booking system for study rooms and my first production database.

  7. e93b728v0.12015

    Initial commit: BSc Computer Science, Lund

Stack

Boring tools, used well.

I pick what your team can hire for in two years, not what was on the front page last week.

Front end

  • Astro
  • TypeScript
  • React
  • Tailwind CSS

Back end

  • Node.js
  • PostgreSQL
  • Supabase
  • Cloudflare Workers

Craft

  • Vitest
  • Figma
  • Git
  • Vercel

Clients

What they said after.

  • Mara rebuilt our booking in eleven weeks and the phone stopped ringing with people who couldn't buy a ticket. That was the whole point.

    Inês CorreiaOperations, Estuary Line
  • Our dashboard went from four seconds to under one. Customers noticed before we told them.

    Jonas HolmCTO, Fieldnote
  • She asked better questions about oysters than our accountant. The shop has paid for itself twice.

    Rui TavaresOwner, Ostra Farm

Writing

Notes from the desk.

All writing
  • A notebook on a desk with a hand-drawn bar chart and the words "under 200 kB" circled, beside a cup of coffee.

    #performance#ci

    A performance budget that actually holds

    Budgets fail because nobody notices when they're broken. Put the number in CI, make the failure explain itself, and it holds for years.

  • A stack of well-used programming books on a windowsill in afternoon light.

    #stack#freelance

    The boring stack, and why clients like it

    Astro, TypeScript and Postgres aren't exciting. That's the point: in two years someone else can hire for them.

  • A printed checklist on a clipboard with most items ticked in pencil, next to a laptop.

    #launch#checklistMembers only

    My launch checklist

    The 31 things I check before a site goes live, from redirects to the 404 page. The whole list is for members.

One email when there's something worth reading.

New posts and the odd tool I can't stop using. Four or five a year, never more.

~/maraopen --project

Have something that needs building?

Tell me what it is and when it has to be live. I answer every enquiry within two working days, with a yes, a no or a better idea.

A laptop open on a café table by a window in the evening, a glass of water beside it.

Ask about my work

Services, prices, projects and availability

Hi! Ask me what Mara builds, roughly what it costs, how a project runs or when she's free.

Accent

Get itGet this template: Kernel on WPTom