Freelance developer for professionals and small businesses

I build fast websites and web apps that turn confused visits into real enquiries.

I help professionals, studios, and small businesses fix outdated websites, unclear digital ideas, and manual workflows with clear, polished, easy-to-use solutions.

  • ✓ Free 20-minute intro call
  • ✓ Written quote within 48h
  • ✓ First version live in 1–3 weeks
Hassan Akkari, freelance developer
first year building software
2022
typical first reply
24h
pushy sales calls
0

I work every day on real web products, with real users and complex flows. I bring the same method to selected freelance projects: less improvisation, more structure.

Problems I solve

If any of this sounds familiar, your website doesn't just need a refresh — it needs order.

  • You have an old site that no longer represents you

    Slow, ugly on mobile, generic copy. You open it in front of a client and feel embarrassed.

  • Your site exists but doesn't bring contacts

    People open it, don't understand what you offer, and leave. No clear CTAs, no WhatsApp, no form that actually works.

  • Your online presence is scattered and not credible

    An Instagram, a 10-year-old site, a stale Facebook. When someone Googles you, they don't trust what they see.

  • You still run everything via Excel and WhatsApp

    Bookings, clients, sheets, orders. It works, but it eats your time and makes you look unstructured.

  • You have an idea for a site or an app but don't know where to start

    You know you need something, but can't tell if it's a website, a landing page, a web app, or simply a more ordered system.

  • You're tired of WordPress sold as a 'custom solution'

    Plugins that break, bought templates, poor performance, and simple edits that always become complicated.

Services & packages

Four concrete ways to upgrade your online presence.

Indicative pricing — after our first call you get a written, fixed quote with no surprises.

Professional Landing Page

A single page built to sell a service or capture leads. Live in one week.

Ideal for professionals, freelancers, and small businesses promoting a specific service, campaign, offer, or new activity.

From €6005-7 business days
  • Custom mobile-first design
  • Copy structured for conversion
  • Contact form + WhatsApp button
  • Basic SEO (title, meta, proper structure)
  • Optimised mobile performance
  • Hosting and domain setup together
  • Complex booking logic
  • Customer area / login
  • Catalogue-based e-commerce
Most requested

Professional Website for businesses and studios

The website that gives your business credibility. Clear, fast, built to get you contacted.

Studios, professionals, and small companies with an old site (or none) who want to look serious online.

From €1,5002-3 weeks
  • Home, About, Services, Contact, FAQ
  • Consistent, responsive design on any device
  • Basic technical SEO + correct meta tags
  • Contact form + WhatsApp + Google Maps
  • Optimised performance and Core Web Vitals
  • Hosting/domain setup support
  • Native mobile apps
  • User login / customer area
  • Advanced e-commerce

Custom Web App / MVP

A small web system to move work away from Excel, WhatsApp, or improvised tools.

Founders with a product idea, teams stuck on Excel/WhatsApp, or anyone who needs to move a process online. We start from the first useful version, not the whole castle.

From €3,5004-8 weeks
  • Problem analysis and MVP definition
  • Customer area / login / dashboard
  • Data, booking, and content management
  • REST APIs and third-party integrations
  • Solid technical base, easy to evolve without rebuilding from scratch
  • Final documentation and handover
  • Long-term maintenance (separate retainer)
  • Native iOS/Android (responsive web only)

Strategic restyling of an existing website

Your site is old, slow, or no longer represents you? I fix it without starting over.

People who already have a site (even WordPress) but are losing leads to dated design, poor performance, or confused structure.

From €8001-2 weeks
  • Full audit: design, UX, performance, basic SEO
  • UI rebuild on main pages
  • Speed and mobile experience improvements
  • New CTAs and contact flows
  • Section rewrites with clearer copy
  • Final report on what changed and why
  • Full rebuild from scratch (different package)
  • Migrating e-commerce with thousands of products

Not sure which one fits? Drop me a line and we'll figure it out

Who I work with

I work with people who need more digital order.

Three different groups, one shared goal: a website or small web system that makes your work clearer and easier to contact.

  • Professionals and studios

    Accountants, lawyers, consultants, architects, and medical studios that need a credible, clear, contact-oriented site.

  • Local activities and services

    Gyms, beauty centres, B&Bs, restaurants, schools, and associations: services, hours, availability, contacts, and bookings in one clear place.

  • Founders and small teams

    People who need MVPs, dashboards, internal tools, or digital flows to move work out of Excel and WhatsApp.

How I work

Four simple steps, from the first call to the live site.

