Full Stack Developer -- React, Next.js, Node.js, MongoDB, TypeScript
Based in Lisbon, available worldwide.
I build websites and web applications for real businesses -- from landing pages to full e-commerce platforms with payments, shipping, and admin panels. After 15+ years running my own company in the surf industry, I transitioned into software development through the Ironhack bootcamp. My background as a founder and CEO gives me a business perspective that most developers don't have.
orlandopedrazzoli.com | pedrazzolidigital.com | pedrazzoliorlando@gmail.com
Frontend
Backend
Payments & Auth
Tools & Deploy
| Project | Stack | Description |
|---|---|---|
| Elite Surfing Brasil | React 19, Node.js, Express, MongoDB, Stripe, Pagar.me V5 | Full e-commerce with PIX, Boleto, credit card installments, Melhor Envio shipping, admin panel and direct sales CRM |
| Centro Dentario Colombo | Next.js 15, TypeScript, Clerk, Vite 7 | Dental clinic website with patient portal, admin panel, bilingual PT/EN, GDPR compliance |
| InstaRadar | Next.js 16, TypeScript, Stripe, Better-auth, Drizzle ORM | Instagram analytics and tracking SaaS with dashboard, anonymous viewer, content downloader |
| FollowerScan | Next.js 16, TypeScript, Stripe, Clerk | Instagram follower analysis SaaS -- 100% browser-side processing, freemium model, PDF export |
| Go Portugal Tours | Next.js 14, TypeScript, Radix UI, Zod | 24 tours with dynamic pricing by group size, bilingual content, data-driven routes |
| Ferri Schoedl Advocacia | Next.js 15, React 19, TypeScript, Tailwind CSS v4 | Law firm website with book store, courses platform, custom dark/light theme, LGPD compliance |
| Rana's Twist | Next.js 15, TypeScript, MongoDB | Digital menu and restaurant management system with admin panel, QR code generator, bilingual PT/EN |
| Street Paint | Next.js, TypeScript, MongoDB | Interactive car-part budget estimator with SVG diagram, chatbot, WhatsApp API |
| B2B Distribuidores | Next.js 14, React 18, MongoDB | B2B order management platform with multi-supplier catalog, custom price tables, PDF/Excel export |
| Pedrazzoli Digital | React 19, Vite 7, Tailwind CSS v4 | Agency landing page with contextual WhatsApp conversion per section/plan, dark mode |
Every full stack project listed above has a backend I designed and implemented. Here is a summary of the APIs, what they do, and the patterns I follow.
E-commerce APIs (Elite Surfing Brasil, B2B Distribuidores, Ferri Schoedl)
RESTful APIs built with Node.js and Express (Elite Surfing, B2B) or Next.js API Routes (Ferri Schoedl). Endpoints cover the full e-commerce lifecycle: product CRUD with image upload via Cloudinary and Multer, cart persistence synced between client and server, multi-step checkout with Stripe payment intents, webhook handling for payment confirmation, order management with status updates, promo code validation, shipping calculation (Melhor Envio integration), and email notifications via Nodemailer. Authentication uses JWT stored in httpOnly cookies with separate middleware for customer and admin roles.
The B2B platform adds supplier-scoped product catalogs, custom price table management with margin calculations, and order export to PDF (PDFKit) and Excel (SheetJS).
SaaS APIs (InstaRadar, FollowerScan)
Next.js API Routes with TypeScript. InstaRadar uses Better-auth for session management, Drizzle ORM for database queries, and Stripe for subscription billing with webhook-based plan activation. FollowerScan processes Instagram data entirely on the client for privacy, but the API handles Clerk authentication, Stripe checkout sessions, and usage tracking.
Content and Booking APIs (Go Portugal Tours, Rana's Twist, GrowKind World)
Go Portugal Tours uses Next.js server actions and API routes for form submission with Zod schema validation, dynamic pricing calculation based on group size, and email delivery. Rana's Twist has a full CRUD API for menu management: dishes with categories, dietary tags, spice levels, and Cloudinary image upload, plus QR code generation for restaurant tables and JWT-protected admin routes. GrowKind World uses Next.js API routes for lead capture, Stripe checkout for books and courses, and a MailerLite integration for newsletter management.
Authentication and Management APIs (Centro Dentario Colombo, Real Estate Platform)
Centro Dentario Colombo integrates Clerk for authentication with role-based access (patients vs admin). The Real Estate platform uses Express with Prisma ORM on MongoDB, implementing full CRUD for property listings, a messaging system between users, JWT authentication with httpOnly cookies, and Cloudinary integration for property images.
Common patterns across all projects:
- RESTful design with consistent naming conventions and HTTP status codes
- Input validation with Zod or custom middleware
- Error handling middleware with structured error responses
- Authentication via JWT (httpOnly cookies) or Clerk/Better-auth
- File uploads processed with Multer, stored in Cloudinary
- Database operations through Mongoose ODM or Prisma ORM
- Webhook endpoints for Stripe payment events
- CORS configuration for separated frontend/backend deployments
- Environment-based configuration for dev/staging/production
2005-2010 Production Manager -- Surf brands (FCS, Creatures of Leisure, Gorilla Grip)
2010-2023 Founder & CEO -- Elite Surfing (surf accessories brand, 15+ employees)
2023-2024 Ironhack Bootcamp -- Full Stack Web Development (MERN Stack)
2024-now Full Stack Developer -- Pedrazzoli Digital (freelance)
2024-now Content Analyst -- Accenture Portugal
- Building GrowKind World -- educational platform for neurodivergent childhood (Next.js 16, React 19, MongoDB, Stripe)
- Building Ferri Schoedl Advocacia -- law firm website with book store and courses (Next.js 15, Stripe)
- Migrating Pedrazzoli Digital to Next.js 15 for server-side SEO
- Reach me at pedrazzoliorlando@gmail.com
- Lisbon, Portugal -- available for remote or hybrid