mood global services mgs logo

Junior Frontend Developer

About this role

Position: 

Junior Frontend Developer, freelance contract

Location: 

Remote within Europe, with optional time on site in Amsterdam or Naples

Engagement: 

Project based. Short-term assignments attached to a specific client project with an agreed scope and end date, with further projects agreed separately. The first assignment is expected to start between Q4 2026 and Q1 2027

Availability: 

Indicative availability of around four days per week while an assignment is active. The contractor sets their own schedule and working method

Compensation: 

EUR 1,500 per month, net of VAT. VAT is added on top of the fee where applicable. Invoiced monthly against the active assignment

Status: 

Independent contractor invoicing under their own VAT, KVK, or partita IVA number. Free to work for other clients, not exclusive to Moods, and no employment relationship is created by the assignment. Income tax and social contributions are the contractor's own responsibility

Growth: 

Assignments grow in scope and complexity with track record, and the fee is reviewed per project

How to apply: 

A portfolio, a GitHub profile, or a link to work you have shipped is required. See Hiring process and what happens next


About Moods Studio

Moods Studio is a product studio and development agency based in Amsterdam, working across AI, blockchain, and Web3. We build a broad range of software, from DeFi infrastructure and tokenization platforms to AI-driven applications, SaaS products, and mobile apps. We work in a small, senior-led team. Work is owned end to end, from the first conversation about a problem through to the release that puts it in front of users. Everything we build ships to real clients on real deadlines.


About the position

This is a freelance contract for a junior frontend developer who can take a design in Figma and turn it into a fast, accessible, production-ready interface. That skill is the centre of the work. We care about the craft of translation: matching spacing, typography, states, and motion to the design with precision, then making the result responsive, performant, and maintainable in code. Work is scoped per project. Each assignment is attached to a specific client project with a defined scope and an end date, and you deliver against that scope. Assignments are built on Next.js, React, and Vercel, and some involve cross-platform mobile work in React Native, so you may work across web and mobile depending on the project. We use AI tooling daily and expect you to use whatever makes you effective. It is not the main criterion for the engagement. What matters most is going from Figma to production cleanly and reliably, against an agreed scope.


Our stack

Web: Next.js (App Router, React Server Components, Server Actions, SSR, SSG, ISR, and the edge runtime), React, and TypeScript in strict mode. Styling and UI: Tailwind CSS, shadcn/ui, and Radix primitives, with a component-driven approach and shared design tokens. State and data: TanStack Query for server state, lightweight client state with Zustand or React context, and typed API layers. Backend and data services: Supabase (Postgres, Auth, Realtime, Storage) and REST or typed API integrations. Mobile: React Native with Expo and EAS Build, shipping to the App Store and Google Play. Web3, where relevant: wallet connection and on-chain reads and writes with wagmi and viem. Infrastructure: Vercel for deployments, preview environments per pull request, edge functions, and Speed Insights. Git and GitHub with pull request reviews and CI. You are not expected to know all of this. You should be strong in React and comfortable in a modern frontend stack, and able to pick up the rest of a project's tooling quickly.


What you will do

Turn Figma into production: Implement designs as pixel-accurate, responsive, accessible interfaces. Respect spacing, typography, component variants, interaction states, and motion, and stay faithful to the design intent.

Build with Next.js and React: Develop features using the App Router, server and client components, and server actions. Write reusable, well-typed components and keep the codebase maintainable.

Ship to Vercel: Push work through preview deployments, review changes in context, and release to production.

Work on mobile where the project calls for it: On assignments that include mobile, build shared cross-platform interfaces in React Native and Expo and help ship them to the app stores.

Deliver against an agreed scope: Work to the deliverables and end date set out for the assignment, flag scope changes as they arise, and agree them before taking them on.

Hold the line on performance and accessibility: Keep Core Web Vitals and Lighthouse scores where they should be, optimise bundles and rendering, write semantic HTML, and meet WCAG 2.2 AA where it applies.

Collaborate and integrate: Work with designers on implementation detail and with backend developers to wire up APIs, Supabase data, and, where relevant, on-chain interactions.

Use AI tooling well: Work with AI-assisted tools such as Claude, GitHub Copilot, and v0, and help integrate AI features into the frontend where a product calls for it.


What we are looking for

You can take a Figma design and reproduce it faithfully in code, down to the detail, and make it responsive across breakpoints.

You are solid in React and JavaScript or TypeScript, and you understand components, hooks, and state.

You have hands-on experience with Next.js, or you have built enough with React that you can pick it up quickly.

You write readable code and you care how an interface looks and behaves, not only whether it works.

