OverviewInternal and client-facing operations system for AstraMakers: automated quote generation, admin portal, PostgreSQL persistence, file intake pipelines, and contact/email delivery — deployed on Vercel with production security headers.
Scope
Next.js
Application
PostgreSQL
Database
Vercel
Hosting
Architecture overview
Engineering challenge
Studio operations ran across separate tools for quotes, client intake, file handling, and admin follow-up. The requirement was one production application that owned quote workflows, structured data, file processing, and contact delivery — without inventing a larger CRM than the studio needed.
Objectives
Automate quote generation for engineering engagements from structured inputs
Provide an admin portal for visibility into quotes, contacts, and workflow state
Persist operational data in PostgreSQL with clear schemas
Process uploaded documents and assets through defined intake paths
Integrate contact forms with reliable email delivery via Resend
Ship on Vercel with CSP, HSTS, and baseline SEO and security posture
Constraints
Scope had to stay within studio operations — not a general-purpose CRM
Public intake and admin surfaces share one TypeScript codebase and data model
File upload and API routes are internet-facing and require production hardening
Email delivery depends on Resend; application logic must tolerate delivery failures gracefully
Deployment target is Vercel, which shapes serverless API and file-handling boundaries
Solution architecture
Next.js application with server-side API routes, PostgreSQL for quotes, contacts, and workflows, file-processing modules for document intake, an admin UI layer, and Resend for transactional email — deployed on Vercel behind production security headers.
Technology stack
Next.js
TypeScript
PostgreSQL
Resend
File processing
Vercel
Implementation approach
Implemented quote workflows driven by structured templates and routing rules
Built the admin portal against the same data model as public intake
Designed PostgreSQL schemas for quotes, contacts, and workflow state
Added file-processing paths for document intake and handling
Wired contact forms to Resend and added SEO metadata on public pages
Deployed with CSP, HSTS, and API and file-handling hardening
Engineering decisions
Modeled quotes, contacts, and workflow state in PostgreSQL rather than spreading state across documents and spreadsheets
Kept public intake and admin on one Next.js app so schema and API contracts stay shared
Used Resend for transactional email instead of operating an SMTP stack
Applied CSP and HSTS at deployment so security headers are part of the production baseline
Limited automation to structured quote templates and routing, avoiding premature workflow engines
Operational considerations
Admin users need clear visibility into quote and contact state without separate tooling
File intake failures must be observable; silent upload errors break follow-up workflows
Resend delivery status and bounce handling affect whether contact submissions are actionable
Schema migrations must preserve existing quotes and contacts during iterative releases
Vercel environment configuration for database and email credentials is part of operational runbooks
Challenges
Keeping workflow flexibility without premature abstraction in early features
Growing admin surface area without fragmenting the TypeScript codebase
Hardening API routes and file upload paths for production exposure
Results
A production operational platform that owns quote automation, admin workflows, file processing, and client contact — the application foundation for AstraMakers studio operations.
Deliverables
Quote automation with structured templates and routing
Admin portal for operational review and management
PostgreSQL schemas for quotes, contacts, and workflows
File processing for document intake and handling
Contact forms with Resend-backed email delivery
Production deployment with CSP, HSTS, and SEO foundations
Lessons learned
A shared data model between intake and admin prevents the dual-write problems that appear with separate tools
Quote templates need explicit routing rules early; ad-hoc branching becomes hard to audit later
File upload hardening is not optional once the app is public — validation and size limits belong in the first production pass
Security headers and SEO metadata are cheaper to ship with the initial deploy than to retrofit
Future improvements
Extend quote templates with versioned revision history for auditability
Add richer file-type validation and virus-scanning hooks on intake paths
Surface Resend delivery and bounce state in the admin portal
Introduce role-based admin permissions as the operator set grows
Related services
Software Engineering — We design and build internal software—platforms, APIs, admin portals, dashboards, and operational tools—so your teams can run processes with systems they can understand, change, and support after handover.
Automation — Automation is treated as production tooling: scoped against real operational load, observable when it fails, and documented so operators who were not on the build can still run and change it. The goal is less toil with clearer ownership — not scripts that only the author understands.
Product Engineering — We take product work from requirements through architecture, implementation, and operable release. Engagements cover web platforms, edge systems, and internal tooling — with security, documentation, and operational ownership treated as delivery requirements, not afterthoughts.
Related resources
Automation Readiness Checklist — Use this before turning a manual runbook into scheduled jobs or remediations. Automation that lacks owners, visible failure modes, and a disable path becomes a production risk with a scheduler attached.
Planning infrastructure, automation, or software work with comparable scope? Share a short engineering brief and we will reply with fit and next steps.