Simple method: understand the problem, define the scope, work from visible previews, then publish.

  1. I understand what you actually need

    A 20-30 minute free call. You tell me the problem, I ask the right questions. By the end you already have more clarity, even if we don't work together.

  2. I send a clear proposal

    I send a written proposal: what I'll do, what I won't, how much it costs, in what time. No surprises, no hidden costs, no 'we'll see later'.

  3. I build with visible previews

    You see progress while I work. Live preview always available, quick feedback on WhatsApp or email, decisions tracked without confusion.

  4. I publish and stay available

    We publish, double-check everything works, I show you how to handle small edits. For evolutions there are dedicated packages — no forced subscriptions.

Projects & case studies

A personal product and three professional case studies, clearly separated.

Bookable is mine end to end: live, with source. The professional case studies come from a live multi-tenant product, anonymized, with their numbers and their limits.

Personal project

Bookable — Multi-Style Booking Platform

Full-stack booking platform for local service businesses: public catalogue, validated booking-request flow and an admin dashboard. Personal project, live at bookable.itshassan.it, source in my public monorepo.

Bookable — Multi-Style Booking Platform — Editorial design variant

Problem

A local business wants to publish its services and take requests online with its own look, not another identical template. And when pitching, showing a single fixed design is a weak position.

What I did

  • Built solo, end to end: schema and migrations, Server Actions, admin area, three design variants and the deploy
  • One content model rendered in three complete design systems (Editorial / Warm / Bold), picked from a cookie read on the server
  • Next.js 16 App Router + Server Actions, Drizzle ORM on Neon Postgres, with a repository layer keeping pages thin
  • Zod validation shared between the form and the server; prices stored as integer cents; generic errors to the client

What it does today

  • Catalogue, detail page with gallery and booking-request form, in three designs switchable live
  • Admin behind a login (sealed iron-session cookie + bcrypt): services, prices, images and request status
  • Boots without a database (sample data plus a demo banner); live on a custom domain on Vercel
Stack: Next.js 16 · React 19 · Drizzle ORM · Neon Postgres · iron-session · ZodWhat it proves: I can design and ship a complete full-stack product — data layer, auth, validation and a distinctive design system — not just brochure sites.

Demo limits

  • A request system, not a scheduling engine: no slot availability and no double-booking prevention
  • The admin area is not public: the demo shows catalogue, detail and form
  • Requests sent from the demo really land in the project's dashboard: use made-up data
  • No rate limiting and no explicit CSRF token: MVP posture, stated in the README

Professional experience

Three pieces of work on a live multi-tenant product: what I faced, what I decided, what I can show. Company and product are anonymized; every number comes with its limit.

Production incident · ASP.NET Core

Eliminating a cross-request HttpClient header race in production

Intermittent 500s, broken sidebars and surprise logouts on a live multi-tenant platform, traced to shared mutable headers on a singleton HttpClient and fixed without touching a public contract.

  • Root cause found from Azure telemetry and stack traces, not from a local reproduction
  • 12 targeted regression tests, including 2 users making 40 overlapping calls through one client
  • Failures stopped recurring after deployment (operational observation)

Stack: ASP.NET Core · C# · HttpClient · Polly · Azure Application Insights · NUnit

Frontend architecture · Incremental migration

Leading a gradual Razor-to-React migration without stopping a live product

A live multi-tenant ASP.NET Core interface built on MVC, Razor, jQuery and Blazor could not be rewritten in one go. I owned the frontend path that let React grow inside it, page by page, with security boundaries and release safeguards.

  • Real React routes grew from 10 to 112 between the June baseline and the September snapshot
  • Entry JavaScript artifact 1,764,861 → 63,249 bytes (the entry chunk only)
  • 108 real routes on the staging line, 65 of them explicitly mapped to legacy URLs

Stack: React · TypeScript · React Router · Redux Toolkit · RTK Query · Vite (library mode) · ASP.NET Core · BFF

Backend architecture · Team workflow

Turning a monolithic BFF into feature-owned slices without changing a contract

During the React migration the ASP.NET Core backend-for-frontend became the merge bottleneck: one 5,657-line endpoint file, 128 HTTP registrations, DI that could drift between production and tests. I led the extraction into feature-owned slices, guarded by OpenAPI snapshots.

  • Central endpoint file 5,657 → 81 lines; 128 registrations → 0 handlers
  • All 307 Swagger operations preserved at the staging cutover
  • Running in testing, staging and production within roughly two weeks

Stack: ASP.NET Core · C# · Endpoint routing · Dependency injection · Swagger / OpenAPI · NUnit

Also from professional work

Hospitality e-commerce platform — UI standards and core flows

Complex enterprise product with a distributed team and multiple modules. Legacy codebase with scattered UI rules.

Problem

Duplicated components, different conventions across modules, frequent release regressions. Every new feature cost more than expected.

