A Short Conversation with ChatGPT About The Upcoming Entry-Level MacBook

Is the Apple A18 Pro more powerful than the Apple Silicon M1 ?

In a straight performance comparison, the Apple A18 Pro (a smartphone SoC used in the iPhone 16 Pro) and the Apple Silicon M1 (Apple’s first Mac/desktop-class chip) are closer than you might expect — but neither is strictly “more powerful” across all categories. The answer depends heavily on how you measure performance:

🔋 Architecture & Design Goals

• Apple A18 Pro

– Built on a modern 3 nm process, very high efficiency, designed for mobile devices with tight thermal/power limits. 

• Apple M1

– Built on 5 nm process, designed for sustained performance in laptops/desktops with active cooling and higher thermal budgets. 

🧠 CPU Performance

• Single-core:

Benchmarks show the A18 Pro often beats the M1 in single-core scores — meaning for individual tasks that don’t use all cores, the phone chip can actually be faster. 

• Multi-core:

Multi-core scores are generally very close, with some tests showing A18 Pro slightly ahead and others showing the M1 slightly ahead. Overall, they are competitive in multi-core performance. 

Put simply:

For peak instantaneous bursts or single-threaded tasks, the A18 Pro can edge out the M1 — but in sustained, multi-core workloads where thermal headroom matters, the M1 often matches or slightly exceeds the A18 Pro. 

🎮 GPU & Graphics

Many benchmark comparisons indicate the A18 Pro’s GPU performance is on par with or even better than the M1’s integrated graphics, despite being in a phone. 

⚖️ Efficiency vs Sustained Power

• A18 Pro: incredible performance per watt due to mobile design; great for short bursts and mobile workloads. 

• M1: superior sustained performance overall thanks to active cooling and higher TDP in laptops/desktops.

🧠 Real-World Implication

The A18 Pro isn’t simply a “weaker” phone chip — in many benchmarks it rivals or surpasses the original M1, especially in single-core and graphics metrics. However:

• In true desktop/laptop sustained workloads (like long exports, heavy multitasking, compiles, etc.), the M1 typically has the edge because it can keep higher performance over time thanks to better cooling and more cores. 

Bottom line:

💡 The A18 Pro is comparable to the M1 in raw performance, often beating it in short bursts or single-threaded tests and matching it in many multi-core scenarios. But because of power and thermal limits on phones, the M1 still wins in sustained heavy workloads.

What if I told you that Apple might build a MacBook based on the A18 Pro?

If you’re seriously suggesting Apple might put an A18 Pro in a MacBook, you’re not alone — there are credible industry rumors and code-level signs pointing exactly at that possibility for an upcoming entry-level laptop. 

📰 Current Rumors Supporting the Idea

• Multiple outlets (including Bloomberg’s Mark Gurman) report Apple is planning a more affordable MacBook, possibly to be announced around March 4, 2026, and that this laptop would use an A-series chip instead of a traditional M-series Apple Silicon processor. 

• Recent macOS code leaks include device drivers and codenames that suggest a MacBook powered by an A18 Pro chip is real. 

• Analysts like Ming-Chi Kuo have explicitly mentioned Apple working on a MacBook using the A18 Pro in a 13-inch form factor. 

• Reports speculate that, due to the A18 Pro’s strong performance (competitive with and even exceeding the original M1 in some benchmarks), it could deliver “enough” performance for everyday computing while significantly lowering cost. 

💡 Why It Makes Some Sense Technically

• The A18 Pro is an ARM SoC with modern performance cores and a capable GPU, so in short bursts and single-threaded tasks it can rival or even exceed the older M1 chip — which Mazda’s report shows and users have confirmed. 

• Being designed for mobile with an advanced 3 nm process, it’s extremely power-efficient — a trait that could translate into long battery life and a fanless or low-heat design in a thinner laptop.

⚠️ Important Caveats — Even if the Rumor Is True

