Web, mobile and AI development · Cagliari

I build web, mobile and AI systems
that actually work — and I understand your business before writing a single line of code.

I'm Gabriele, a Computer Engineering student in Cagliari (UniCa, Giua diploma 91/100). I work on web, mobile and AI — and before I build anything, I understand how your business works. Not just the first line of code, but the whole problem.

I select collaborations that align with what I want to learn and build.

I don't stop at the code.
I look at the whole context.

Frameworks, APIs and AI models are tools: what matters are goals, people and real constraints. I start from how your business works — I analyze the flow, design for the people who will use it, and hold the whole experience together.

01

I analyze the flow before building

I know which operations bring value and which are just noise. I don't automate what shouldn't be automated.

02

I build for real people

Not just for those who commission it, but for those who use the system every day. If the team doesn't adopt it, it doesn't work.

03

I think about the whole product

Security, data, user experience and operations are not extras. They are part of the project from day one.

In practice: when you tell me about your problem, I don't just hear a technical issue. I hear a process breaking, information getting lost, time disappearing. And I know where to intervene.

What changes, concretely.

Less time wasted

Repetitive tasks are reduced. Your team focuses on what really matters.

Fewer errors

Fewer manual steps means fewer chances to make mistakes. Data stays consistent.

More control

You have a clear view of what's happening in your business, in real time.

Smoother processes

Things run without hiccups. Clients get better service, the team works better.

Data safe and accessible

Important information is no longer on just one person's PC or a fragile spreadsheet.

Easier decisions

When data is clear and organized, knowing what to do becomes much simpler.

A real example.

Client — production project

Leon Lab — fitness, nutrition and booking ecosystem

Web dashboard, client portals and iOS/Android app (Expo) connected to the same Supabase backend (PostgreSQL, RLS, RPC and Edge Functions): the business works with a replicable model for other centers, but the entire flow was built around how Leon Lab actually operates (multi-location, packages, staff and clients).

Before: bookings on WhatsApp and Excel, double entries, staff and clients on different versions. Today: a single system — dashboard, app and portal aligned in real time. The team saves hours of alignment, clients book from the app without calling.

Supabase (Auth, RLS, Edge)React Native & ExpoReal-time bookingsProduction (Sentry, EAS)

The problem

Leon Lab (Cagliari, Sestu area) manages clients, lesson packages, calendars for personal training and nutrition across multiple locations. Bookings and communication went through WhatsApp and Excel per location: poor traceability, risk of inconsistencies on packages and lesson consumption, duplicate entries and hours spent just to stay aligned between internal staff and client.

The solution

I designed and built a serverless ecosystem: PostgreSQL with row-level security (per location and role), RPC and Edge Functions (Deno/TypeScript) for rules and sensitive operations — e.g. bookings, date and package constraints, reminders, integration with existing systems. Web side: a dashboard (HTML, vanilla JavaScript, CSS, Bootstrap, dashboards and flows for admin, manager, trainer, nutritionist and client). Mobile app (React Native, Expo, React Navigation): real-time availability, book / cancel / reschedule, history and credits, profile, push notifications (Expo Notifications, FCM / APNs). Sentry for production error tracking, EAS Build and store credentials for release. A single subsystem powers portal and panel — no double truth on operations and data.

The result

The team works on a single source of truth; clients choose and manage bookings from the app or portal without calling every time. Managers and staff have packages, calendars and location tools consistent with what the client sees. Fewer manual tasks and alignment between internal operations and gym experience — in line with the goal: less operational friction, more reliability and data under control.

Gestionale web — Dashboard & gestione
Dashboard gestionale Leon Lab: KPI, clienti, sedi e pacchetti

Gestionale & CRM — ruoli, pacchetti, flussi e strumenti operativi (browser)

Portale clienti — Prenotazioni & allineamento app
Portale prenotazioni Leon Lab allineato al gestionale e all'app

Portale clienti + canale app — stesse regole lato server: disponibilità, disdette e promemoria coerenti

Technical details
  • App iOS/Android: live availability, book/cancel/reschedule, history and credits, profile, notifications (confirmations, changes, reminders).
  • Web: records, locations, lesson packages and payments, rules and calendars (PT and nutrition), lesson consumption server-side (RPC) and role-based panels — architecture extendable to other fitness or wellness businesses.
  • Security and platform logic: RLS, security definer functions where needed, Edge Functions with identity/role verification (user creation, bookings, updates, notifications).
  • Quality and mobile release: Sentry, EAS, Git repository and deployment-aligned process (static hosting or CDN for frontend, a single Supabase project for API and data).
