Glisten AI
Thursday, April 17, 2025
Building Glisten.ai: A Modern Website with Next.js and Prismic CMS
I recently completed work on Glisten.ai, a modern marketing website that showcases the power of combining cutting-edge web technologies with a headless CMS approach. This project demonstrates how developers can create beautiful, performant, and easily maintainable websites using the right tech stack.
🎯 Project Overview
Glisten.ai is a marketing website built with a focus on performance, maintainability, and content flexibility. The site features a component-based architecture that allows non-technical team members to easily manage and update content through an intuitive CMS interface.
🛠️ Tech Stack
The project leverages a modern tech stack that prioritizes developer experience and site performance:
- Next.js 15+ - React framework with App Router for optimal performance and SEO
- Prismic CMS - Headless CMS for flexible content management
- TypeScript - Type-safe development experience
- Tailwind CSS - Utility-first CSS framework for rapid styling
- Vercel - Deployment platform with automatic deployments
🏗️ Architecture Highlights
Component-Based Design with Slice Machine
One of the most interesting aspects of this project is the use of Prismic's Slice Machine. This approach allows content creators to build pages using predefined, reusable components (called "slices"):
- Hero Slice - Eye-catching page headers with animations
- Bento Slice - Grid-based content layouts
- Case Studies Slice - Portfolio showcases
- Call to Action Slice - Conversion-focused sections
- Integrations Slice - Partner/integration displays
- Showcase Slice - Feature demonstrations
Each slice is a self-contained React component that can be mixed and matched to create unique page layouts without requiring developer intervention.
Type Safety Throughout
The project implements comprehensive TypeScript integration:
// Generated types from Prismic schemas
export type HeroProps = SliceComponentProps<Content.HeroSlice>;
// Type-safe component implementation
const Hero: FC<HeroProps> = ({ slice }) => {// TypeScript ensures all slice data is properly typed
};
Performance Optimizations
- Next.js App Router for improved loading performance
- Turbopack for faster development builds
- Vercel Analytics and Speed Insights for performance monitoring
- Optimized images through Prismic's CDN and Next.js Image component
🎨 Design Philosophy
The website features a modern, glass-morphism design aesthetic with:
- Custom animated components that bring the interface to life
- Glass-like UI elements with blur effects and transparency
- Gradient backgrounds and subtle animations
- Mobile-first responsive design ensuring great experiences across all devices
- Interactive star grid animations for visual appeal
🔧 Development Experience
Local Development Workflow
The project includes a streamlined development experience:
npm run dev
This single command starts both the Next.js development server and Slice Machine, allowing developers to:
- Preview content changes in real-time
- Modify slice components
- Test responsive designs
- Debug with hot module replacement
Content Management Flow
1. Content creators use Prismic's intuitive interface to build pages
2. Developers create and maintain slice components
3. Automatic deployments ensure changes go live seamlessly
4. Preview functionality allows content review before publishing
📚 Key Learnings
Headless CMS Benefits
Working with Prismic demonstrated several advantages of headless CMS architecture:
- Separation of concerns - Developers focus on code, content creators focus on content
- Flexibility - Content can be reused across multiple channels
- Performance - API-driven content delivery with caching capabilities
- Scalability - Easy to add new content types and fields
Component Reusability
The slice-based approach encouraged creating highly reusable components:
// Bounded component for consistent page layouts
const Bounded = ({ children, className, ...props }) => {return (
<div className={clsx("px-4 py-8 md:px-6 lg:px-8", className)} {...props}><div className="mx-auto max-w-6xl">
{children}</div>
</div>
);
};
Type-Safe Content Management
TypeScript integration with Prismic provides excellent developer experience:
- Auto-generated types from CMS schemas
- IntelliSense for content fields
- Compile-time error checking for content structure changes
🚀 Results and Impact
The final website achieves:
- Excellent performance scores with Next.js optimizations
- Easy content management for non-technical team members
- Maintainable codebase with clear separation of concerns
- Responsive design that works beautifully on all devices
- SEO-friendly structure with proper meta tags and semantic HTML
🎓 Lessons for Future Projects
This project reinforced several important principles:
1. Choose the right CMS - Headless CMS solutions like Prismic offer tremendous flexibility
2. Invest in TypeScript - The initial setup pays dividends in development speed and code quality
3. Component thinking - Building reusable components from the start saves time and ensures consistency
4. Performance matters - Modern web frameworks like Next.js provide excellent performance out of the box
5. Developer experience drives quality - Good tooling leads to better code and faster development
🔮 What's Next?
Future enhancements could include:
- Internationalization support for multiple languages
- Advanced analytics integration for better user insights
- A/B testing capabilities for conversion optimization
- Enhanced accessibility features
- Progressive Web App functionality
---
Building Glisten.ai was an excellent opportunity to explore modern web development practices and demonstrate how the right technology choices can create websites that are both beautiful and maintainable. The combination of Next.js and Prismic creates a powerful foundation for any marketing website that needs to balance performance, flexibility, and ease of use.
Have questions about the implementation or want to discuss headless CMS approaches? Feel free to reach out or check out the source code on GitHub
© 2025 Amadou Seck. Published on aseck.dev