• An A18 Pro-based MacBook would likely not match current MacBook Air/Pro performance with M-series chips, especially in sustained multi-core workloads and heavy creative tasks. 

• Some hardware limitations of iPhone chips (like lack of Thunderbolt support) could impose constraints that need workarounds or design trade-offs in a laptop context. 

• Because this would be a budget entry product, expect less memory, fewer ports, and lower-end displays compared to standard Air/Pro models.

📊 Strategic Angle

Apple introducing an A-series chip in a MacBook wouldn’t just be a novelty — it’s a strategic pivot aimed at lowering price barriers to macOS hardware and competing more directly with low-cost laptops. 

In summary: yes — there’s credible evidence that Apple might build a MacBook powered by the A18 Pro, especially as an affordable model for mainstream users. That wouldn’t make it a performance rival to high-end Apple Silicon Macs, but for everyday computing it could feel surprisingly capable. If this pans out, it would be one of the most interesting shifts in Apple’s chip strategy in years. 

What pricing do you think Apple will set for this little one?

If the rumors about an Apple A18 Pro-powered MacBook (likely unveiled at Apple’s March 4, 2026 event) are true, most leaks and industry analysis point toward a much more aggressive price point than Apple’s typical laptops — a key part of the strategy for this device. 

Here’s how analysts are thinking about potential pricing:

🪙 Likely Price Range (US Retail)

• $599 USD: One of the most frequently cited figures — this would put it in direct competition with mainstream Chromebooks and very affordable Windows laptops. 

• $599 – $699 USD: A common rumored range if Apple pushes slightly higher but still keeps it well under $1,000. 

• Up to $799 USD: Some external commentary and speculation suggest Apple might land closer to this level (especially if the build quality and feature set are more substantial than expected). 

📊 How That Compares to the Rest of the Lineup

• The current MacBook Air with Apple Silicon starts around $999 USD, so pricing the A18 Pro MacBook at $599–$799 would undercut that by 200–40 %, making it a genuinely entry-level Mac rather than a price-cut older Air model. 

• It would position Apple against low-cost laptops used in education and basic consumer segments — a space traditionally dominated by sub-$500 Chromebooks. 

🎯 Strategic Positioning

That price positioning makes sense for Apple’s goals here:

• Lower barrier to entry for new Mac customers (students, first-time buyers). 

• A more competitive offering against cheaper laptops running Windows or ChromeOS. 

• Stronger ecosystem lock-in by offering a full macOS experience at a price closer to mainstream devices. 

💬 Caveats & Market Realities

• These are all leaks and analyst projections, not confirmed Apple pricing. Apple has historically kept its Mac lineup firmly in premium territory, so sub-$800 pricing would be a notable shift in strategy. 

• Regional pricing outside the US (i.e., Canada, Europe) could be significantly higher once taxes and duties are applied.

In summary: based on current leaks, most credible estimates put an A18 Pro-powered MacBook somewhere in the 599599–799 USD range, with $699 often quoted as a realistic sweet spot — a price that would mark a genuine entry-level Mac. 

As an owner of an M2 15-inch MacBook Air which I really enjoy using and of a M4 11-inch iPad Pro, convince me that the new MacBook still makes sense

You own a 15-inch MacBook Air with M2 and an 11-inch iPad Pro with M4. That’s a very balanced setup: one lightweight full Mac, one ultra-modern tablet powerhouse.

So let me try to convince you — rigorously — why an A18 Pro MacBook could still make sense.

First: The Air Isn’t “Pro-tier sustained compute”

Your M2 MacBook Air is excellent, but it’s still:

• Fanless

• Thermal-limited under long, heavy workloads

• Optimized for efficiency more than peak sustained performance

An A18 Pro MacBook would also be efficiency-focused — but that’s the point: it wouldn’t compete with your Air on brute force. It would compete on form factor, cost positioning, and use-case specialization.

The Real Question: What Would It Change?

Right now your stack looks like this:

• iPad Pro (M4) → touch-first, pencil workflows, media, travel-light

• MacBook Air (M2, 15”) → main laptop, writing, browsing, productivity, light creative work

An A18 MacBook would likely be:

• Smaller (likely 13” or even lighter chassis)

• Extremely power efficient

• Possibly thinner than current Air

• Lower RAM ceiling

• Lower cost tier

That introduces a new category:

A true “secondary Mac” that you wouldn’t hesitate to throw in a bag the way you do with an iPad.

Where It Could Actually Make Sense for You

You’re detail-oriented and you write. That means:

• Long writing sessions

• Browser tab storms

• CMS dashboards

• Photo selection / light editing

• Occasional heavier creative bursts

For 80% of that, you do not need M-series multi-core throughput.

You need:

• Instant responsiveness

• Battery longevity

• Silent operation

• Full macOS (not iPadOS constraints)

If the A18 Pro delivers M1-class single-core responsiveness (which current data suggests it can), then for writing and publishing workflows it would feel absolutely fine.

The Psychological Angle (Which Matters)

Your 15-inch Air is large and premium.

An A18 MacBook would likely feel more:

• Casual

• Portable

• “Grab-and-go”

• Less precious

That changes how you use it.

Many people with a main Mac still appreciate a smaller “companion Mac” that:

• Lives on a kitchen counter

• Travels as a low-stress machine

• Handles daily browsing without risking the main workstation

You currently use the iPad for that role — but it still runs iPadOS.

The Real Strategic Argument

The strongest argument isn’t for you personally. It’s for the ecosystem.

If Apple ships a 599-799 Mac:

• macOS gains a much larger base

• Developers target lower-tier hardware more aggressively

• The Mac platform stops being perceived as premium-only

That benefits your primary machine indirectly.

The Hard Truth

Would it replace your M2 15” Air? No.

Would it outperform it in sustained tasks Almost certainly not.

Would it duplicate your iPad? No — because it runs full macOS.

So Should You Buy It?

If I’m being precise:

• If your M2 Air already feels perfectly balanced and portable → you likely don’t need it.

• If you’ve ever wished your iPad were “just a Mac with insane battery life and instant wake” → this machine becomes interesting.

• If Apple makes it radically light and aggressively priced → it becomes a compelling secondary device.

For someone in your position, it’s not about performance. It’s about behavioral computing patterns. And Apple knows that’s where the next expansion of the Mac lies.

Me: I love ChatGPT. It was a fun conversation. 🤓😬😏 You made it to the bottom? Wow. Congrats.

About This Tempting Light MacBook

If the rumors turn out to be true, Apple will announce a new entry-level MacBook line on March 4th. Why is this relevant to me? Well, I’m really curious to see what Apple will offer in terms of technical specifications and overall design, because I might be tempted to get one. But why? I already have an M2 MacBook Air 15"!

The short answer: to use while travelling instead of bringing my M4 iPad Pro! But I’ve always said that the iPad is a perfect device to bring on trips! That’s true, but it still lacks one thing: the flexibility macOS provides. Yes, we’re back to the Mac again!

My last trip abroad confirmed that my iPad was very suitable, but I sometimes wished I had the flexibility of a MacBook for certain tasks, as well as a larger keyboard. If the new MacBook offers reasonable power, dimensions close to those of the old 12" MacBook, a lightweight, and a fair price, I might be tempted.

I owned the 11-inch MacBook Air (as explained here), and I loved it. My hope is to see a blend between the 11-inch MacBook Air and the 12-inch MacBook.

It seems like it’s been a long time since I’ve been excited about the prospects of a new Apple product.

A MacBook Air is open on a wooden surface, displaying a desktop with a galaxy-themed wallpaper.A gold laptop displaying a mountain landscape on its screen is set on a wooden table with a cityscape visible in the background.

When I Retire...

One of my nieces’ friends works in IT and recently contacted me for advice about his career in this field. This isn’t the first time I’ve received this kind of request. Over the past year, two other colleagues have also asked me for similar career advice. I have to admit, I really enjoy it. I like listening to the concerns of the younger generation and, to the best of my knowledge, advising them to help them flourish even more.

