Skip to main content
Prakriti Bista

Design + Engineering

stem·spark

A no-sign-up discovery tool that brings curated STEM opportunities, live feeds, deadlines, and freshness signals into one searchable place.

stem·spark

Case study at a glance

Problem

Useful opportunities for women in STEM were spread across scholarship pages, organization sites, job boards, event feeds, and newsletters, making discovery and deadline tracking unnecessarily hard.

Constraints

Evergreen entries need human review, live listings can expire overnight, upstream feeds fail independently, and the product cannot rely on accounts to remember a visitor's progress.

Key decision

Separate the hand-curated catalog from live feeds, then make deadlines, source freshness, Pathfinder matching, search, and browser-local bookmarks part of one discovery flow.

What shipped

The live site combines the curated directory with eight cached feed endpoints, daily refresh, link-freshness records, guided matching, global search, and saved items without requiring sign-up.

The problem I kept hitting

I would open a tab for a scholarship deadline, another for a fellowship someone mentioned, and another for an organization I meant to revisit. By the time I returned, the tab was closed or the deadline had passed.

The information existed. It was scattered across organization sites, job boards, event feeds, newsletters, and search results with no shared structure.

One product, two kinds of evidence

stem·spark combines two sources that should not pretend to have the same level of review.

The core directory contains hand-curated scholarships, programs, organizations, conferences, courses, and communities. Time-sensitive opportunities come through eight live resource endpoints for jobs, events, hackathons, grants, mentors, organizations, books, and podcasts.

A daily refresh updates their caches independently, so one failed source does not erase every other feed. Shared normalization, deduplication, and expiration filtering make the results consistent enough to browse together.

Resources page on stem·spark with category filters and a closing-soon rail
The directory combines direct filtering with deadline visibility, while each resource keeps a path back to its original source.

Discovery starts with the visitor's goal

The searchable directory supports direct browsing by category, cost, and region. Pathfinder adds a guided route for visitors who do not yet know which category to choose. It matches stage, field, region, goal, and cost preference against the catalog, then groups the results so the person can compare relevant options instead of scanning everything.

Deadlines remain a first-class signal. Closing-soon opportunities rise above the rest of the list, each card shows time remaining, and expired items leave that rail. Global search gives returning visitors a faster route across the site.

How the directory stays fresh

curated · typed TS

Verified entries

Scholarships · orgs · programs · conferences · mentorship · courses · communities

8 live feeds

Time-sensitive listings

Jobs (Remotive, Arbeitnow, WWR…), events, grants, hackathons — via REST/RSS

client-side

Filter by category · cost · region + search

useMemo over the combined set — no database round-trip

closing soon

Sort by deadline, drop the expired

Scholarships with a date, soonest first, top of the page

The evergreen entries are hand-checked and live in TypeScript. The time-sensitive ones, like jobs and grants, come from eight live feeds that a nightly Vercel cron refreshes. It all merges in the browser, where 'closing soon' pushes the expiring scholarships up top.

Remembering progress without an account

There are no accounts. Bookmarks save in local storage, synchronize across tabs, and appear on a Saved page. That keeps the interaction private and immediate, although saved items do not follow someone to another browser or device.

The site should reduce the work of finding an opportunity without asking for personal data first.

Trust needs more than a current-looking card

The site records link-freshness results for the curated catalog and shows trust badges beside resources. Those signals help expose stale or redirected links, but they do not make every listing verified.

A successful link check proves only that a URL responded. Live feeds inherit whatever omissions or stale metadata their publishers provide. The interface therefore treats live results as leads to inspect at the original source, while the curated core receives the slower manual review path.

The distinction is more useful than a generic “verified” label because it tells the visitor what kind of confidence the product can actually support.

What remains

The project still depends on upstream APIs and a single maintainer. Source coverage is uneven across regions and fields, and freshness checks cannot validate every deadline or eligibility rule.

A submission workflow could improve coverage, but suggested entries would still need review before entering the curated catalog. The next product question is not simply how to add more feeds. It is how to show coverage, provenance, and uncertainty clearly enough that a visitor knows what to trust and what to confirm.

What the design enables

  • The hand-curated catalog gives stable scholarships, programs, organizations, and courses a higher-trust path
  • Independent live feeds keep jobs, events, grants, hackathons, mentors, organizations, books, and podcasts current without blocking one another
  • Pathfinder, global search, deadline ordering, and local bookmarks support different discovery habits without collecting account data

Limits and tradeoffs

  • A freshness check can confirm that a link responds, but it cannot guarantee that the opportunity details are still correct
  • Live-feed quality is limited by upstream metadata and availability
  • The project is maintained by one person, so editorial coverage remains intentionally selective

Built with

Next.js · TypeScript · React · Tailwind CSS