Timber.bid โ€“ Project Story

๐Ÿ“Œ Inspiration

Timber.bid was inspired by the inefficiencies and fragmentation in the reclaimed wood and specialty lumber marketplace. We noticed a gap: independent sellers and buyers lacked a modern, trusted platform to exchange reclaimed or specialty timber with transparency, trust, and ease. Our team set out to solve this by creating a real-time, cross-platform marketplace that feels intuitive and secure.

๐Ÿš€ What it does

Timber.bid is a full-stack marketplace app for discovering, listing, and buying/selling specialty lumber and reclaimed wood products. Key functionalities include:

  • User Authentication
  • Listing Creation & Management
  • Real-time Messaging
  • Secure Orders & Payments
  • Admin Dashboard with Role-Based Access
  • Cross-platform support for Web, iOS, and Android

๐Ÿ› ๏ธ How we built it

Foundation with Expo and Expo Router

  • Expo SDK 52.0.30 and Expo Router 4.0.17 enabled rapid development across iOS, Android, and Web.
  • File-based routing with Expo Router made navigation intuitive and scalable.

Navigation Architecture

  • Tabs + Stack Navigation:
    • Defined in app/(tabs)/_layout.tsx for Discover, Listings, Messages, Profile, Transactions.
    • Stack flows for nested screens like listing detail or profile editing.

Backend & Database with Supabase

  • PostgreSQL-powered backend with:
    • Tables for profiles, listings, orders, reviews, addresses, conversations, messages.
    • Row-Level Security (RLS) on all tables with granular access policies.
  • Supabase Storage handles listing images and avatars with strict upload permissions.
  • Functions & Triggers:
    • update_user_ratings, update_last_active, validate_message_sender, update_conversation_timestamp, get_or_create_conversation
    • Email triggers for new messages and order updates.

Key Feature Implementations

  • Auth & Global Session Management: Via Supabase Auth and custom useAuth hook.
  • Listing Workflow:
    • Location detection (LocationPicker.tsx)
    • Media upload (ImageUploader.tsx)
    • Draft and publish toggles
  • Real-time Messaging:
    • Powered by Supabase real-time.
    • Chat UI via react-native-gifted-chat.
  • Orders & Transactions: Full tracking via orders table.
  • Stripe Integration for secure payments.
  • User Preferences & Profiles: With privacy and notification controls.
  • Admin Dashboard: Tools for moderation and analytics.

UI/UX & Styling

  • Consistent styling using StyleSheet.create.
  • Responsive layouts using Dimensions, Platform.OS.
  • Fonts via @expo-google-fonts.
  • Icons via @expo/vector-icons (MaterialCommunityIcons, Ionicons).

Development Practices

  • Web-first approach with platform-specific conditionals via Platform.select().
  • Secure environment variable handling using Expo.
  • User-friendly error messages inline in the UI.
  • Preserved useFrameworkReady for initialization control.

โš ๏ธ Challenges we ran into

  • Real-time messaging required careful coordination between database schema, Supabase subscriptions, and UI refresh logic.
  • Payment integration and Stripe test flows were sensitive to platform differences and webhook delays.
  • Cross-platform quirks (especially for Android location APIs and iOS camera permissions) required detailed testing.
  • Ensuring data security with RLS while maintaining performance was a delicate balance.

๐Ÿ† Accomplishments we're proud of

  • A working end-to-end marketplace MVP with secure payments and real-time messaging.
  • Single codebase for iOS, Android, and Web.
  • Admin dashboard with full moderation and analytics capabilities.
  • Robust backend logic and fine-tuned permissions across the stack.

๐Ÿ“š What we learned

  • Supabase is incredibly powerful for startups needing fast, scalable backends with strong security.
  • Expo Router accelerates multi-platform development, especially for teams prioritizing Web.
  • Investing early in trigger functions and clean schema design saves countless debugging hours later.
  • UI/UX details (fonts, icons, responsive behavior) significantly affect user trust in a marketplace platform.

๐Ÿ”ฎ What's next for Timber.bid

  • Subscription model for premium listings via RevenueCat.
  • In-app notifications and push messaging.
  • Geo-targeted discovery to support local pickups and regional sales.
  • Advanced search filters for wood type, dimensions, and treatment.
  • NFT-style provenance (long-term) for high-end reclaimed wood with blockchain attestations.

Built With

  • bolt.new
  • expo.io
  • netlify
  • resend
  • supabase
Share this project:

Updates