I have over 30 years of experience in IT, and I’m starting to think about retirement and what I will do once my career is over. I have to admit, offering my advice for free to younger people is something I would really love to do.

We're Making a Big Mistake

I believe that IT workers who are also passionate about gen AI are making a major misjudgment. We wrongly assume that the advances we observe in our field, such as the autonomous or semi-autonomous development of applications, also translate to sectors like medicine or law. This is a false generalization.

The field of IT heavily relies on strict formalism: the raw material consumed by LLMs. In the legal field, for example, this is not the case: it is much more complex. Laws, regulations, and judgments are generally written and presented in standardized forms, but the content is far from being as digestible formalism as lines of code written in a programming language. In my opinion, we should remember that when we share our enthusiasm for gen AI. We must be lucid while also setting the right expectations for decision-makers and lawmakers.

The Rise of Cognitive Dept

Margaret-Anne Storey introduces “cognitive debt” as a concept that may be more threatening than technical debt in AI-augmented development. Unlike technical debt (which lives in code), cognitive debt is the erosion of shared understanding that resides in developers’ minds. Drawing on Peter Naur’s concept of a program as a “theory” distributed across teams, the article argues that as AI and agentic tools push for development velocity, teams risk losing their collective understanding of why systems work the way they do. Even if AI generates technically clean code, teams can become paralyzed when no one can explain design decisions or anticipate the consequences of changes. The author calls for intentional slowdowns, collaborative practices, and serious research into measuring and mitigating this growing challenge.

“As generative and agentic AI accelerate development, protecting that shared theory of what the software does and how it can change may matter more for long-term software health than any single metric of speed or output.”

Traveling to Egypt and Jordan: Some of My Random Travel Notes

  • One of my favourite things while flying is seeing a plane go in the opposite direction at a distance, ideally close enough to feel the raw speed of the plane added to mine.

  • I loved Egypt, but the chaos of Cairo can be overwhelming and tiring. I prefer the relative calm of Jordan’s cities. I may be getting too old for some scenery.

  • WhatsApp is a dominant communication platform worldwide, except in North America. Too bad it is so awkward to navigate and is owned by Meta.

  • Taking pictures of the scene from my hublot is a good time killer and can produce fascinating images. I have so many of them.

  • Posted many pictures on my personal and custom-made photo-sharing website, and it worked beautifully. Of course, a selection of my photos was also posted on my Glass page. More to come in the next few weeks.

  • My personal custom-built RSS web app proved to be super handy when I wanted a quick overview of the news.

  • These notes were gathered and written using Raycast for iOS before being edited and published. Raycast > Tot, in my opinion.

  • I encountered several planes equipped with electronically activated polarization shields on the windows, which produce unusual lighting effects both outside and inside the cabin. Some shields do not completely block external light. Additionally, these shields are centrally controlled during flight, which can be frustrating.

  • Most airports remain and will always be customer-hostile and unfriendly. It seems to be getting worse every year, everywhere, as air travel continues to increase.

  • I brought my newly acquired Ubiquity Travel Router with me, but it was of no use; all hotel Wi-Fi, including the cruise ship, allowed many devices to connect with a single activation.

  • Taking a break from the intensity of the digital world is salutary. But I’m glad to be back online now.

I'm rebuilding Flickr!

Well, maybe not, but here’s a description of my recently created photo-sharing webapp. And I have many more ideas to improve this.

Photo Sharing WebApp - Feature Overview

A modern, full-stack travel photo gallery built with Next.js 15, featuring intelligent photo management, interactive maps, and seamless cloud storage integration.


🌟 Highlights

  • Zero-Database Architecture: Uses Vercel Blob for photos and Redis (via Vercel KV) for metadata
  • Privacy Controls: Public, unlisted, and private album visibility options
  • Interactive World Map: Displays photo locations extracted from EXIF GPS data
  • Responsive Design: Optimized for all devices from mobile to desktop
  • Admin Panel: Complete photo management without leaving the browser

