A simple, modern form backend built for developers who value their time. No server setup, no complex form builders. Just point your form to an endpoint and receive submissions. It's that simple.
The core vision of RETROFORM is to eliminate the friction and overhead associated with building and managing form backends. In a world of bloated, complex form builders and time-consuming DIY server setups, RETROFORM offers a streamlined, developer-first alternative.
Value Proposition:
RETROFORM is built on a modern, scalable, and cost-effective technology stack, chosen to maximize developer productivity and application performance.
RETROFORM uses a decoupled, serverless architecture. The frontend (React SPA) is completely separate from the backend logic (Supabase Edge Functions).
graph TD
subgraph User Browser
A[React SPA on Cloudflare Pages]
end
subgraph Supabase Platform
B[Supabase Auth]
C[Edge Functions]
D[PostgreSQL Database]
E[Supabase Storage]
end
subgraph Third-Party Services
F[Lemon Squeezy API]
G[Email/WhatsApp Gateway]
end
A -- Manages UI & State --> A
A -- Login/Signup --> B
A -- Invokes for data/actions --> C
A -- Uploads files to --> E
C -- Authenticates via JWT --> B
C -- Reads/Writes data --> D
C -- Stores files --> E
C -- Creates checkout sessions --> F
C -- Sends notifications --> G
F -- Sends webhooks to --> C
Key Architectural Patterns:
This is the core feature of the application.
endpoint_slug. The submission URL is https://<your-supabase-url>/functions/v1/submit-form/<endpoint_slug>.submit-form Edge Function: This function is the entry point for all form submissions. It is configured with verify_jwt = false to be publicly accessible.endpoint_slug.submissions table.notification_rules associated with the form. Based on these rules, it triggers various notification functions (email, WhatsApp, Discord, webhooks, Google Sheets) either instantly or queues them for digest processing.The new notification system provides unparalleled flexibility and control over how users receive form submission alerts.
notification_channels Table: Stores configurations for various notification endpoints (e.g., recipient email, WhatsApp number, Discord webhook URL, advanced webhook settings, Google Sheet ID).notification_templates Table: Allows users to create reusable, customizable templates for notification content (subject, body) using dynamic placeholders ({{formName}}, {{formData.field_name}}).notification_rules Table: Links a specific form to a notification_channel and an optional notification_template. Each rule defines:instant, daily, or weekly.{"field": "priority", "operator": "eq", "value": "high"}).submit-form Function Integration: After a submission, submit-form queries and evaluates all active notification_rules for that form.digest_frequency is instant, it invokes the relevant send-notification-* Edge Function immediately.digest_frequency is daily or weekly, the submission is added to the digest_queue table.digest_queue Table: Temporarily stores submissions awaiting digest processing.send-notification-digest Edge Function: A scheduled function that processes digest_queue entries, compiles submissions into a single digest message using templates, and then invokes the appropriate send-notification-* function (e.g., send-notification-email) to send the digest.send-notification-email: Sends templated emails via Resend.send-notification-whatsapp: Sends templated WhatsApp messages via Twilio.send-notification-discord: Sends templated messages to Discord webhooks.send-notification-webhook: Sends highly configurable webhooks with custom methods, headers, and templated JSON/form-urlencoded bodies.sync-to-google-sheets: Appends templated row data to Google Sheets.notification_rules and notification_templates restrict access to these advanced features to Pro plan subscribers, ensuring secure and proper feature gating.Payments are handled by Lemon Squeezy to offload the complexity of billing and taxes.
create-checkout-session Edge Function:user_id in the checkout_data.custom field.lemonsqueezy-webhook Edge Function:user_id from the custom data.subscriptions table in the Supabase database with the new plan, status, and limits. This immediately grants the user access to their new features.The ai_analysis_enabled flag on a form, available on the Pro plan, triggers AI analysis.
submit-form function can invoke another function (e.g., analyze-submission).ai_insights JSONB column of the submissions table, ready to be displayed in the dashboard.RETROFORM is a powerful demonstration of how modern, composable technologies can be used to build a robust, scalable, and feature-rich application with a focus on developer experience. By leveraging a serverless architecture with Supabase and Cloudflare, it provides a high-value service with low operational overhead. The careful design of the database schema, the use of RLS for security, and the seamless integration with third-party services like Lemon Squeezy result in a product that is both powerful for users and maintainable for developers.
While RETROFORM is already a powerful tool, there are many opportunities for future growth and improvement:
More work you might be interested in
Autobiillai is a tool for developers to automate the setup of products, pricing plans, and webhooks in their Stripe and LemonSqueezy accounts.
An AI-powered web platform built to streamline content creation for developers and tech professionals, offering tools to generate social posts, case studies, and ad copy, managed via a credit-based subscription model.
I'm currently accepting new projects for the upcoming month. If you have an idea you're passionate about, I'd love to hear from you. The best way to start is by booking a free, no-pressure discovery call.
Let's discuss your project and how we can bring your vision to life.