−70% Estimated time saved in booking management (vs previous approach)
1 Unified backend and data: dashboard, app and portal
0 No technical training required for staff
Consistency between staff, internal tools and what the client sees
Same ecosystem — product module

Trainex — custom training programs for the team

Trainex is the web module for multi-week programs, protocols (templates), locations and team-side review — modeled on how Leon Lab works (also multi-location in the Cagliari / Sestu area), not as generic «off-the-shelf» software for every gym.

Before: programs in files and chat, hard to align between trainers and locations. Today: programs, reviews and client area connected to the same system as the dashboard — everything consistent, from the tablet in the gym to the client.

Same Supabase databaseTrainer & programmingClient area with link

Why it exists

Programs were in files, chat and different tools: hard to have clarity on reviews, deadlines and progress across multiple locations. There was no single place where programming, notes on limitations and conditions, videos and status of the program stayed aligned with what the client sees and follows in the gym.

What Trainex does

It allows creating and updating programs across multiple weeks, with reusable templates, status tracking (e.g. active, expiring, in review, completed) and a client area (link) to view programs and videos. The infrastructure is in the same Supabase ecosystem (data, permissions, multi-location), interface in Italian and usable from a tablet in the gym.

Value for the business

Fewer manual steps and fewer errors on weights and progressions between weeks. The trainer programs, the team validates in review what becomes official, the client sees a consistent picture during training — aligned with the dashboard and bookings.

trainex — Schede, protocolli, sede
Trainex: viste su schede, protocolli e avanzamento clienti per sede

Trainex — programmazione, revisioni e tracciamento collegato al resto del sistema

Technical details
  • Clients and programming filterable by location and status; expiring and in review programs always visible.
  • Protocols and reusable templates, videos and texts, notes on injuries and limitations; data export where needed.
  • Same logic as the Leon Lab dashboard: a single model for clients, locations and permissions.
1 Module connected to the same backend as the Leon Lab case
Locations and trainers: same records and permissions
Review cycle between trainer team and client delivery
Data ready for export or consultation via link
Back to Leon Lab case →

Simple. No surprises.

You don't need to prepare anything special. One call is enough for me to understand where I can help.

1
Analysis

I understand how you work today: which tools you use, where you waste the most time, what you'd like to improve. No long questionnaires — one conversation is enough.

2
Solution development

I build what's needed, starting with the most urgent things. You work with the solution before it's fully finished, so you can give real feedback from the start.

3
Continuous improvement

When the system is in use, new needs emerge. I'm available for adjustments, expansions and support. I don't disappear after delivery.

I don't work with everyone. And that's fine.

I prefer to be direct: so you don't waste your time and I don't waste mine.

It's for you if...

  • You want someone who understands product and tech without reducing everything to "put an AI here"
  • You need support on web, mobile, AI or automations with an engineer's mindset, not a checklist
  • You prefer clarity and honesty about what makes sense to do now and what doesn't
  • You want to work with someone who learns fast and brings fresh energy to serious projects
  • You want to improve processes, data or digital experience without complicating what already works

It's not for you if...

  • You're looking for the classic "hourly programmer" without dialogue about the why of the work
  • You want a magic solution without commitment to defining the problem
  • Price is the only criterion and not the value or mutual learning
  • You're not available for an initial conversation to align expectations

Let's talk about your idea, project or collaboration.

Tell me the context: if I can help you concretely, I'll propose a next step. If it's not the right time, I'll tell you clearly.

Even for a vague idea — 20 minutes is enough to figure out if it makes sense to move forward.

Any doubts? That's normal.

How does a first call work?

No formal presentations. I ask you how you work today, which tools you use, where you waste the most time. In 20 minutes we understand if the problem is in my wheelhouse and what would make sense to do. If it's not the right time, I'll tell you clearly.

Do you work with small businesses or only with structured companies?

Both. Most of my projects started with small businesses or individual professionals who had a concrete problem — you don't need to be a big company to need a tailored system.

Can I contact you if I only have an idea and don't know what to do yet?

Absolutely. In fact, that's the most common case. I help you get organized: together we define what's a priority, what's noise, and whether it makes sense to build something or if a tweak is enough.

How much does a project cost?

It depends on what needs to be done. After the first chat I give you a transparent estimate — no hidden hours, no surprises. I prefer projects where I know I can make a difference, not volume.