Skip to content

houke/pinspiration

Repository files navigation

Pinspiration

A beautiful desktop & web app that displays random pins from any public Pinterest board. Paste a board URL, click "Inspire Me!", and discover creative content.

React Tauri TypeScript

✨ Features

  • πŸ“Œ Random Pin Discovery - Get inspired with random pins from any public board
  • 🎨 Beautiful UI - Modern glassmorphism design with animated gradients
  • πŸ–₯️ Native Mac App - Built with Tauri for a lightweight desktop experience
  • 🌐 Web App - Also works in any modern browser
  • ⚑ Smart Loading - Prefetches board data while you type
  • 🎭 Cute Animations - Delightful loading animations (floating pins, bouncing hearts, spinning sparkles)
  • πŸ”’ Privacy-First - No API keys needed, uses public RSS feeds

πŸš€ Try It Online

Visit the live app at: https://houke.github.io/pinspiration/

πŸ› οΈ Getting Started

Prerequisites

Installation

# Clone or navigate to the project
cd pinspiration

# Install dependencies
npm install

Development

# Run in browser (web dev mode)
npm run dev

# Run as desktop app (Tauri dev mode)
npm run tauri:dev

Building

# Build web assets only
npm run build

# Build Mac desktop app
npm run tauri:build

The built .app will be in src-tauri/target/release/bundle/macos/.

πŸ“– Usage

  1. Find a public Pinterest board you like
  2. Copy the board URL (e.g., https://www.pinterest.com/pinterest/pin-pets/)
  3. Paste it into the input field
  4. Click Inspire Me! ✨
  5. View a random pin with its image, title, and details
  6. Click Try Another for more inspiration

πŸ—οΈ Tech Stack

Technology Purpose
React 19 UI Framework
TypeScript Type Safety
Vite Build Tool
Tauri 2.0 Desktop Wrapper
Vanilla CSS Styling

πŸ”„ How It Works

The app fetches pins using a smart hybrid strategy:

  1. RSS Feeds - Tries Pinterest's public RSS feeds first for speed.
  2. Deep Fetching - Fallback to intelligent HTML scraping via robust CORS proxies to find more pins when RSS fails or limits results.

This approach:

  • βœ… Requires no API key
  • βœ… Works with any public board
  • βœ… Respects Pinterest's terms of service

Smart Loading: The app prefetches board data while you type and caches results for 5 minutes for instant subsequent loads.

πŸ“œ Scripts

Command Description
npm run dev Start Vite dev server
npm run build Build web assets
npm run preview Preview production build
npm run lint Run ESLint
npm run tauri:dev Run Tauri desktop app in dev mode
npm run tauri:build Build production Mac app

πŸš€ Deployment

This project auto-deploys to GitHub Pages on every push to main.

To set up GitHub Pages:

  1. Go to your repo Settings β†’ Pages
  2. Set Source to "GitHub Actions"
  3. Push to main branch

πŸ“„ License

MIT


Made with ❀️ and ✨ for my wife.

About

πŸ“Œ Get a random pin from a public pinterest board

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors