Welcome to 50ml.org
A liquor mini-bottle collection
Mini-bottles, fifties, minis, nips. They have many names around the world. I began collecting 50ml liquor bottles sometime in 2006.
I’ve always liked small things. As a kid, Legos & Micro Machines were my some of my favorite toys. I’ve also [responsibly] enjoyed adult beverages throughout my adult life. Sometime in 2006, I was at a liquor store buying mini-bottles to take on a double date with my wife and friends. When I realized how many of the 50ml bottles were clones in shape and design of their larger counterparts, I was hooked.
Fast forward a few years and I had a pretty impressive collection growing in my basement. I added in some shelving to display the bottles on and organized them by type. I even got to the point where I was running out of room! My wife generously persuaded me to narrow the focus of the collection. I even had a huge 30th birthday party where we purged about 300 plastic bottles from the collection. Now I typically follow these general rules of thumb pertaining to my collection:
- I only purchase new bottles. (There are tons of vintage bottles and even entire collections for sale online.)
- I try to limit to glass bottles. (Plastic bottles are accepted if they have unique designs, prominent brand, etc.)
- I try to purchase in person. (I would quickly bankrupt myself if I didn’t try to limit my online purchases.)
- I definitely find more new bottles when I travel and try to bring them back from any trip.
- 50ml is the standard, but any small-ish bottle is collected. Anything marked other than 50ml is denoted.
- All gifts from friends and travelers have been added regardless of other qualifications.
A Web Developer’s Playground
As a web developer, I realized my collection presented the perfect opportunity for a learning project—something both quantifiable and complex enough to hold my attention. This site has been rebuilt multiple times over the years, each iteration an excuse to explore new technologies.
The original version launched around 2013, built with PHP and MySQL, using Bootstrap, jQuery plugins, and custom image processing. In 2014, I transitioned to full-stack development and rebuilt everything in Ruby on Rails, hosted on Heroku. Each rebuild taught me something new about databases, authentication, deployment, and front-end frameworks.
Now, in 2024-2025, the site has evolved once again into its most modern form yet.
The Modern Era: Next.js, Sanity, and AI
Fast forward to 2025, and the web development landscape has evolved dramatically. This latest iteration of 50ml.org represents another complete rebuild, this time embracing the modern JAMstack architecture and cutting-edge AI-assisted development practices.
Current Technology Stack
- Next.js 16 - React framework with App Router, Server Components, and incredible performance optimizations
- Sanity CMS - Headless CMS with real-time collaboration and powerful GROQ query language
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- TypeScript - Type safety and enhanced developer experience
- Vercel - Edge deployment with global CDN and instant rollbacks
AI-Assisted Development
This rebuild marks a significant milestone in my development journey: extensive use of AI pair programming. Using Cursor IDE with Claude Sonnet 3.5 and Claude Sonnet 4.5, I’ve been able to:
- Architect complex features through conversational iteration
- Refactor legacy Rails code into modern React patterns
- Implement responsive designs with accessibility best practices
- Debug issues faster with AI-powered code analysis
- Explore new APIs and libraries with instant guidance
The AI doesn’t merely write the code for me—it’s more like having an incredibly knowledgeable pair programmer who never gets tired, can instantly recall documentation, and helps me think through architectural decisions. It’s accelerated my learning curve dramatically while maintaining code quality and best practices.
Modern Features
- Server-side rendering for optimal SEO and performance
- Responsive image optimization with Next.js Image component
- Dark mode support with system preference detection
- Real-time content updates via Sanity’s live preview
- Advanced filtering and search capabilities
- Progressive enhancement with graceful JavaScript fallbacks
This site continues to serve as my playground for exploring new technologies, but now it’s also a testament to how AI is transforming the way we build software. The combination of modern frameworks, headless CMS architecture, and AI assistance has made it possible to create something that would have taken months in just weeks.
Quick Stats
The collection currently contains
bottles
that came from
countries
all over the world!