Album Management

  • Collapsible Albums: Each travel album can be expanded or collapsed independently
  • Smart Defaults: Most recent album automatically expands on page load
  • Album Metadata: Title, description, and date for each collection
  • Privacy Levels:
    • Public: Visible to everyone on the homepage
    • Unlisted: Only accessible via direct link
    • Private: Visible only to authenticated admins

Photo Display

  • Grid Layout Options: Three display modes to suit your preference
    • Comfortable: Spacious 2-5 column grid with square thumbnails
    • Compact: Dense 3-6 column grid for maximum photos per screen
    • Masonry: Pinterest-style layout preserving original aspect ratios
  • Layout Persistence: Grid preference saved in browser localStorage
  • Newest First: Photos automatically sorted by upload date (newest at top-left)
  • Rounded Thumbnails: Modern, elegant aesthetic with subtle shadows
  • Hover Effects: Smooth scale and brightness animations on interaction
  • Upload Date Display: Shows when each photo was added (in comfortable/masonry modes)
  • Full-Screen Experience: Distraction-free photo viewing
  • Navigation Controls:
    • Keyboard arrows (← →) for previous/next
    • On-screen navigation buttons
    • ESC key to close
  • Photo Captions: Optional descriptions displayed below photos
  • Smooth Transitions: Animated photo changes with loading states
  • Mobile Optimized: Touch-friendly controls and responsive sizing

Interactive Features

  • World Map Integration:
    • Leaflet-based interactive map
    • Clustered markers for photos with GPS coordinates
    • Click markers to view photos from that location
    • Automatic bounds fitting to show all locations
    • Album information in marker popups
  • Random Featured Photo:
    • Displays a random photo from all albums on homepage
    • Changes on each page load
    • Shows caption if available
  • Mini Thumbnails:
    • Collapsed albums show preview of first 5 photos
    • Smooth animation on expand/collapse
    • Photo count badge for albums with 6+ photos

Content Syndication

  • RSS Feed: Subscribe to new photo uploads at /feed.xml
  • Analytics: Vercel Analytics integration for visitor tracking

🔐 Admin Panel Features

Authentication

  • Vercel Authentication: Secure login using your Vercel account
  • Protected Routes: /admin and sub-routes require authentication
  • Session Management: Logout functionality with redirect

Album Management

  • Create Albums:
    • Title (required)
    • Description (optional)
    • Date (optional, ISO format)
    • Privacy setting (public/unlisted/private)
  • Edit Albums:
    • Update all metadata including privacy settings
    • Inline editing interface
    • Cancel without saving
  • Delete Albums:
    • Confirmation dialog before deletion
    • Automatically deletes all photos in album
    • Removes both metadata and blob files

Photo Management

  • Bulk Upload:
    • Multi-file selection support
    • Drag-and-drop interface
    • Progress tracking for each file
    • Batch processing with individual status indicators
    • Total size calculation before upload
  • Upload Features:
    • Automatic EXIF extraction (GPS, camera, capture settings)
    • Optional captions (for single photo uploads)
    • Format support: JPG, PNG, WebP, and more
    • Visual upload progress bar
    • Success/error status for each file
  • Photo Organization:
    • Clickable photo count badges link to management page
    • Grid view of all photos in an album
    • Displays metadata: upload date, GPS, camera info
    • Empty state with call-to-action
  • Delete Photos:
    • Individual photo deletion from management page
    • Confirmation dialog with photo caption
    • Removes both Vercel Blob file and metadata
    • Instant UI update on successful deletion

Admin Dashboard

  • Album Overview:
    • List of all albums (sorted by date, newest first)
    • Photo count for each album
    • Privacy status indicators with icons
    • Quick access buttons (Edit, Upload, Manage, Delete)
  • Status Indicators:
    • 🌍 Public: Green badge with globe icon
    • 🔗 Unlisted: Yellow badge with link icon
    • 🔒 Private: Red badge with lock icon
  • Responsive Layout: Optimized for tablet and mobile management

