Origins
To establish a professional online presence without relying on expensive hosting platforms or restrictive website builders, I built a fully custom portfolio site using a familiar and scalable stack: Next.js, AWS Amplify, ShadCN UI, and Rust‑based API methods.
This approach keeps operating costs extremely low while providing complete flexibility for future features, integrations, and automation.
Features
Although the site presents a clean, minimal interface, it is backed by a fully serverless architecture and a custom content management workflow.
Serverless CMS & Dashboard
Secure, Cognito‑protected dashboard for managing all portfolio content
Ability to create, edit, and update metadata for:
Products
Projects
Services and web applications
Rich‑text editing powered by tiptap, enabling markdown‑style formatting with a modern WYSIWYG experience
Media Management
Dedicated interface for uploading images directly to S3, distributed globally via CloudFront
Automatic handling of asset paths and metadata for seamless integration into the site
Compile‑Time Content Ingestion
Instead of fetching content at runtime, all CMS‑generated data is stored in S3 and baked into the site during the Amplify CI/CD build
This approach:
Eliminates the need to expose the S3 bucket publicly
Ensures deterministic builds
Improves performance by serving static, pre‑rendered pages
Reduces operational complexity and runtime dependencies
Serverless Architecture
Fully serverless deployment using AWS Amplify Hosting
Rust‑powered API methods for backend logic
Minimal hosting cost with enterprise‑grade scalability
To tie everything together, we have a button for making Amplify rebuild the frontend without needing to sign into the AWS console. The only thing we're missing is a build status window that outputs errors, but if we only change our S3 bucket containing the content data, there should be no errors.