Hey folks! welcome to the folksbase docs. If you’re reading this, you’re most likely part of the Resend team. This site is the documentation for folksbase, a project I built for the Resend hiring process technical challenge. This isn’t your standard, dry technical documentation. Think of it more as a “behind the scenes” look into my thought process. I want you to read this—especially the parts explaining my choices and trade-offs—as if we were having a conversation as coworkers, maybe during a planning or a refining session. And yes, as you can see, I’ll be writing in first person from time to time. I truly believe that helps to give this feeling. Before diving into the architecture and the “how-to,” I encourage you to actually try the project. Use it as someone who’s genuinely looking for a fast, simple, and reliable way to manage contacts.Documentation Index
Fetch the complete documentation index at: https://docs.folksbase.joselito.dev/llms.txt
Use this file to discover all available pages before exploring further.
Live Demo
Try folksbase now
Project Structure
folksbase is a monorepo managed with pnpm and Turborepo:Key Features
CSV Import with AI Mapping
Upload CSV files and automatically map columns to contact fields. Review suggestions, adjust if needed, and import thousands of contacts in seconds.
Background Jobs
Large imports and exports run asynchronously via Inngest with step-level retries. No timeouts, no memory issues.
Clean REST API
Auto-generated OpenAPI spec with interactive Scalar docs. Every endpoint is documented, validated with Zod, and rate-limited.
Contact Management
Create, search, filter, and tag contacts. Full CRUD operations with cursor-based pagination for fast performance at any scale.
Tag System
Organize contacts with tags. Filter by multiple tags at once and export filtered subsets as CSV.
Dashboard
See stats at a glance — total contacts, growth over time, recent imports and exports, all on one page.
Tech Stack at a Glance
| Layer | Technology |
|---|---|
| Frontend | Next.js 15 (App Router, React Server Components) |
| Styling | Tailwind CSS + Radix Primitives |
| Backend | Hono v4 |
| Database | Neon (Postgres serverless) via Drizzle ORM |
| Auth | Supabase Auth |
| Background Jobs | Inngest |
| AI | Anthropic Claude Haiku (CSV column mapping) |
| Testing | Vitest (unit) + Playwright (E2E) |
Next Steps
Quickstart
Get folksbase running locally
Plan and Execution
Get an overview on why folksbase is as it is