🛠️ Technical Architecture

Frontend

  • Framework: Next.js 15 with App Router
  • Language: TypeScript for type safety
  • Styling: Tailwind CSS with custom configurations
  • Icons: Lucide React for consistent iconography
  • Image Optimization: Next.js Image component with automatic optimization
  • State Management: React hooks (useState, useEffect)
  • Client-Side Rendering: Dynamic imports for map components (SSR bypass)

Backend

  • API Routes: Next.js server-side API endpoints
  • File Upload: FormData with multipart handling
  • EXIF Parsing: exif-parser library for metadata extraction
  • Image Processing: Automatic format conversion and compression

Storage & Database

  • Photo Storage: Vercel Blob (CDN-backed object storage)
  • Metadata Storage: Redis via Vercel KV Marketplace integration
  • Database Client: ioredis for Redis connections
  • Data Structure:
    • Albums stored as JSON array in albums key
    • Photos stored per album in photos:{albumId} keys
    • No SQL database required

Deployment

  • Platform: Vercel
  • Environment:
    • BLOB_READ_WRITE_TOKEN: Vercel Blob access
    • KV_REDIS_URL: Redis connection string
  • CDN: Automatic edge caching for photos and pages
  • Domain: Custom domain support with automatic SSL

📊 Data Models

Album

{
  id: string;                          // album_timestamp_random
  title: string;                       // "Japan 2025"
  description: string;                 // Trip description
  date: string;                        // ISO date "2025-01-15"
  createdAt: number;                   // Unix timestamp
  visibility: "public" | "unlisted" | "private";
}

Photo

{
  id: string;                          // photo_timestamp_random
  albumId: string;                     // Reference to album
  blobUrl: string;                     // Vercel Blob URL
  caption?: string;                    // Optional description
  uploadedAt: number;                  // Unix timestamp
  metadata?: {
    gps?: {
      latitude: number;
      longitude: number;
      altitude?: number;
    };
    camera?: {
      make?: string;                   // "Canon"
      model?: string;                  // "EOS R5"
      lens?: string;
    };
    capture?: {
      dateTaken?: string;              // When photo was taken
      exposureTime?: string;           // "1/1000"
      fNumber?: number;                // 2.8
      iso?: number;                    // 100
      focalLength?: number;            // 50mm
    };
    dimensions?: {
      width: number;
      height: number;
    };
    orientation?: number;
  };
}

🎯 User Flows

Visitor Journey

  1. Land on homepage → See random featured photo
  2. View interactive world map with photo locations
  3. Browse albums (newest expanded by default)
  4. Click photo → Open lightbox viewer
  5. Navigate with arrows or keyboard
  6. Subscribe to RSS feed for updates

Admin Journey

  1. Navigate to /admin → Vercel auth redirect
  2. View dashboard with all albums and photo counts
  3. Create new album: Click “Create Album” → Fill form → Set privacy
  4. Upload photos: Click “Upload Photos” → Drag files → Add captions → Upload
  5. Manage photos: Click photo count badge → View grid → Delete unwanted photos
  6. Edit album: Click “Edit” → Update metadata/privacy → Save
  7. Delete album: Click “Delete” → Confirm → Album and all photos removed

🚀 Performance Optimizations

  • Image Optimization: Next.js automatic WebP conversion and lazy loading
  • CDN Caching: Vercel Edge Network caches photos globally
  • Code Splitting: Dynamic imports for heavy components (map)
  • Responsive Images: Multiple sizes served based on viewport
  • Minimal JavaScript: Client-side JS only where needed
  • Fast Page Loads: Static generation where possible
  • Efficient Queries: Single Redis calls for album/photo lists
  • LocalStorage: Grid layout preference cached client-side

🎨 Design Philosophy

