Getting started
Install SwiftJobs, run it locally and build it for production.
Requirements
- Node.js 22.12 or newer
- npm, pnpm or yarn
Install and run
npm install
npm run dev
Open http://localhost:4321. The Indonesian version of every page is at /id/.
Build
npm run build
npm run preview
npm run build runs astro check (strict TypeScript) and then builds a fully static site into dist/. You can host that folder anywhere: Netlify, Vercel, Cloudflare Pages, GitHub Pages or your own server.
What is in the box
- Two site modes. A job board for many companies, or one company’s career site. See Career mode.
- Ten page types in English and Bahasa Indonesia: home, jobs, job detail, companies, company profile, post a job, dashboard, compare, contact and 404.
- Pay-first by design. A job without a pay range does not build. Visitors can read every salary in their own currency and period.
- Content from files, a CMS or your ATS. Markdown files, Decap CMS at
/admin, or a build-time import from Greenhouse, Lever or Ashby. - SEO. JSON-LD for Google Jobs, hreflang, a sitemap, RSS and JSON feeds, and an Open Graph image for every job.
Project structure
src/
config/site.ts brand, mode, palette, currencies, plans, ATS
i18n/ui.ts every visible string, in English and Indonesian
content/jobs/ one markdown file per job
content/companies/ company profiles
styles/global.css design tokens and signature components
views/ page layouts shared by / and /id/
pages/ routes, feeds, social images, robots.txt
components/ Astro and React components
public/admin/ Decap CMS
tests/ Playwright end-to-end and accessibility tests
docs/ this documentation and marketing screenshots
Scripts
| Script | What it does |
|---|---|
npm run dev |
Development server with hot reload |
npm run build |
Type check and static build |
npm run preview |
Serve the build locally |
npm run test |
Playwright tests against the production build |