Amine Affif

From backlog to prod.

Freelance full-stack developer - Rails, Next.js, React.

years

of product & technical experience

Rails + Next.js

the right tech for the job

From brief to production

I scope, I build, I ship

Trusted by

Testimonials.

I used to track bookings in a notebook and hope I didn't slip up. Now it's all clean: payments, deposits and reminders go out on their own. Zero double-bookings since, and I've won back a ton of time.
Owner - Vehicle rental agency
We had tickets rotting in our backlog for months. In a few days it was shipped, tested, with a clean PR and a demo. Zero friction with our team, we booked him again right away.
CTO - SaaS startup
SQLAWSCI/CDTwilioSendGridOpenAIPlaywrightPhotoshopAfter Effects

Work

Selected projects.

L'Étudiant

Keeping a high-traffic product alive

L'Étudiant

When tens of thousands of people use a product, the smallest regression shows instantly. That's the ground I worked on at L'Étudiant, the platform connecting future students with enrolled ones for honest reviews of schools.

The problem
The product ran on an old, complex codebase, loaded with tech debt. Adding features to it without breaking anything is the trickiest exercise there is.
What I shipped
I stepped into the existing code and shipped: back-end and API in Ruby on Rails, web in React / Next, mobile in React Native. Review system, guidance paths, matching. Every time working with the legacy, never around it.

Key features

  • Full-stack development (Rails, React / Next)
  • Mobile app (React Native)
  • Review system & guidance paths
  • Changes on legacy, no regressions

Result : Features shipped and maintained for an audience of tens of thousands, on a complex codebase, without ever breaking prod. Proof that a fragile codebase can be trusted to me, no hesitation.

Ruby on RailsReactNext.jsReact NativePostgreSQL

The site that helped raise funds

Mantanox

Client · dev & design

A founder had a few days to present his project to investors and secure funding. An ambitious project, but all he had to work with: a few photos taken on a phone.

The problem
Turn a few smartphone photos into a site worthy of the project, in a few days, to convince investors and secure the raise.
What I shipped
In two evenings, solo: design, copywriting and development in Next.js. From those raw photos, I created visuals worthy of a real shoot, 3D renders and motion, and built a full landing page that showcases the project, section by section, ready to show investors.

Key features

  • Full landing page (Next.js)
  • Design, copywriting & art direction
  • Pro visuals, 3D schematics & motion from amateur photos
  • Delivered in 2 evenings, in time for the investor pitch

Result : Goal reached: the founder raised the funds for his project. The site made it credible to investors. In his words, "the site spoke for me."

Next.jsDesignMotion3D

Running heavy AI in production

VibeCheck

Client · SaaSView live

Running heavy, demanding AI audio models online and profitably: that's the challenge VibeCheck's founder brought me. A SaaS designed and built end to end: the app compares two tracks and computes their similarity score, perfect for checking a cover.

The problem
The real trap: these models can blow up response times and the server bill. It had to stay fast, secure and economically viable.
What I shipped
I built a full self-service SaaS: Next.js front-end, a FastAPI back-end running TensorFlow, Stripe subscription, encrypted files, automatic cleanup, all deployed on a VPS with NGINX.

Key features

  • Track comparison & similarity score
  • Instrument & vocal separation
  • Analysis history
  • Stripe subscription · encrypted files

Result : ≈ 15 s to separate a track · 1,200+ files processed · recurring Stripe subscriptions. The more technical it gets, the more fun I have.

Next.jsTypeScriptFastAPITensorFlowStripePostgreSQLRedisNGINX
DreamLocation

I digitalized an entire business

DreamLocation

Client · rental agencyView live

A vehicle-rental agency was losing clients to double-bookings, and hundreds of euros to return mistakes. The cause: everything was handled by hand, on notes and from memory.

The problem
No market tool fit how they worked. They needed their own, built for them, and fast.
What I shipped
In one week, solo, I built the tool from scratch: a showcase site with online booking, and a back-office to run everything. Payments, deposits and holds via Stripe, an automated email sequence, a loyalty program, and dashboards where every part of the business becomes a metric.

Key features

  • Online booking + Stripe payments (deposits, holds)
  • Full management back-office
  • Automated email sequence
  • Operations dashboards & loyalty program

Result : Not a single double-booking left, no more costly errors, bookings and payments automated end to end. Their whole business went digital, and the site is still running today.

Next.jsTypeScriptFirebaseStripeDockerCloudinary

Versatility

Other ground.

E-commerce D2CE-commerce D2C

End-to-end e-commerce (dev + marketing)

E-commerce D2C

E-commerceBusinessMarketing
View project
Health CRMHealth CRM

A CRM built for hospital sales

Health CRM

SaaS B2BSantéCRM
View project
ScalyScaly

SaaS product (startup)

Scaly

SaaSStartupNext.js
View project

About

Full-stack developer, product-minded.

I've been coding for 5 years, mostly in Ruby on Rails and Next.js / React. I've built SaaS products, booking platforms, e-commerce stores, mobile apps and dashboards - from a secure back-end to a polished front-end.

What sets me apart: I don't just ship code. I understand the product, the user experience, the UI and the business side - so I make technical choices that serve specific goals, not the other way around.

As a freelancer, I work as backup: a scoped need, a clean delivery.

What I do for you

I take your , plug in your , and ship .

Bugs, features, tech debt: shipped as clean pull requests.

  1. Backlog

    bugs, features, tech debt

  2. Integrations

    Stripe, APIs, email, back-offices

  3. Prod

    shipped as tested PRs, remotely

Remote · async · evenings & weekends · delivered as a tested pull request + demo. Pricing on quote, based on the estimate.

FAQ

Frequently asked questions.

How does white-label backup work for a web agency?

You send me the context and repo access, I quote the batch, you approve. I plug into your tools and deliver tested pull requests. White-label means your end client only ever sees your agency, never my name.

What can you hand off to a freelance Rails or Next.js developer?

Bug fixes, feature development, API integrations like Stripe, legacy takeovers and maintenance. In short: whatever is piling up in your Ruby on Rails, Next.js or React backlog that your team has no time to handle.

Fixed price or day rate: how do you charge?

Mostly fixed price: a defined batch, a price announced before work starts, no surprises. For recurring needs, a monthly pack with reserved days.

How quickly can you start?

Usually within a few days, the time it takes to scope the need. I work remotely and asynchronously, with an answer within 24 business hours and a first call within the week.

Why hire a freelance backup instead of recruiting?

Because the need is often temporary: a workload spike, an absence, an overflowing backlog. A backup starts within days, costs only for the duration of the job and stops with no commitment. Recruiting makes sense once the workload becomes permanent.

Do you work remotely and in English?

Yes. I'm based in France and work remotely with web agencies and product teams, in French or English.

How do you find a reliable web developer?

Look at real projects shipped to production, not just a résumé. Then run a test on a small fixed-price batch: code quality, communication, meeting the deadline. That's exactly the entry point I offer, a first scoped batch that lets you judge on evidence.

Packages

A bug to squash.

Half-day · ~3-4 h

A bug, a small fix, a light integration, an express audit or technical advice.

A feature to ship.

Full day · ~1 day

A scoped feature, an integration (Stripe, API, emailing) or a batch of tickets.

Popular

A product to build.

Project pack · 2-5 days (spread out)

A complete feature, a back-office / dashboard, or a scoped MVP.

Ongoing backup.

Monthly retainer · monthly, async

An ongoing need: maintenance and improvements, days reserved each month.

Contact

Shall we look at your backlog together?

15 minutes to scope your need. No commitment.

I take on a limited number of projects each month.

15-min slot via Calendly.