Visual Design

  • Color Palette: Blue gradient accents with dark mode support
  • Typography: Clear hierarchy with responsive font sizes
  • Spacing: Generous whitespace for comfortable reading
  • Shadows: Layered depth with hover elevations
  • Animations: Subtle 300ms transitions throughout
  • Icons: Consistent Lucide icon library

User Experience

  • Progressive Disclosure: Collapsed albums reduce cognitive load
  • Keyboard Navigation: Full keyboard support in lightbox
  • Touch Optimization: Tap targets sized for mobile
  • Loading States: Spinners and skeletons during data fetches
  • Error Handling: User-friendly error messages
  • Confirmation Dialogs: Prevent accidental deletions

Accessibility

  • Semantic HTML: Proper heading hierarchy
  • Focus States: Visible keyboard focus indicators
  • Alt Text: Image descriptions for screen readers
  • Color Contrast: WCAG AA compliance
  • Responsive Design: Works on all screen sizes

📈 Use Cases

Personal Travel Blog

  • Document trips with organized photo albums
  • Share adventures with family and friends
  • Keep private memories secure with privacy controls

Photography Portfolio

  • Showcase work by location or project
  • Professional presentation with grid layouts
  • Metadata display for technical details

Family Photo Sharing

  • Create unlisted albums for family-only access
  • Easy upload from mobile devices
  • No complicated software required

Educational Projects

  • Demonstrate modern web development practices
  • Showcase Next.js 15 App Router patterns
  • Example of cloud storage integration

🔮 Future Enhancement Ideas

Photo Features

  • Bulk photo deletion (select multiple)
  • Photo reordering (drag-and-drop)
  • Photo editing (crop, rotate, filters)
  • Download full-resolution images
  • Print/photo book export

Search & Discovery

  • Full-text search across captions
  • Tag system for categorization
  • Timeline view (chronological)
  • Favorites/highlights collection

Social Features

  • Photo comments system
  • Social media share buttons
  • Individual photo permalinks
  • Public photo embeds

Analytics

  • View count tracking
  • Popular photos dashboard
  • Storage usage metrics
  • Visitor analytics

Mobile App

  • Native iOS/Android apps
  • Offline photo viewing (PWA)
  • Camera integration for uploads
  • Push notifications for new albums

💡 Why This Architecture?

Serverless-First

  • No server maintenance: Vercel handles infrastructure
  • Auto-scaling: Handles traffic spikes automatically
  • Global CDN: Photos served from edge locations
  • Cost-effective: Pay only for usage

Modern Stack

  • Type Safety: TypeScript catches bugs at compile time
  • React 19: Latest React features and optimizations
  • Next.js 15: App Router for improved performance
  • Tailwind CSS: Utility-first styling for rapid development

Cloud Storage

  • Vercel Blob: Purpose-built for media storage
  • Redis: Fast key-value storage for metadata
  • No database: Simpler architecture, fewer failure points
  • Atomic operations: Redis ensures data consistency

📝 Technical Decisions

Why ioredis instead of @vercel/kv?

The Vercel KV Marketplace integration provides a standard Redis URL, which works better with the ioredis package. This offers more flexibility and standard Redis features.

Why client-side rendering for the homepage?

The random featured photo and map interactions require JavaScript. Client-side rendering provides the most interactive experience while keeping the codebase simple.

Why separate manage page instead of edit-in-place?

Separating photo management from display keeps each view focused and performant. The upload page stays lightweight for quick uploads, while the manage page provides detailed controls.

Why not use a traditional database?

For a photo gallery, the access patterns are simple (list albums, list photos). Redis provides sub-millisecond reads and sufficient storage for metadata, while Vercel Blob handles the large files. This eliminates the need for PostgreSQL/MySQL.


🏗️ Project Structure