What I did

  • Introduced shared UI standards (classes, styles, naming) reused by the team
  • Refactored core flows (booking, catalog, checkout) in React + Redux Toolkit
  • Reusable patterns that made delivery more predictable

What it does today

  • Before: similar modules had different buttons, layouts, and behaviours
  • After: shared patterns made the interface more consistent and easier to maintain
  • Result: fewer subjective PR debates and fewer regressions on common screens
Stack: React · TypeScript · Redux Toolkit · REST APIs · Tailwind CSSWhat it proves: I can bring order to large, in-production codebases without rewriting them from scratch.

Bootstrap → Tailwind migration

Web app built on Bootstrap + vendor components with years of patches on top. Inconsistent layouts across similar pages.

Problem

Changing one style broke pages in unrelated places. Low iteration speed — every tiny change required manual checks across dozens of screens.

What I did

  • Audit of which components were actually used vs dead
  • Progressive page-by-page migration without freezing the roadmap
  • Built a set of reusable Tailwind patterns (card, form, layout, button)

What it does today

  • Before: changing one style required manual checks on unrelated pages
  • After: shared Tailwind patterns for cards, forms, layouts, and buttons
  • Result: faster UI iterations and more control over the design system
Stack: Tailwind CSS · Component refactor · UI standards · CSS architectureWhat it proves: I can modernise an existing site without throwing away the work already done.

Why work with me

The difference between a tailored solution and a prebuilt website.

  1. One person from idea to live site

    No handoffs between agency account managers, designers and devs. You talk to me, decide with me, get the work from me.

  2. Real experience on production products

    I bring a method already tested on real products, real users, and complex flows. I do not improvise on your project.

  3. Tailored solutions, not resold themes

    I build with React, TypeScript, and Tailwind when real control over performance, design, and flows matters. I do not resell a theme with two colours changed.

  4. Clear pricing, clear scope

    I tell you upfront what's in and what's out. Written quote, clear priorities, and tracked decisions.

  5. Realistic timelines, not promises

    A landing in a week. A site in 2-3 weeks. A web app MVP in 1-2 months. If I can't make it on time, I tell you immediately — not at the end.

  6. I don't disappear after launch

    I stay reachable on WhatsApp/email for fixes and questions. If you want an upgrade or a new section, I send you a separate quote.

Tech stack

A modern stack, chosen for your project. Not for the latest hype.

I pick the stack based on your project: for a 'simple' landing I won't bill you a full-stack web app, and for a web app I won't pitch you WordPress.

  • React
  • TypeScript
  • Vite
  • Node.js
  • ASP.NET / C#
  • Server Actions
  • Vitest / Playwright
  • Component-first architecture
  • CI lint+typecheck+test
  • Next.js
  • Tailwind CSS
  • Framer Motion
  • REST APIs
  • SQL Server
  • Zod
  • ESLint / strict TypeScript
  • Mobile-first / basic accessibility
  • Vercel / OVH deploy

Modern frontend

What the client sees: fast, responsive, easy to update later.

Backend & integrations

What makes things actually work: APIs, forms, auth, data handling.

Quality & delivery

What makes the difference: tested code, real performance, easy maintenance.

From the digital garden

Working notes, published while they grow — the thinking behind the work.

  • Git worktrees + hoisted pnpm: where did my binaries go?

    A git worktree is a fresh checkout — it has your files, not your node_modules. With pnpm's hoisted linker every tool binary lives at the original repo root, so eslint/vitest/next simply don't exist in the worktree.

    SeedlingPlanted Jun 26, 2026Last tended Jul 19, 2026pnpmgitmonorepotooling
  • Never throw at module load in Next.js

    next build imports your modules with production NODE_ENV but none of your runtime env. A top-level throw on a missing env var kills the whole build. Degrade instead.

    BuddingPlanted Jun 26, 2026Last tended Jul 19, 2026nextjspatternstil
  • Next.js 16: middleware.ts is now proxy.ts

    Next 16 renamed the middleware file convention to proxy.ts. Same API, better name — and a reminder that it should stay a cheap presence check, never your only auth gate.

    BuddingPlanted Jun 26, 2026Last tended Jul 19, 2026nextjsfrontend

Browse all notes →

Frequently asked questions

The things people ask me before starting. Direct answers.

  • WordPress is perfectly fine for blogs and very simple sites. I avoid it when a project needs more control over performance, design, security, or custom flows. In those cases I prefer building a lighter, faster solution that stays 100% yours.

Got another question? Message me on WhatsApp, I reply within 24 business hours.

Don't know if your site is costing you customers?

Send me the URL. Within 24 business hours I send you a clear audit with what to fix first and why.

I reply within 24 business hours — hassan.akkari01@gmail.com — Roma, Italia