WorkSentri Morph
Framer Development • Custom Code Components • CMS Integration

Sentri Morph

A high-performance cybersecurity website built with Framer, featuring custom code components, integrated email services, reCAPTCHA security, and a fully customized CMS for dynamic content management.

Role
Front-end Developer
Timeline
1 Month
Type
Live Website
Tools
Framer
Sentri Morph banner

Project Overview

SentriMorph presented a unique challenge: building a production-ready cybersecurity website using Framer — a platform I had never used for a real project before. The project required going beyond Framer's no-code capabilities by implementing custom JavaScript code, integrating third-party services (Email.js, Mailjet, reCAPTCHA), setting up tracking pixels (Facebook, Google Analytics, LinkedIn), and customizing Framer CMS for a dynamic blog system. This was a journey of rapid learning, creative problem-solving, and pushing Framer's limits to deliver a fully functional, SEO-optimized website.

Objective

The primary objective was to build a production-ready cybersecurity website using Framer while maintaining full control over functionality and integrations. The main challenge was learning Framer's ecosystem from scratch — understanding its component system, CMS architecture, and code limitations — while implementing advanced features like custom forms, email automation, security layers, and analytics tracking that typically require full-stack development capabilities.

Approach

I approached this project as a learning journey, starting by deeply understanding Framer's architecture and limitations. I implemented custom JavaScript code components for features that required advanced functionality beyond Framer's built-in capabilities. For the contact form, I integrated Email.js with Mailjet as a backup email service, and added reCAPTCHA for security. I customized Framer CMS components to create a flexible blog system, designed custom icons, and integrated multiple tracking pixels for analytics. Throughout development, I had to creatively work around Framer's pre-coded functions and limited customization access, finding innovative solutions to achieve traditional web development functionality within Framer's constraints.

Deliverables

Custom Contact Form System

Fully functional contact form with dual email service

  • Email.js integration for primary email delivery
  • Mailjet as backup email service
  • Google reCAPTCHA v2 security integration
  • Real-time form validation
  • Success/error state handling
  • Custom JavaScript code components

Framer CMS Integration

Customized CMS for dynamic blog content

  • Custom blog collection setup in Framer CMS
  • Customized CMS components for blog posts
  • Dynamic blog listing and detail pages
  • Category and tag filtering
  • SEO-friendly URLs and metadata
  • Responsive blog layouts

Analytics & Tracking Integration

Multi-platform tracking implementation

  • Facebook Pixel integration
  • Google Analytics (gtag.js) setup
  • LinkedIn Insight Tag implementation
  • Custom event tracking
  • Conversion tracking setup
  • Privacy-compliant tracking code

Custom Design Components

Bespoke icons and UI elements

  • Custom SVG icons design
  • Interactive hover states
  • Custom animations using Framer Motion
  • Responsive component variants
  • Reusable component library
  • Brand-consistent design system

SEO & Performance Optimization

Search engine and speed optimization

  • Lighthouse 100% Best Practices score
  • GTmetrix: 84% Performance, 90% Structure
  • Meta tags and Open Graph setup
  • Schema markup implementation
  • Image optimization and lazy loading
  • Mobile-first responsive design

Production Deployment

Live website with bug fixes and optimization

  • Published to custom domain
  • Fixed post-launch bugs
  • Cross-browser compatibility testing
  • Mobile responsiveness verification
  • Form submission testing
  • Performance monitoring setup

Technical Breakdown

Contact Form — Email.js + Mailjet + reCAPTCHA Integration

Built a custom contact form using Framer's code component feature, integrating Email.js as the primary email service with Mailjet as a backup. Added Google reCAPTCHA v2 for spam protection. This was my first experience implementing such a complex integration within Framer's constraints.

Created custom JavaScript code component in Framer for form handling

Integrated Email.js SDK for primary email delivery with custom templates

Set up Mailjet API as fallback email service for reliability

Implemented Google reCAPTCHA v2 with proper token validation

Built real-time form validation with custom error messages

Added loading states and success/error feedback animations

Handled edge cases like network failures and API errors gracefully

Framer Code ComponentsEmail.jsMailjet APIGoogle reCAPTCHAJavaScriptAsync/Await

Framer CMS — Custom Blog System

Set up and customized Framer CMS to create a fully functional blog system. This required learning Framer's CMS architecture from scratch and creating custom components that could dynamically render blog content with proper SEO optimization.

Configured Framer CMS collections for blog posts with custom fields

Created custom CMS components for blog listing and detail views

Implemented dynamic routing for individual blog posts

Built category and tag filtering system using CMS data

Added dynamic meta tags and Open Graph data for SEO

Designed responsive blog layouts that adapt to content length

Customized CMS field types for rich text, images, and metadata

Framer CMSJavaScriptDynamic RoutingSEO OptimizationResponsive Design

Analytics Tracking — Multi-Platform Integration

Implemented comprehensive tracking across Facebook, Google, and LinkedIn platforms. Had to inject custom JavaScript code into Framer's head section and implement event tracking throughout the site.

Integrated Facebook Pixel with custom event tracking

Set up Google Analytics (gtag.js) with conversion tracking

