Pop Up People (PUP)

Connecting Merchants and Locations through Market Days

  • Client: Pop Up People
  • Year: 2024
  • Role: Freelance Developer
  • Tags: Marketplace, Bidding, Freelance, Next.js, Stripe

Project Overview

Pop Up People (PUP)is an online platform designed to connect merchants who lack permanent retail spaces with locations, such as offices, eager to host unique market-day experiences for their employees. This freelance project, launched in late 2024, aimed to simplify and streamline event organization by eliminating cold-calling and administrative hassle.

Motivation & Opportunity

Traditionally, merchants had to contact venues proactively, a process often tedious and inefficient. PUP sought to streamline this connection, allowing merchants to easily discover and bid on available locations while venues could host engaging market events effortlessly.

After the initial developer unexpectedly left, I joined the project, stepping in to salvage and accelerate the launch.

My Role & Team Dynamics

Brought in specifically to rescue and complete the development, my primary responsibility was building and deploying the entire platform. Collaborating closely with a designer and three business development leads, my expertise guided technical decisions and UX enhancements.

The development approach was straightforward: rapid build-out with a lean feature set, prioritizing timely market entry.

Constraints & Challenges

The project was already six months behind schedule upon my arrival, significantly compressing development timelines. The most immediate challenge was rebuilding entirely from scratch, as critical information (keys, passwords) was lost.

Initially, the complexity of payment integration with Stripe was underestimated, necessitating innovative solutions for deferred payment verification and processing.

Design & Product Development

Ease of use was paramount. The onboarding process guided users effortlessly through account creation, product categorization, regional identification, and profile setup . The merchant dashboard facilitated straightforward product listings and management .

Location onboarding emphasized practical details and seamless setup for market days, including address management and visitor metrics . User interactions were optimized for clarity and efficiency, evident in intuitive bidding workflows , .

Technical Architecture & Solutions

Built using Next.js with Tailwind CSS and Shadcn components, the platform featured a robust PostgreSQL backend for managing user interactions and event data. A significant challenge was handling complex date-sensitive workflows and conditional payment processing. Despite substantial delays between bidding and payment, I developed a system to validate and securely process merchant payments.

Iterations & Adjustments

User testing highlighted gaps, such as handling empty states and optimizing for slower hardware. Adjustments included performance enhancements and UX refinements to accommodate long text entries and improve database efficiency, ensuring user accessibility.

Final Outcome

We successfully launched a fully functional platform that closely matched the original designs. Core functionalities, from market-day discovery to comprehensive user dashboards and settings management , were completed and operational.

Although initial user engagement has been limited, early adopters provided positive feedback. A recognized shortcoming is the lack of a mobile-optimized version, which is now prioritized for subsequent development..

Personal Reflections

Completing PUP single-handedly, particularly overcoming the complexities of backend systems and payment integration, remains a personal achievement. The project significantly enhanced my backend development capabilities, particularly regarding user management and database relationships.

If restarting, a mobile-first approach would be prioritized to align with contemporary user habits. Nevertheless, PUP exemplifies practical problem-solving, rapid development, and thoughtful user experience design.

Landing screen prompting sign up ("Start noget godt - tilmeld dig her") with two options "Udstiller" and "Lokation".

platform_01

Landing screen prompting sign up ("Start noget godt - tilmeld dig her") with two options "Udstiller" and "Lokation".

Onboarding step asking user which category best describes their products with six options and an illustration of a vendor next to a "We are Open" sign.

platform_02

Onboarding step asking user which category best describes their products with six options and an illustration of a vendor next to a "We are Open" sign.

Onboarding step highlighting personal brand benefits with an illustration of a market stand and a selection of topic tags for product types.

platform_03

Onboarding step highlighting personal brand benefits with an illustration of a market stand and a selection of topic tags for product types.

Onboarding step asking which region the vendor is based in with six geographic radio options and an illustration of a person leaning on a tablet.

platform_04

Onboarding step asking which region the vendor is based in with six geographic radio options and an illustration of a person leaning on a tablet.

Vendor dashboard home showing placeholders for cover and profile images, stand name, empty product section with a "Tilføj produkter" button, and a sidebar with a completion checklist.

platform_05

Vendor dashboard home showing placeholders for cover and profile images, stand name, empty product section with a "Tilføj produkter" button, and a sidebar with a completion checklist.

Modal for editing stand details with form fields for name, company, description, category radio buttons, topic tags, and "Opdater" and "Fortryd" actions.

platform_06

Modal for editing stand details with form fields for name, company, description, category radio buttons, topic tags, and "Opdater" and "Fortryd" actions.

Completed stand page showing a cover photo, profile image, stand name, and a product listing featuring a small jar of honey titled "Lille flaske honning".

platform_07

Completed stand page showing a cover photo, profile image, stand name, and a product listing featuring a small jar of honey titled "Lille flaske honning".

Banner prompting user to add payment information to ensure smooth agreement processing with a "Tilføj betaling" button and an illustration of two vendors.

platform_08

Banner prompting user to add payment information to ensure smooth agreement processing with a "Tilføj betaling" button and an illustration of two vendors.

Discovery page showing a grid of upcoming market-day cards with dates, times, venue names, images, and "Læs mere" and "Byd" buttons plus filter dropdowns.

platform_09

Discovery page showing a grid of upcoming market-day cards with dates, times, venue names, images, and "Læs mere" and "Byd" buttons plus filter dropdowns.

My market days page featuring a calendar highlighting booked dates, a summary of upcoming market days, and a list of bids placed by the user.

platform_10

My market days page featuring a calendar highlighting booked dates, a summary of upcoming market days, and a list of bids placed by the user.

