Best Tech Stack for a Job Board as a Solo Developer
The best tech stack for building a job board as a solo developer - frameworks, databases, hosting, and tools.
Best Tech Stack for a Job Board as a Solo Developer
Niche job boards are quietly profitable businesses. While Indeed and LinkedIn dominate the general market, specialized boards like RemoteOK, We Work Remotely, and various industry-specific boards generate $10k-100k+/month with tiny teams. The technical requirements are straightforward: list jobs, let people search and filter, accept payments from employers, and rank well in Google. A solo developer can build and launch one in a few weeks with the right stack.
Here's exactly what to use.
Recommended Stack at a Glance
| Layer | Pick |
|---|---|
| Framework | Astro (with React islands) |
| Database | PostgreSQL |
| Search | Meilisearch or PostgreSQL full-text |
| ORM | Drizzle ORM |
| Hosting | Vercel or Cloudflare Pages |
| Payments | Stripe Checkout |
| Resend |
Frontend: Astro
Job boards are fundamentally content sites. The vast majority of pages (job listings, category pages, location pages) are static or near-static content that changes maybe a few times per day. Astro is purpose-built for this. It is also a serious, well-maintained project, not a hobby framework: the repo sits at 59,658 GitHub stars and the astro npm package pulls roughly 3.05 million downloads a week (checked 2026-05-30). The current stable release is Astro 6.4.2.
Astro generates static HTML by default, which means your job listing pages load instantly and Google loves them. For the interactive parts (search with live filtering, application forms, employer dashboards), drop in React components as "islands" that hydrate only where needed.
This architecture gives you the best of both worlds:
- SEO performance - Static pages with perfect Core Web Vitals scores
- Interactivity - React components where you need dynamic behavior
- Build speed - Only the pages that changed get rebuilt
For a job board, SEO is everything. Job seekers search "remote python developer jobs" and you need those listing pages ranking. Astro's static output with proper meta tags, structured data (JobPosting schema), and fast load times gives you a real advantage.
Backend: Astro Server Endpoints + API Routes
Astro supports server-side rendering and API routes, so you can handle backend logic without a separate server. Your API needs are simple:
- Job CRUD - Create, update, expire job listings
- Search - Filter by location, category, salary, remote status
- Applications - Accept and forward applications to employers
- Payments - Stripe webhook processing
- Admin - Approve/reject listings, manage categories
For the admin dashboard and employer portal, use React components within Astro. These are the only pages that need full client-side interactivity.
Database: PostgreSQL
A job board's data model is clean and relational: jobs, companies, categories, locations, applications. PostgreSQL handles this perfectly and its built-in full-text search might be all you need for job search.
Drizzle ORM is the best choice for TypeScript projects. It's lightweight, type-safe, and generates efficient SQL. No magic, no hidden queries, just clean TypeScript that maps to SQL. It has become a default pick in the TypeScript world for a reason: 34,582 GitHub stars and around 9.72 million weekly npm downloads of drizzle-orm (checked 2026-05-30), with 0.45.2 as the current release.
Your core schema is simple:
companies- Employer profilesjobs- Listings with title, description, category, location, salary range, remote flag, expires_atapplications- Applicant submissions linked to jobscategories- Job categories for filteringlocations- Structured location data for geo-filtering
Host on Neon for serverless Postgres with a genuinely usable free tier (0.5 GB of storage and 100 CU-hours of compute per project, no credit card required), then move to the pay-as-you-go Launch plan ($0.106 per CU-hour and $0.35 per GB-month) once you outgrow it. Or pick Supabase if you want a dashboard for quick data inspection; its free tier gives you 500 MB of database and two active projects, and the Pro plan starts at $25/month (all checked 2026-05-30). One Supabase caveat for a low-traffic launch: free projects get suspended after a week of inactivity, so a brand-new board with no visitors yet can go to sleep on you.
Search: Start Simple, Scale When Needed
For job board search, you have two paths:
PostgreSQL full-text search (start here): Postgres's tsvector and tsquery handle keyword search well enough for boards with under 10,000 listings. Add a GIN index on your searchable columns and you get fast, relevant results without any external service. This keeps your architecture simple.
Meilisearch (scale to this): When you need instant search-as-you-type, faceted filtering (filter by multiple categories, salary ranges, locations simultaneously), and typo tolerance, Meilisearch is the best self-hosted option. It's fast, easy to set up, and actively developed: 57,828 GitHub stars, with v1.45.1 shipped on 2026-05-28 (checked 2026-05-30). You can self-host the open-source binary for free, or use Meilisearch Cloud, which offers a 14-day free trial and resource-based plans starting around $23/month for an extra-small instance. Sync your Postgres data to Meilisearch on job create/update.
Don't start with Elasticsearch. It's overkill for a job board and painful to maintain solo.
Hosting: Vercel or Cloudflare Pages
Since Astro generates mostly static pages, hosting is cheap and fast on any static hosting platform.
Vercel is the easiest option. Push to GitHub, it deploys. Server-side routes and API endpoints run as serverless functions. The free Hobby tier is generous enough for a job board with moderate traffic, with 1 million edge requests, 100 GB of fast data transfer, and 4 hours of active function CPU per month included. When you outgrow it, Pro is $20 per user per month and bundles a $20 monthly usage credit (checked 2026-05-30).
Cloudflare Pages is the alternative if you want edge deployment (faster globally) and prefer Cloudflare's ecosystem. Its free plan is notably hard to beat for a content-heavy site: unlimited static requests, unlimited bandwidth, and 500 builds per month, with Pro at $20/month billed annually or $25/month billed monthly (checked 2026-05-30). Pair it with Cloudflare Workers for your API routes and D1 for a database if you want to stay entirely within Cloudflare's stack.
Payments: Stripe Checkout
Job boards typically charge employers per listing ($100-500 for 30 days) or via subscription plans. Stripe Checkout handles this with minimal code:
- Create a Checkout Session when an employer submits a listing
- Redirect them to Stripe's hosted payment page
- Listen for the
checkout.session.completedwebhook - Activate the job listing
This is maybe 50 lines of code total. Don't build a custom payment form. Stripe Checkout handles card validation, 3D Secure, Apple Pay, Google Pay, and dozens of local payment methods. There is no monthly fee to start; Stripe's standard US online rate is 2.9% plus 30 cents per successful domestic card transaction (checked 2026-05-30). On a $200 job listing that is roughly $6.10 in fees, which is trivial against the revenue.
For recurring plans (unlimited monthly listings), use Stripe Subscriptions with the Customer Portal so employers can manage their own billing.
Nice-to-Haves
- Resend for job alert emails (biggest retention driver for job boards). The free tier covers 3,000 emails per month capped at 100 per day, and the Pro plan is $20/month for 50,000 emails (checked 2026-05-30), which carries most boards a long way
- JobPosting structured data (Schema.org) for Google Jobs integration
- Cloudflare Turnstile for spam prevention on application forms
- Plausible or Umami for privacy-friendly analytics
- RSS feed for job listings (attracts aggregators and power users)
- Sitemap generation for SEO (Astro has a built-in plugin)
Monthly Cost Breakdown
All figures checked on 2026-05-30 against each vendor's pricing page.
| Service | Cost |
|---|---|
| Vercel (free Hobby or Pro) | $0-20/user/month |
| Neon Postgres (free tier, then pay-as-you-go) | $0 to start |
| Meilisearch Cloud (if needed, else self-host free) | $0-23+/month |
| Resend (free tier, then Pro) | $0-20/month |
| Stripe | 2.9% + 30c per transaction |
| Domain | ~$1/month |
| Total | ~$1-64/month + Stripe fees |
A job board can run profitably on near-zero infrastructure costs. Your first paid listing covers months of hosting.
Conclusion
The best stack for a solo developer building a job board: Astro with React islands for SEO-first pages, PostgreSQL with Drizzle ORM for data, PostgreSQL full-text search to start (Meilisearch later), Stripe Checkout for payments, and Vercel for hosting.
The key to a successful job board isn't the tech, it's the niche. Pick a specific industry, role type, or work style (remote, part-time, contract) and own it. The tech stack above handles everything from 10 listings to 100,000 with minimal changes. Focus on getting employers to post and job seekers to visit. Everything else is secondary.
Sources
All figures below were checked on 2026-05-30.
- Astro stars: api.github.com/repos/withastro/astro (59,658 stars)
- Astro version and weekly downloads: registry.npmjs.org/astro/latest (v6.4.2), api.npmjs.org/downloads/point/last-week/astro (3,048,186)
- Drizzle ORM stars: api.github.com/repos/drizzle-team/drizzle-orm (34,582 stars)
- Drizzle ORM version and weekly downloads: registry.npmjs.org/drizzle-orm/latest (v0.45.2), api.npmjs.org/downloads/point/last-week/drizzle-orm (9,716,882)
- Meilisearch stars and latest release: api.github.com/repos/meilisearch/meilisearch (57,828 stars), latest release v1.45.1
- Meilisearch Cloud pricing: meilisearch.com/pricing
- Vercel pricing: vercel.com/pricing
- Cloudflare Pages pricing: pages.cloudflare.com
- Neon pricing: neon.com/pricing
- Supabase pricing: supabase.com/pricing
- Stripe pricing: stripe.com/pricing
- Resend pricing: resend.com/pricing
Like this? You'll like what I'm building too.
Two ways to support and get more of this work.
HEARTH
A privacy-first Life OS for your desktop. Journal, tasks, and notes that stay on your machine. Coming soon, direct download from this site.
Read moreMY TOOLKITS
Receipts-first toolkits for shipping after hours, building Claude agents, publishing on Amazon, and more. The exact methods I used, not theory.
Browse on WhopRelated Articles
AI Wrapper Stack Guide for Solo Developers
Complete guide to the AI wrapper stack - when to use it, setup, pros/cons, and alternatives.
Best Tech Stack for Building an AI Wrapper as a Solo Developer
The ideal tech stack for solo developers building an AI wrapper in 2026.
Best Tech Stack for an Analytics Dashboard as a Solo Developer
The best tech stack for building an analytics dashboard as a solo developer - frameworks, databases, hosting, and tools.