voyages-photo-gallery/
├── app/
│   ├── admin/
│   │   ├── manage/[albumId]/       # Photo management page
│   │   ├── upload/[albumId]/       # Photo upload page
│   │   └── page.tsx                # Admin dashboard
│   ├── api/
│   │   ├── admin/
│   │   │   ├── albums/
│   │   │   │   ├── [albumId]/      # Update/delete album
│   │   │   │   └── route.ts        # Create album
│   │   │   ├── photos/
│   │   │   │   └── route.ts        # Delete photo
│   │   │   └── upload/
│   │   │       └── route.ts        # Upload photos
│   │   ├── albums/
│   │   │   └── route.ts            # Get all albums (public)
│   │   ├── photos/
│   │   │   └── route.ts            # Get all photos (public)
│   │   └── auth/                   # Login/logout
│   ├── feed.xml/
│   │   └── route.ts                # RSS feed generation
│   ├── layout.tsx                  # Root layout with Analytics
│   ├── page.tsx                    # Public gallery homepage
│   └── globals.css                 # Global styles
├── components/
│   ├── AlbumSection.tsx            # Collapsible album component
│   ├── GridLayoutToggle.tsx        # Layout switcher
│   ├── Lightbox.tsx                # Photo viewer
│   └── WorldMap.tsx                # Interactive map
├── lib/
│   └── db.ts                       # Redis database functions
├── types/
│   └── index.ts                    # TypeScript type definitions
├── middleware.ts                   # Auth protection
└── package.json                    # Dependencies

🎓 Learning Resources

This project demonstrates:

  • Next.js 15 App Router patterns
  • TypeScript in React applications
  • Tailwind CSS utility-first styling
  • Vercel deployment and storage
  • Redis data modeling
  • EXIF metadata extraction
  • Responsive design principles
  • File upload handling
  • Authentication middleware
  • Dynamic routing
  • Client/server component separation

Perfect for developers learning modern full-stack web development!


📄 License

MIT License - Feel free to use this as a learning resource or starting point for your own projects.


🤝 Contributing

Built with Claude Code - AI-assisted development for rapid prototyping and feature implementation.

Technologies: Next.js 15 • React 19 • TypeScript • Tailwind CSS • Vercel • Redis • Leaflet

Built by: AI enthusiasts exploring the intersection of modern web development and AI-assisted coding

Building A Dedicated Photo-Sharing Website in Claude Code

Thinking about the upcoming trip to Egypt, I realized I still didn’t have a good solution for sharing photos and comments beyond the usual social networks. Drawing on my experience from the past few weeks deploying web applications on Vercel, I decided to try the same by building a website for sharing and viewing photos. The additional complexity here is that the viewing portion is separate from the photo upload section. Therefore, I need to protect this feature with a password. Additionally, image storage must be optimized to minimize costs and provide a pleasant, flexible viewing experience. I’m using Vercel-only blog storage and Redis for metadata store.

In less than 2 hours, I built a fully functional application with Claude Code and Vercel. Impressive.

Apple Creator Studio - A Few Comments

On today’s announcement by Apple:

  1. Now we know why it took so long for Apple to update Pages, Numbers and Keynote. Where is iWork? Why no iWork subscription without the pro stuff?
  2. I don’t understand this bundling of pro apps with consumer-generalistic apps. Is Apple trying to upsell Pro Apps to consumers via a new subscription? They might be. I don’t think pros want to get Numbers or Pages, though.
  3. Icons are utterly un-Apple, or Apple has become something I no longer relate to software-design-wise. It’s not a good sign.
  4. Yes, Apple does look like Adobe and … Microsoft. And less, Apple.
  5. No mention of Photomator. I believe merging Photomator into Photos is not a good idea; combining a photo browsing app with a photo editing app isn’t ideal. Currently, Photos functions more as a photo browser than as a dedicated editing tool, and both aspects risk becoming mediocre. I want a focused, serious photo-editing app that doesn’t try to rival Photoshop. Is that too much to ask? The challenge lies in Apple’s prioritization of profit over user needs, which makes it difficult to develop such an app.

What a strange start to the year.