case study · 2026
FormCraft
// runs on my machineSource
A gorgeous, full-stack form builder SaaS. Think Typeform, but open, customizable, and instantly scalable.
- Next.js
- Express
- Drizzle ORM
- tRPC
- React Query
- Upstash Redis
Problem
Off-the-shelf form builders are expensive and rigid. Creators need a tool that offers highly interactive, one-question-at-a-time form filling with deep analytics and monetization built-in.
Approach
I crafted a drag-and-drop visual builder using dnd-kit, backed by a robust Next.js and Express architecture. It dynamically evaluates conditional logic on the client while gracefully handling heavy submission loads via Redis rate-limiting.
Architecture
- Next.js frontend with complex dnd-kit drag-and-drop state
- Express REST/tRPC backend with Upstash Redis rate limiting
- Razorpay integration for subscription-tier billing
Results
- Built a beautifully fluid one-question-at-a-time UI
- Enabled deep response analytics and CSV exports
UI
dnd-kit
Billing
Razorpay
// code
formcraft.ts
// Upstash Redis rate limiting for public form submissions
const ratelimit = new Ratelimit({
redis: Redis.fromEnv(),
limiter: Ratelimit.slidingWindow(5, "1 m"),
});
app.post('/api/public/submit', async (req, res) => {
const ip = req.headers['x-forwarded-for'] || req.ip;
const { success } = await ratelimit.limit(`submit_${ip}`);
if (!success) return res.status(429).json({ error: "Too many submissions" });
// Proceed with saving response
});lessons learned
- Public-facing forms are spam magnets; robust Redis rate-limiting is an absolute requirement, not an afterthought.
- Evaluating conditional logic natively on the client ensures a snappy, Typeform-like UX.