Projects

One project at a time

Simon & Federica Wedding Website

Simon & Federica Wedding Website

1/28/2026

A clean, minimal wedding website for a couple's July 2026 wedding. Features event information, RSVP form with automated email notifications via Netlify Forms, photo gallery showcasing their 9-year journey, and countdown timer. Fully responsive design with mobile-first approach and serverless form handling.

HTML5CSS3JavaScriptNetlify FormsNetlifyGit
Browser Extension Manager UI

Browser Extension Manager UI

10/26/2025

The project simulates a browser extension manager where users can toggle, filter, remove, and theme their extensions.

ReactViteTailwind CSS 4AutoAnimateLocal data.json
Character Counter

Character Counter

10/3/2025

React mini app that counts characters, words, and lines in real time. Built with Vite and Tailwind CSS 4 using custom theme tokens, dark mode, and utility classes for a clean, responsive layout. Uses useRef for direct textarea access, useState for managing counts and limits, and useEffect for auto updates and saved theme preferences.

ReactTailwind CSS 4ViteuseRefuseStateuseEffectDark ModeCustom Theme Tokens
Newsletter Sign-Up Form with Success Message

Newsletter Sign-Up Form with Success Message

9/10/2025

Responsive React project where users can subscribe by entering their email. Built with functional components, props, and lifted state to handle form validation, success feedback, and conditional rendering with Tailwind CSS 4

React Tailwind CSS 4VitePropsState LiftingConditional Rendering
Advice Generator App

Advice Generator App

8/20/2025

React app that fetches random advice from the Advice Slip API. Built with functional components, useState and useEffect hooks, and styled with Tailwind CSS 4 for a clean, responsive layout.

ReactTailwind CSS 4ViteuseStateuseEffectAdvice Slip API
Network Project

Network Project

4/10/2025

Simplified social networking app inspired by Twitter, built with Django and JavaScript. Users can create, edit, and like posts, follow others, and view personalized feeds. Includes pagination, authentication, and JavaScript-based updates without page reloads.

DjangoJavaScriptBootstrap 5PaginationAuthentication
Mail

Mail

3/23/2025

A full-featured email client built with Django and JavaScript for CS50W. Includes inbox, reply, archive, and dynamic mailbox views.

DjangoJavaScriptHTML 5CSS 3
Swiss Romande Hikes

Swiss Romande Hikes

2/1/2025

CS50W Capstone project — a personal hiking guide and trail explorer for the French-speaking region of Switzerland. Built with Django and JavaScript, featuring an interactive Mapbox map, trail filtering, live weather data from Open-Meteo API, and a comment system with real-time updates. All hikes are based on my own experiences and include original photos and trail details.

DjangoJavaScriptSCSSMapbox GL JSOpen-Meteo Responsive Design
Ribe Photo Portfolio Web App

Ribe Photo Portfolio Web App

11/16/2024

A responsive photography portfolio built for a professional photographer to showcase visual galleries. Developed with Flask and Jinja templates, styled using SCSS and Bootstrap 5, and integrated with Cloudinary for optimized image delivery. Includes a working contact form powered by SendGrid and deployed on Heroku for reliable hosting.

PythonFlaskBootstrap 5CloudinarySendGridHeroku
Interactive Rating Component

Interactive Rating Component

5/3/2023

A small JavaScript project where users can select and submit a rating, then see a thank-you state. Built with HTML, CSS, and JavaScript to explore DOM manipulation and interactive UI behavior.

HTML 5CSSVanilla JavaScriptDOM ManipulationFigma