Implemented LinkedIn Insight Tag for B2B tracking

Created custom event triggers for key user actions

Ensured GDPR compliance with consent management

Tested tracking across all pages and interactions

Debugged pixel firing issues using browser developer tools

Facebook PixelGoogle AnalyticsLinkedIn Insight TagCustom EventsJavaScript

Custom Code Components — Icons & Interactions

Designed and implemented custom SVG icons and interactive elements using Framer's code component system. Had to balance Framer's design capabilities with custom code for advanced interactions.

Created custom SVG icon components with proper sizing and colors

Implemented hover animations using Framer Motion API

Built reusable component variants for different states

Ensured icons are accessible with proper ARIA labels

Optimized SVG code for performance and file size

Created consistent spacing and alignment system

Exported components for reuse across multiple pages

Framer Code ComponentsSVGFramer MotionCSSAccessibility

Learning Framer's Ecosystem — From Zero to Production

This was my first real project using Framer. I had to quickly learn Framer's component system, understand its constraints, and figure out how to implement traditional web development features within a primarily no-code platform.

Studied Framer's documentation and component architecture

Learned the difference between Framer components and code components

Understood Framer's responsive breakpoint system

Discovered how to inject custom code for advanced functionality

Learned to work with Framer CMS and its data binding

Figured out deployment process and custom domain setup

Mastered debugging techniques specific to Framer environment

FramerJavaScriptReactWeb DevelopmentProblem Solving

Working Around Framer's Limitations

Encountered several limitations where Framer's pre-coded functions couldn't be modified. Had to find creative workarounds to achieve the desired functionality while maintaining code quality and performance.

Identified which features required custom code vs. Framer's built-in tools

Found workarounds for non-customizable pre-coded functions

Balanced between Framer's design tools and custom JavaScript

Dealt with limited access to underlying code structure

Created hybrid solutions combining Framer components with code

Optimized code to work within Framer's constraints

Documented limitations and solutions for future reference

FramerJavaScriptCreative Problem SolvingCode Optimization

Key Technical Challenges & Learnings

1

First-Time Framer Experience — Steep Learning Curve

This was my first real project using Framer. I had to quickly understand Framer's entire ecosystem — its component system, CMS architecture, code component limitations, and deployment process — all while building a production website.

Solution:

I dedicated the first few days to intensively studying Framer's documentation, watching tutorials, and experimenting with the platform. I created a learning roadmap, identified which features I needed to master first, and progressively built complexity. I also joined Framer communities to learn from experienced developers and find solutions to specific problems.

2

Limited Customization Access — Working Within Constraints

Framer has pre-coded functions that cannot be modified, which was frustrating as a web developer used to having full control over code. Some features I wanted to implement were either impossible or required creative workarounds.

Solution:

I learned to think differently about implementation — instead of fighting the platform, I worked with its strengths. I identified which features could use Framer's built-in tools and which required custom code components. For non-customizable functions, I built wrapper components or used JavaScript injection to add functionality. I documented all workarounds for future projects.

3

Complex Form Integration — Email.js + Mailjet + reCAPTCHA

Implementing a dual email service system with spam protection in Framer was challenging. Email.js and Mailjet required different API approaches, and integrating reCAPTCHA within Framer's code component system was non-trivial.

Solution:

I created a custom code component that handled all three services. I implemented Email.js as the primary service with promise-based error handling, so if it failed, the system would automatically fall back to Mailjet. For reCAPTCHA, I injected the script into Framer's head and created a custom validation flow. I tested all edge cases including network failures, API timeouts, and invalid tokens.

4

Understanding Framer's Component System

Framer's component system is different from traditional React development. Understanding the relationship between Framer components, code components, variants, and overrides took significant time and trial-and-error.

Solution:

I systematically experimented with different component types, creating test components to understand how each feature worked. I learned when to use Framer's visual components versus code components, how to pass props between them, and how to create efficient component hierarchies. This hands-on experimentation accelerated my learning beyond just reading documentation.

5

Post-Launch Bug Fixes — Real-World Testing

After launching, several bugs appeared that weren't caught during development — form submission issues on certain browsers, tracking pixels not firing correctly, and mobile responsiveness problems.

Solution:

I implemented a systematic debugging process: recreated issues in different browsers, used browser DevTools to identify problems, and fixed them one by one. For the form issues, I improved error handling and added better user feedback. For tracking pixels, I debugged using Facebook Pixel Helper and Google Tag Assistant. I also set up better testing procedures for future projects.

Outcome

Successfully launched a fully functional, production-ready cybersecurity website using Framer — a platform I had never used before. The project was completed in 2 weeks of development (1 month total including revisions and bug fixes). The site now runs smoothly with all features working as intended: contact form with dual email services, reCAPTCHA protection, multi-platform analytics tracking, and a fully customized CMS-powered blog. Post-launch bugs were systematically identified and fixed. The website achieves outstanding performance scores: Lighthouse 100% Best Practices, GTmetrix 84% Performance and 90% Structure, with full SEO optimization and mobile responsiveness.

100%
Best Practices
84%
GTmetrix Performance
90%
GTmetrix Structure
2 Weeks
Development Time