You are comfortable with Git and a pull request workflow, and you both receive and give review well.

You can work independently against an agreed scope, manage your own time, and raise a problem early rather than at the deadline.

You are set up to invoice as an independent contractor, or you are able to be before an assignment starts.

You have professional working proficiency in English.


Nice to have

Experience shipping with Vercel and using preview deployments.

Experience with React Native or Expo and shipping a mobile app.

Familiarity with Tailwind, shadcn/ui, or Radix.

Familiarity with Supabase or another backend-as-a-service.

Exposure to Web3 frontends with wagmi or viem.

Experience integrating an LLM API into a frontend.

Previous experience working on a freelance or contract basis.

Professional working proficiency in Dutch or Italian in addition to English.


Engagement, terms and compensation

This is an assignment for an independent contractor and it does not create an employment relationship. Each engagement is attached to a specific client project with an agreed scope, deliverables, and end date, and the monthly fee applies for the duration of that assignment. You invoice Moods monthly under your own VAT, KVK, or partita IVA number, and you are responsible for your own income tax and social contributions. You work with your own tools and set your own working method. The engagement is not exclusive and you are free to take on other clients throughout. Further projects are offered and agreed separately, and neither side is under any obligation to continue once an assignment ends.

Fee: EUR 1,500 per month, net of VAT. VAT is added on top of the fee where applicable. You invoice monthly against the active assignment.

Engagement: Project based. Assignments are short-term and attached to a specific client project with an agreed scope, deliverables, and end date. The first assignment is expected to start between Q4 2026 and Q1 2027.

Availability: Indicative availability of around four days per week while an assignment is active. There are no fixed hours and no required office days. You organise your own schedule and working method around the agreed deliverables.

Status and tax: You work as an independent contractor under your own VAT, KVK, or partita IVA number, and you are responsible for your own income tax and social contributions.

Scope growth: Assignments grow in scope and complexity with track record, and the fee is reviewed per project. There is no obligation on either side to agree a further assignment.

Real work: You ship production software used by real clients and users, across web and mobile.

Location: Remote within Europe. Time on site in Amsterdam or Naples is available if you want it and is never required.


Equal opportunity

Moods Studio is an equal opportunity organisation. We assess every application on the skills and experience that are relevant to the role, and we do not discriminate on the basis of age, gender, gender identity or expression, sexual orientation, ethnicity, nationality, religion or belief, disability, or any other protected characteristic. If you need an adjustment at any stage of the process, for example a different interview format, extra time, materials in an accessible format, or a scheduled break, write to info@moodglobalservices.com and we will arrange it. You do not need to explain why, and asking has no bearing on the outcome of your application.


How your data is handled

Controller. Mood Global Services B.V., KVK 85502081, Spinozastraat 47-C, 1018 HJ Amsterdam, the Netherlands, is the controller for the personal data you submit through this application. Purpose. We use your data only to assess your application for this role and to communicate with you about it. We do not use it for anything else and we do not share it with third parties for their own purposes. Legal basis. Taking steps at your request before entering into a contract, together with our legitimate interest in assessing candidates for an open role. Where we ask to keep your details on file for future openings, the basis is your consent, which you can withdraw at any time. Retention. We keep application data for 6 months after the process closes, and then delete it, unless you agree to a longer retention period so that we can consider you for future roles. Your rights. You can ask us for a copy of your data, ask us to correct or delete it, object to or restrict how we use it, and request it in a portable format. You can also lodge a complaint with the Dutch data protection authority, the Autoriteit Persoonsgegevens. Contact. Write to info@moodglobalservices.com for anything relating to your data or to exercise any of these rights.

Read our privacy policy

Hiring process and what happens next

A portfolio is required. Include a link to your portfolio, your GitHub, or projects you have shipped, with a short note on what you built and which parts were yours. We aim to respond to every applicant within 5 business days of receiving the application. The process has three stages. First, a 30-minute introductory call about the role and your questions. Second, a 45-minute technical conversation about work you have shipped, where we read the code together. Third, a practical exercise: turning a small Figma design into a working component. The exercise is time-boxed to two hours, it is unpaid, and we send the brief and the assessment criteria in advance. We give a decision within 5 business days of the final stage, and we give feedback whether or not we make an offer. We never ask for salary history. Please do not include your date of birth, marital status, nationality, or a photograph in your application. We do not use them in any assessment and we would only have to delete them.


Apply for this position

Upload Resume

PDF, DOCX (max. 3MB)

Upload Cover Letter

PDF, DOCX (max. 3MB)
I agree to the processing of personal data