Crowd Legal
Platform for law firms handling mass claims, where a single case can involve hundreds of affected people. It classifies and extracts data from hundreds of documents at once, fills...
Projects shipped
Laravel packages, products, and things I wanted to exist.
Selected work
Platform for law firms handling mass claims, where a single case can involve hundreds of affected people. It classifies and extracts data from hundreds of documents at once, fills...
A multi-group real estate CRM in three parts: the app agencies work in, the public listings portal, and a website per group. All three run on the same data, so a network's properti...
Platform for managing claims and meetings efficiently.
A personal legal assistant you can ask anything, with no appointment and no billed minutes. It answers in plain language instead of legalese, and covers the areas people actually r...
Contract work for Horse & Country, an equestrian streaming platform: live events, series and documentaries, sold by subscription to viewers around the world. The portal is the side...
Contract work for Horse & Country. The panel the streaming platform is run from, the other half of H&C Streaming Portal. It sits on top of Kaltura, which holds the video, and InPla...
Drive ugly, come back uglier. You bolt whatever the garage coughed up onto a dead man's car (side blades, spinning saws, a flamethrower if the run went well) point it at the bad pa...
Real time and historical reporting for a digital out of home network, taking thousands of transactions per minute off the screens and answering questions over any window of time. T...
Everything else
Eloquent-style models for Meilisearch, for when the index is the database. Laravel Scout mirrors a database model into a search index, but some documents have no life in the databa...
A terminal UI for editing Carmageddon car and opponent stats, without hand-editing the encrypted files. Pick a car, change its mass or top speed, review what you changed, save. It...
Decrypts the data files of Carmageddon (Stainless Games, 1997) and dumps every car's stats into a readable table. The game ships its cars, opponents, races and power-ups encrypted...
Driver-based captcha for Laravel: one API over Cloudflare Turnstile and Google reCAPTCHA v2/v3. Switching provider is one env variable, with no code changes.
A self-hosted meeting scheduler for Laravel: an on-brand alternative to Calendly that does not send your bookings to someone else's database. Availability lives in config, bookings...
A floating feedback button for Laravel apps. The user picks a type (bug, suggestion, other) and writes a message; the report lands in your database with the context already attache...
Reversible PII anonymization for Laravel. It detects personal data (Spanish and English packs included), swaps it for stable tokens, realistic surrogates or plain redactions, and p...
A cookie consent banner and preferences modal you drop into a Laravel app. Pure CSS, no Tailwind. GDPR and AEPD friendly: granular categories, preferences that can be reopened late...
Polymorphic taxonomies for Laravel. Declare tags, categories or any classification of your own in config: hierarchical or flat, multi-tenant, multi-locale, with cross-locale search...
Modals and dialogs for Laravel, Livewire and Alpine. 10 themes, 11 sizes, zero runtime dependencies, and it works with or without Livewire. It also provides the CSS variables the r...
Board game rules, answered instantly. Upload the rulebook as a PDF, ask anything in plain language, and get the answer with a citation to the exact page.
Polymorphic file storage for Laravel, doing the parts that usually get reinvented per project: direct uploads to S3 or R2, granular access control, streaming for sensitive content,...
A Spanish political test that places you on nine axes at once, instead of the usual left-right line: economy, tradition, religion, civil liberty, free speech, identity, territory,...
Treat an external API like an Eloquent model, without forcing it into your own tables. Each source declares its fillable fields, casts and mappings, and points at an origin: a plug...
Toast notifications for Laravel, Livewire and Alpine, with no JS dependencies and no CSS framework assumed: 11 themes, 5 types and 7 positions in pure CSS, dark mode included. Live...
Drag and drop sorting for Livewire, built on SortableJS. Livewire ships no drag and drop, and the official livewire-sortable leans on Shopify Draggable: heavier, barely maintained,...
The most complete guide about Andorra: everything you need to know to move there and live there, covering residency, taxes, healthcare, education and work.
Immersive digital design from Andorra: 3D web experiences, branding and digital products. A single-page site with full-screen sections built on Next.js, React and Three.js.
The Laravel community of Spain: connecting Laravel developers across the country through meetups, talks and open source.
The most complete MySQL tutorial in Spanish, from SQL fundamentals to advanced administration. It also includes SQL AI, a free MySQL assistant.
The Laravel community of Andorra: meetups, networking, code reviews, open source projects and mentoring in the Principality.
A post-Agile methodology for building coherent systems in the AI era. Align, Realize, Consolidate: a framework for pattern-driven development.
Platform to help people affected by various issues find resources, support and solutions.
Capture a whole WhatsApp conversation from the browser console. Paste it into the developer console with WhatsApp Web open and it scrolls the chat from the very beginning to the en...
Innovative business solutions, built around confidentiality and long-term client relationships across critical sectors.
Global context for Laravel, so request-wide values stop being threaded by hand through every call. Set a value once and read it anywhere, scope Eloquent queries to it automatically...
A comprehensive Laravel toolkit plugin for Claude Code. 32 specialized skills across 10 categories to analyze, debug, scaffold, and optimize Laravel applications directly from your...
Roles and permissions for Laravel, with zero configuration. Spatie Permission is the obvious choice, but it stores permissions in the database by default, does not handle scopes we...
Localized routes for Laravel. Define a route once per language and the package generates the rest, so URLs stay properly mapped to each locale and the usual route() helper handles...
Translated strings for Laravel, without the usual trade-off. Laravel's __() makes you pick: pass a key and the file becomes unreadable because you cannot see what is there, or pass...
Scrape any URL from Laravel, with Puppeteer underneath. Spatie Crawler already exists, but it can leave Chromium instances open and slowly eat your server memory. Larascraper drive...
An action-based pattern for Laravel: business logic in small self-contained classes instead of controllers, models or service objects. Actions run synchronously or get pushed onto...
The job and professionals portal for Andorra: offers, companies, paperwork and guides. Everything you need for working life in the Principality, from tech to hospitality, construct...
The site for Reines, a network of Spanish real estate agencies, and one of the group websites running on InmoQueen: its listings come from the same shared back office the agencies...
A software development company specialising in Laravel, Next.js, Vue.js, React and hybrid mobile development.
A PHP package to normalize URLs and count the unique ones, so the same address written five different ways is recognised as a single URL.
An app to manage job applications, interviews, assessments, assignments, contacts and more. Created with Laravel/Livewire and Tailwind.
Custom software development for web and mobile, using Laravel, Next.js, React and Vue.js, with over 15 years of experience across legal, fintech, streaming and real estate.
Built the after-sales client area for Inmobiliaria Brosh, where buyers follow their purchase once the deal is closed. Laravel and Filament.
Built an application to manage the daily menus of L'Orri, a restaurant in Andorra.
Worked on the new micasino.com website.
A feature-length documentary on the history of the first person shooter, the genre that defined PC gaming, told through interviews with the people who built it. I took part in the...
Keepers for Laravel: classes that own the value of a model field. Setting field values on create or update usually ends up in observers, which bloat with repeated code, or in the m...
Achievements, trophies and badges for Laravel. Generate an award class with make:award, define when it unlocks, and the package handles the rest.
This is my personal website and the site you are watching, created with Laravel and static Markdown files. It all started with this tutorial I made when I was on holiday. I created...
The most complete publication in spanish about coffee and its related lifestyle. Cafeguias is the main source of information about coffe, including information about its history, i...
A simple but complete browser based Markdown editor integrated with GitHub, BitBucket and Dropbox. The created or imported documents are kept on the browser localStorage. However y...
A complete Markdown tutorial where I explain all about this markup language. I fist explain what is Markdown to later explain both the basic and advanced syntax of the language in...
Valor Web is another website worth calculator. This project has been a big issue since it was realsed, as most of the APIs the project was connecting to were closed. Even Alexa clo...
The best place to find how long does it take to complete any existing game. With almost 100k games and a community of users recently created who post their gameplays. This project...
A Framework to create MVC plugins for WordPress, featuring an improved router, a complete ORM, services, service providers, an asset manager and much more things. I researched on m...
Made this small web application to test if the webcam of your computer or the camera of your phone is working as expected. It will also allow you to take photos with it and store t...
Built the deals platform for Mama Deals, handling the voucher and promo codes behind the daily offers.
Built the website for Qualery.
Built the website for 1328 Studio. The site is no longer online.
Started Neoguias in 2015 as an improvement of my old personal tech blog. By the time I didn't realize the full potential of the website. After six redesigns and more than a thousan...
Built the website for Hacer Creativo, the higher design school in Zaragoza.
The third and last generation of the website for Blender, a vending company in Madrid. They wanted search traffic, another design and settings they could change without calling a d...
Built a new website for Hantec Markets.
Built the website for Hotel Reigosa, in Ponte Caldelas.
Built the website for Arroz Brazal de Aragon, a single-variety rice grown with water from the Pyrenees.
Built the website for the Villa Andurina guesthouse, together with the hotel booking platform behind it.
Built the website for Asociacion APES.
Built the website for Grupo G.A. Hotels & Resorts, a hotel group in Ourense.
Built the website for Hotel Francisco II, in Ourense.
Started Jarcors in 2011 with my friends Alvaro Fernández, Lucas, Alvaro Factor and Félix. Our intention was just to have fun writing about gaming, one of our big passions. The webs...
The second generation of the website for Blender, a Spanish maker of soluble products for hot drink vending machines. They asked for a site built entirely in Flash, the way their r...
The first generation of the website for Blender, a Spanish maker of soluble products for hot drink vending machines. Plain PHP on a CMS I wrote myself, with articles and news, edit...
As usually, it all started with someone saying it was not possible to do something or that I would not be able to do it. BMC Hosting was my first profitable business, providing hos...