Bidding page presenting market-day details and payment method form with credit-card fields, plus terms acceptance and a "Bekræft og byd" call-to-action.

platform_11

Bidding page presenting market-day details and payment method form with credit-card fields, plus terms acceptance and a "Bekræft og byd" call-to-action.

Bidding page state showing a saved payment method selected, terms acceptance checkbox checked, and active "Bekræft og byd" button.

platform_12

Bidding page state showing a saved payment method selected, terms acceptance checkbox checked, and active "Bekræft og byd" button.

Thank-you page confirming bid submission with market-day summary and an illustration of two hands high-fiving, plus buttons to discover more market days or view existing ones.

platform_13

Thank-you page confirming bid submission with market-day summary and an illustration of two hands high-fiving, plus buttons to discover more market days or view existing ones.

Settings page profile tab for vendors showing inputs for name, company, and email, plus notification toggles and policy links in the sidebar.

platform_14

Settings page profile tab for vendors showing inputs for name, company, and email, plus notification toggles and policy links in the sidebar.

Settings page payment tab displaying saved credit-card details with an option to add a new card, alongside sidebar notification toggles.

platform_15

Settings page payment tab displaying saved credit-card details with an option to add a new card, alongside sidebar notification toggles.

Settings page password tab for vendors with current and new password fields, update action, and sidebar notifications.

platform_16

Settings page password tab for vendors with current and new password fields, update action, and sidebar notifications.

Settings page account deletion tab for vendors outlining requirements to verify no booked market days before deleting account, with a "Slet konto" button.

platform_17

Settings page account deletion tab for vendors outlining requirements to verify no booked market days before deleting account, with a "Slet konto" button.

Booked market-day detail page for locations showing status badge "Booket," date/time and venue info, and practical details like parking and contact person.

platform_18

Booked market-day detail page for locations showing status badge "Booket," date/time and venue info, and practical details like parking and contact person.

Location onboarding step for venues highlighting benefits and asking which category best describes the location (Kontor or Kontorhotel).

platform_19

Location onboarding step for venues highlighting benefits and asking which category best describes the location (Kontor or Kontorhotel).

Location onboarding step asking average daily visitor numbers with four radio options (Færre end 200, 200-300, 300-400, Flere end 400) and illustration.

platform_20

Location onboarding step asking average daily visitor numbers with four radio options (Færre end 200, 200-300, 300-400, Flere end 400) and illustration.

Location onboarding step allowing manual address search for selecting appropriate vendors with a search field and call-to-action.

platform_21

Location onboarding step allowing manual address search for selecting appropriate vendors with a search field and call-to-action.

Location dashboard home showing placeholders for cover and profile images, business name, empty practical details section with an "Udfyld" button, and a completion checklist sidebar.

platform_22

Location dashboard home showing placeholders for cover and profile images, business name, empty practical details section with an "Udfyld" button, and a completion checklist sidebar.

Modal for editing location details with form fields for contact name, company name, description, category selection, visitor count radios, address input, and update actions.

platform_23

Modal for editing location details with form fields for contact name, company name, description, category selection, visitor count radios, address input, and update actions.

Location dashboard showing completed practical details and business info sections with edit options and a call-to-action to create market days.

platform_24

Location dashboard showing completed practical details and business info sections with edit options and a call-to-action to create market days.

Prompt banner encouraging location to complete their profile before creating events, with a "Start her" button and an illustration of vendors.

platform_25

Prompt banner encouraging location to complete their profile before creating events, with a "Start her" button and an illustration of vendors.

Empty market-days management page for locations with calendar placeholder and an "Opret markedsdag" call-to-action placeholder panel.

platform_26

Empty market-days management page for locations with calendar placeholder and an "Opret markedsdag" call-to-action placeholder panel.

Market-days list page for locations showing calendar controls, filter dropdown, and a mixed list of upcoming and bid-info cards.

platform_27

Market-days list page for locations showing calendar controls, filter dropdown, and a mixed list of upcoming and bid-info cards.

Market-day detail management page for locations showing date header with cancel action, and two tabs for vendor bids and event details.

platform_28

Market-day detail management page for locations showing date header with cancel action, and two tabs for vendor bids and event details.

Vendor bid management list under the bids tab showing repeated product cards with title, description, category tag, image, and a "Vælg udstiller" action.

platform_29

Vendor bid management list under the bids tab showing repeated product cards with title, description, category tag, image, and a "Vælg udstiller" action.

Event details tab showing location info header, event metadata, and practical details sidebar for booked events under the details tab.

platform_30

Event details tab showing location info header, event metadata, and practical details sidebar for booked events under the details tab.

Location settings page profile tab showing fields for contact name, company name, and email, with notification toggles and policy links in the sidebar.

platform_31

Location settings page profile tab showing fields for contact name, company name, and email, with notification toggles and policy links in the sidebar.

Location settings page password tab with inputs for existing and new password, update action, and sidebar notification toggles.

platform_32

Location settings page password tab with inputs for existing and new password, update action, and sidebar notification toggles.

Location settings page account deletion tab outlining a verification requirement before allowing account deletion, with a "Slet konto" button and notification toggles.

platform_33

Location settings page account deletion tab outlining a verification requirement before allowing account deletion, with a "Slet konto" button and notification toggles.

Location onboarding address search step allowing the user to type an address and select from suggestions (e.g., "Gammel Jernbanevej, 2500 Valby").

platform_34

Location onboarding address search step allowing the user to type an address and select from suggestions (e.g., "Gammel Jernbanevej, 2500 Valby").

smile
smile
smile
smile