STARTER
theunpartystarter
Location: https://github.com/unparty-app/theunpartystarter
Status: Active Development
Primary Purpose: Foundation blogging platform and brand identity system
Welcome to UNPARTY.APP!
UNPARTY is a dynamic blogging platform that evolves as content is created, serving as the foundational starter template for the UNPARTY ecosystem. This repository represents the initial implementation of ideas, stories, and research compiled through personal growth, creative exploration, and the acceptance that a plan is merely the beginning of a journey.
Tech Stack
- Framework: RedwoodJS 7.7.3 (Full-stack React framework)
- Language: TypeScript
- Database: PostgreSQL via Prisma ORM
- Authentication: Clerk
- Deployment: Vercel
- Styling: Tailwind CSS
- Build Tool: Yarn 4.2.2
- Node Version: 20.x
Key Features
Content Management
- Blog/Post System: Create and manage blog posts with comments
- Articles: Dedicated article management system
- Stories: Curated story navigation and presentation
- MDX Support: Rich content creation with MDX format
- Rich Text Editor: React Quill integration for content editing
Brand Identity System
- Brand Name Management: Customizable brand naming with font selection
- Brand Descriptions: 360-character descriptions with secondary fonts
- Brand Icons: Icon management system
- Color Palette System: Dynamic color theming
- Card backgrounds
- Icon foregrounds/backgrounds
- Primary and secondary colors
- Custom background and text color pickers
User Experience
- Landing Page Builder: Customizable landing pages with brand elements
- About Section: Detailed about pages with priority lists
- Contact Form: User contact and messaging system
- Multiple Specialized Pages: Mission, Mood, Effects, 30x30, Founders, Civic engagement
- Responsive Design: Mobile-first approach with Tailwind CSS
Admin Features
- Admin Panel: Content management interface
- Build Tab: Development and construction workflows
- Priority Management: Task and priority list system
- Navigation Cards: Modular navigation components
- Universal Sidebar: Consistent navigation across platform
Developer Experience
- GraphQL API: Type-safe API with SDL definitions
- Testing Infrastructure: Jest configured for both API and web
- Storybook Integration: Component development and documentation
- Dev Playground: Experimental feature testing environment
Architecture
Code
RedwoodJS Application
├── Web Side (Frontend)
│ ├── Pages (HomePage, AboutPage, BlogPage, etc.)
│ ├── Layouts (UniversalLayout, BlogLayout, StoriesLayout)
│ ├── Components (70+ reusable components)
│ │ ├── Brand System (BrandName, BrandDescription, BrandIcon)
│ │ ├── Color System (BgColorPicker, TextColorPicker, ColorCell)
│ │ ├── Content (Article, Post, Comment, RichTextEditor)
│ │ ├── Navigation (Header, Footer, Sidebar, NavigationCards)
│ │ └── UI Elements (Card, Grid, Form, Button components)
│ ├── Store (Redux state management)
│ ├── MDX Content
│ └── GraphQL Queries
│
├── API Side (Backend)
│ ├── GraphQL Schema (SDL files)
│ │ ├── posts.sdl.ts
│ │ ├── abouts.sdl.ts
│ │ ├── brandNames.sdl.ts
│ │ ├── brandDescriptions.sdl.ts
│ │ ├── brandIcons.sdl.ts
│ │ ├── colors.sdl.ts
│ │ ├── comments.sdl.ts
│ │ ├── contacts.sdl.ts
│ │ ├── users.sdl.ts
│ │ └── landingPages.sdl.ts
│ ├── Services (Business logic)
│ │ ├── Brand Services (brandNames, brandDescriptions, brandIcons)
│ │ ├── Content Services (posts, abouts, mdxes, comments)
│ │ └── User Services (users, contacts)
│ └── Database (Prisma + PostgreSQL)
│ └── schema.prisma (10+ models)
│
└── Shared Configuration
├── TypeScript Config
├── Tailwind Config
├── ESLint Config
└── Prettier ConfigDatabase Schema
The application uses PostgreSQL with the following core models:
- Post: Blog posts with comments relationship
- Comment: User comments on posts
- User: Authentication and user management with roles
- About: About section content with rich customization
- Contact: Contact form submissions
- LandingPage: Customizable landing pages with brand elements
- Color: Color palette management (card, icon, backgrounds)
- BrandName: Brand identity with custom fonts
- BrandDescription: Brand descriptions with secondary fonts
- BrandIcon: Brand icon management
Integration Points
Authentication
- Clerk: User authentication and session management
- Environment variable:
CLERK_PUBLISHABLE_KEY
Deployment
- Vercel: Hosting and deployment platform
- Vercel Analytics integration via
@vercel/analytics - Experimental Corepack enabled
External Services
- PostgreSQL: Production database (DATABASE_URL)
- Vercel Blob: File storage (likely for images/media)
Development Tools
- RedwoodJS CLI: Project scaffolding and management
- Prisma: Database ORM and migrations
- GraphQL: API layer with type safety
- Storybook: Component development and documentation
Business Value
ABOUT (Understanding)
theunpartystarter helps users understand the UNPARTY vision through:
- Personal Storytelling: Share experiences, ideas, and research compiled through personal growth
- Brand Identity Exploration: Discover and define brand identity through customizable elements
- Content Organization: Structured content system for articles, posts, and stories
- Mission Communication: Dedicated pages for mission, mood, and foundational concepts
BUILD (Creation)
theunpartystarter enables creation through:
- Content Creation Tools: Rich text editor, MDX support, and flexible content management
- Brand Building System: Comprehensive tools for creating and managing brand identity
- Customization Framework: Color palettes, fonts, icons, and layout customization
- Developer Playground: Experimental environment for testing new ideas
- Template Foundation: Starter template for building additional UNPARTY applications
CONNECT (Sharing)
theunpartystarter facilitates connection through:
- Public Blog Platform: Share posts and articles with readers
- Comment System: Enable dialogue and community engagement
- Contact Forms: Direct communication channels
- Navigation System: Intuitive navigation cards and sidebar for content discovery
- Landing Pages: Customizable entry points for different audiences
- Stories Feature: Curated narrative experiences
Relationship to UNPARTY Ecosystem
Position in Ecosystem
theunpartystarter serves as the foundational web platform in the UNPARTY ecosystem:
- Starter Template: Provides the baseline architecture for web applications
- Brand System Origin: Establishes brand identity patterns used across ecosystem
- Content Foundation: Defines content structure (posts, articles, stories) used elsewhere
- Design System: Establishes UI/UX patterns (navigation cards, sidebars, color system)
Integration with Other Repositories
Supports theunpartyapp (Main Web Platform):
- Provides architectural patterns and component library foundations
- Establishes brand identity system architecture
- Defines content management patterns
Complements theunpartyunppp (Native App):
- Shares conceptual model of stories and content
- Provides web counterpart to native journaling experience
- Common brand identity system
Tracked by theunpartyrunway (Dev Tools):
- Development velocity and cost tracking
- GitHub workflow automation
- Sprint and calendar management
Analyzed by theunpartycrawler (Analytics):
- Content processing and analysis
- Conversation analytics about development decisions
- Usage pattern insights
Data Flow
Code
Users → theunpartystarter (Content Creation)
↓
PostgreSQL (Content Storage)
↓
Clerk (Authentication)
↓
Vercel (Deployment)Getting Started
Prerequisites
- Node.js 20.x
- Yarn 4.2.2
- PostgreSQL database
Installation
bash
# Clone the repository
git clone https://github.com/unparty-app/theunpartystarter.git
cd theunpartystarter
# Install dependencies
yarn install
# Set up environment variables
cp .env.example .env
# Edit .env with your DATABASE_URL and CLERK_PUBLISHABLE_KEY
# Set up database
yarn rw prisma migrate dev
# Start development server
yarn rw devDevelopment
bash
# Run development server (opens browser automatically)
yarn rw dev
# Run tests
yarn rw test
# Run Storybook
yarn rw storybook
# Database operations
yarn rw prisma migrate dev # Create and apply migrations
yarn rw prisma db push # Push schema changes (prototyping)
yarn rw prisma studio # Open Prisma Studio GUI
# Code generation
yarn rw g page MyPage # Generate page
yarn rw g component MyComp # Generate component
yarn rw g service MyService # Generate serviceBuild & Deploy
bash
# Build for production
yarn rw build
# Deploy to Vercel (configured in vercel.json)
# Automatic deployment via Git push to main branchProject Structure
Code
theunpartystarter/
├── api/ # Backend API
│ ├── db/
│ │ ├── schema.prisma # Database schema
│ │ └── migrations/ # Database migrations
│ └── src/
│ ├── graphql/ # GraphQL SDL definitions
│ └── services/ # Business logic services
│
├── web/ # Frontend application
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # 70+ React components
│ │ ├── layouts/ # Page layouts
│ │ ├── pages/ # Page components (30+ pages)
│ │ ├── lib/ # Utility functions
│ │ ├── store/ # Redux state management
│ │ ├── data/ # Static data
│ │ ├── mdx/ # MDX content
│ │ └── graphql/ # GraphQL queries
│ └── config/ # Web configuration
│
├── scripts/ # Utility scripts
├── .vscode/ # VS Code settings
├── redwood.toml # RedwoodJS configuration
├── tailwind.config.js # Tailwind CSS configuration
├── vercel.json # Vercel deployment config
└── package.json # Dependencies and scriptsConfiguration Files
- redwood.toml: RedwoodJS app configuration (ports, API URLs, environment variables)
- tailwind.config.js: Tailwind CSS customization
- prettier.config.js: Code formatting rules
- graphql.config.js: GraphQL tooling configuration
- jest.config.js: Test configuration
- vercel.json: Vercel deployment settings with Corepack support
Key Design Patterns
Component Organization
- Atomic Design: Components organized from atoms to organisms
- Feature-Based: Components grouped by feature (Brand, Color, Navigation)
- Reusability: 70+ reusable components for consistent UI
State Management
- Redux Toolkit: Global state management for complex UI state
- GraphQL Cells: RedwoodJS pattern for data fetching with loading/error states
- Local State: React hooks for component-level state
Content Strategy
- Multiple Content Types: Posts, Articles, Stories, About pages
- Rich Content: MDX support for interactive content
- Flexible Structure: Customizable sections with priority lists
Brand Identity
- Composable System: Brand elements (name, description, icon, colors) managed independently
- Theme Support: Dynamic color theming with preview capability
- Font Flexibility: Custom font selection per brand element
Testing Strategy
- Unit Tests: Jest test files alongside components and services
- Scenarios: Prisma seed scenarios for service testing
- Storybook: Visual testing and component documentation
- Type Safety: TypeScript for compile-time error detection
Quality & Standards
Code Quality
- ESLint: Extends
@redwoodjs/eslint-config - Prettier: Consistent code formatting with Tailwind plugin
- TypeScript: Strong typing throughout the application
- EditorConfig: Consistent editor settings
Best Practices
- Separation of Concerns: Clear API/Web boundary
- Type Safety: GraphQL SDL → TypeScript type generation
- Testing: Scenarios and test files for all services
- Documentation: Storybook for component documentation
Alignment with UNPARTY Values
Creator Ownership
- Self-Hosted Content: PostgreSQL database under creator control
- No Lock-In: Open-source RedwoodJS framework
- Export Capability: Full database access via Prisma
Privacy Protection
- Authentication Required: Clerk-based user authentication
- Role-Based Access: User roles (moderator, etc.) in schema
- Secure Sessions: Clerk session management
Cost Sensitivity
- Vercel Deployment: Efficient serverless deployment
- PostgreSQL: Cost-effective database solution
- Optimized Build: Production build optimization
- Tracked Development: Integration with theunpartyrunway cost tracking
Contributing
This repository represents the foundational starter template for UNPARTY. When contributing:
- Follow RedwoodJS conventions and best practices
- Maintain TypeScript type safety
- Add tests for new features
- Update Storybook for new components
- Keep the brand identity system flexible and extensible
- Document new features and patterns
RedwoodJS Resources
Building with RedwoodJS provides powerful full-stack capabilities:
- Tutorial: RedwoodJS Tutorial - One of the best getting-started tutorials
- Forum: Community Forum - Stay updated with announcements
- Twitter: @redwoodjs - Follow for updates
- Newsletter: RedwoodJS Newsletter - Subscribe for news
- Contributing: How to Contribute
Ecosystem Metrics
| Metric | Value |
|---|---|
| Components | 70+ reusable components |
| Pages | 30+ specialized pages |
| Database Models | 10 core models |
| GraphQL Schemas | 10 SDL definitions |
| Layouts | 5 layout templates |
| Authentication | Clerk-based with roles |
| Framework Version | RedwoodJS 7.7.3 |
| Node Version | 20.x |
Development Philosophy
theunpartystarter embodies the UNPARTY philosophy:
"I am going to be building out all the ideas, stories, and research I compiled through a year navigating grief, failing often, and accepting that a plan is nothing but an idea."
This repository is:
- Exploratory: A playground for testing ideas
- Iterative: Built through continuous learning and adaptation
- Personal: Rooted in authentic experience and storytelling
- Foundation: A starting point for broader ecosystem development
Roadmap & Vision
Current State
- ✅ Core blogging platform operational
- ✅ Brand identity system implemented
- ✅ Multiple content types supported
- ✅ Authentication and user management active
- ✅ Responsive design with Tailwind CSS
- ✅ Admin panel and build tools
Future Directions
- Integration with theunpartyapp (main web platform)
- Enhanced MDX content capabilities
- Advanced color theme system
- Extended brand customization options
- Improved admin workflows
- Performance optimization
Related Documentation
- UNPARTY Ecosystem: See ecosystem overview documentation
- theunpartyapp: Main web platform (Next.js)
- theunpartyunppp: Native iOS/macOS app (Swift)
- theunpartyrunway: Development automation and tracking
- theunpartycrawler: Analytics and intelligence platform
License
Part of the UNPARTY ecosystem.
Contact
For questions, contributions, or collaboration:
- Website: UNPARTY.APP
- Repository: https://github.com/unparty-app/theunpartystarter
Status: 🚀 Active Development
Focus: Building the foundational template for UNPARTY ecosystem while protecting creator ownership, privacy, and cost-sensitivity through transparent development and personal storytelling.