Home
Our Process
Portfolio
FAQ
Where can I see your previous work?
Check out our portfolio at AppMakersLA.com/portfolio
What services do you offer?
We are a Los Angeles app and web development company. As such, we offer: 1) Design for Apps, Webapps and Websites 2) Mobile App Development for iPhone Apps, Android Apps and iPad Apps & Web Development for Webapps. Each project includes full QA Services as well as a product manager.
Where are your app developers located?

Our app developers are mainly located at 1250 S Los Angeles St, Los Angeles, CA 90015, though we have other offices around the world, and we hire the best developers wherever and whenever we find them. If having engineers & designers in Los Angeles is critical to the project, we have the resources to make that happen.

How much do you charge for your services?
Our cost varies depending on the project. Please contact us for a mobile app development consulting session and we will get you an estimate + analysis pronto.
Can you build software for startups?
Yes, we consider ourselves a startup app development company, as well as an agency that builds software for already established firms.

Discover 30+ more FAQs
View all FAQs
Blog
About
Contact ussms IconCall Icon
We answer our phones!
ShiftPass app icon

Putting the right worker on the map, in minutes

ShiftPass is a two-sided shift marketplace for restaurants: post an open shift, see vetted workers near you on a live map, and fill it fast. AppMakers USA engineered the geography and the map underneath it — and still ships it.

ClientShiftPass (ShortStaff)
EngagementBuild + ongoing
Live oniOS · Android
ShiftPass — browsing nearby restaurant shifts on the Explore screen
5.0
App Store rating, across 0 reviews
Apple App Store, 2026
0
App stores live — iOS & Android, actively maintained
store-verified
0
Query powers both the near-me list and the live map
PostGIS geo engineering
One app, two sides

Every shift has two sides. ShiftPass is built for both.

A restaurant with a hole in tonight's rota, and a vetted pro looking for the next gig nearby — the same marketplace, seen from two directions. Switch sides to see the product each one uses.

The restaurant view

Post a shift, then pick from people who are ready.

  • 1Post a role in seconds — pay, requirements and timing, tied to the venue's location.
  • 2See applicants in one place — every proposal for a job lined up to accept or pass on.
  • 3Or go find the talent — search vetted workers nearby and invite them to the gig.
ShiftPass — managing candidate applications for a job in one place ShiftPass — searching for the right candidate to fill a shift
The worker view

Find shifts near you and get confirmed fast.

  • 1Browse jobs near you — open shifts sorted by what's actually within reach, on a map.
  • 2Apply in a tap — send a proposal with your rate and history attached.
  • 3Track every proposal — received, accepted and applied, all in one place.
ShiftPass — browsing new restaurant jobs nearby ShiftPass — tracking your applications and proposals
Under the glass
ShiftPass — a restaurant profile with its open job listings

Every listing is a join: job → business → address → application status, filtered by real distance.

Every screen is two problems at once: a "near me" search and a live marketplace.

Each list query is part radius/bounding-box filter (who is near this point) and part marketplace state (job status, application history, proposals). The relational joins — job to business to address to application status — dominate the workload, and we needed real Earth-distance math, not flat-plane latitude/longitude.

So we stored each address as a PostGIS geography point on Postgres and used ST_DWithin for the "near me" radius and ST_MakeEnvelope / ST_Within for the map's pan bounding box — a single query powers both the nearby list and the live map view.

We chose Kysely over Prisma because the geo predicates only express well in raw SQL, and Kysely lets you drop into a typed SQL block without losing type safety on the rest of the query. We passed over MongoDB's $near and managed search services like Algolia or Elastic, because the relational joins dominate and we wanted true geography, not approximation. Every list is cursor-based, not offset, because new jobs and applications are inserted constantly — and offset pagination silently skips and duplicates rows while a user scrolls.

The hard problem

The map markers flickered on every pan — and only while panning.

Every time the list refetched, it produced a new jobs array reference. Mapbox saw a "new" dataset, re-clustered the GeoJSON, and the markers visibly blinked while the user was moving across the map. The cruelest part: it only reproduced while panning, which made it embarrassingly easy to miss in QA.

No single change fixed it. It took four layers working together.

Before · re-cluster on every refetch

New array reference → Mapbox re-clusters → markers blink mid-pan.
markers flickering while the user pans

After · stable, ID-set memoized

Markers only update when the set of job IDs actually changes.
markers hold steady across refetches
01

Keep the data alive. placeholderData: (prev) => prev on the infinite query so a refetch never fell back to an empty state.

02

Update on IDs, not references. A separate displayJobs slice that only changes when the set of job IDs actually changes, not when the array reference does.

03

Memoize the map. Custom memo comparators on the Map and Markers components, keyed on the joined IDs.

04

Stabilize the callbacks. Ref-wrapped onPress handlers so a changing parent callback couldn't bust the memoization.

None of the four alone was enough. Together, the markers stopped blinking and the map stayed steady while users panned across the city.

Building a two-sided marketplace that has to feel instant on a map?

Get a Free Project Estimate
Outcomes

What the build delivered — and why we're still on it.

Live on both stores

Shipped to iOS and Android, 5.0★ across its App Store ratings — a two-sided marketplace real restaurants and workers use.

A map that stays smooth

The marker-flicker that only showed while panning is gone; the map holds steady across constant refetches as users move across the city.

Still shipping it

ShiftPass launched in late 2025 and keeps moving — latest release June 2026. A marketplace is never "done," and that's exactly the work we stay for.

Got a marketplace that has to feel instant?

Location-first products live or die on the details — real geography, smooth maps, marketplace state that stays correct under load. We build for that, and we stay through it, the way we did for ShiftPass.

Get a Free Project Estimate

Copyright © 2026 AppMakers. All Rights Reserved
Follow us on socials: