Where Frontier Tower ideas become reality through community collaboration
Frontier Forge is a streamlined voting platform for the Frontier Tower community to propose and prioritize building improvements. Ideas flow through submission → voting → approval → external tracking.
- Idea Submission: Community members can submit building improvement ideas
- Democratic Voting: Upvote system to surface the best proposals
- Real-time Updates: Server-sent events for live vote counts and new ideas
- Top Ideas View: See the most voted proposals ready for implementation
- Tag System: Organize ideas by categories (wellness, equipment, renovation, etc.)
- Responsive Design: Beautiful UI with micro-interactions and animations
- Framework: SvelteKit 5 with Svelte runes
- Database: PostgreSQL with Prisma ORM (Supabase hosted)
- Styling: Tailwind CSS with custom Frontier Tower design system
- Authentication: JWT sessions with Frontier Tower OAuth
- Real-time: Server-Sent Events (SSE)
- Deployment: Fly.io
Frontier Forge implements the Modern Professional Elegance design with:
- Custom Frontier purple brand colors
- Smooth micro-interactions and animations
- Responsive typography and spacing
- Accessibility-first component design
# Clone the repository
git clone https://github.com/frontiertower/frontier-forge.git
cd frontier-forge
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your database and auth credentials
# Push database schema
npm run db:push
npm run db:generate
# Start development server
npm run devfrontier-forge/
├── src/
│ ├── routes/ # SvelteKit routes
│ ├── lib/
│ │ ├── components/ # Reusable Svelte components
│ │ ├── server/ # Server-side utilities
│ │ └── stores/ # Client stores (SSE updates)
│ └── app.css # Global styles and animations
├── prisma/
│ └── schema.prisma # Database schema
└── static/ # Static assets
npm run dev # Start dev server
npm run build # Build for production
npm run preview # Preview production build
npm run check # Type-check Svelte components
npm run db:push # Push schema to database
npm run db:generate # Generate Prisma client
npm run db:studio # Open Prisma StudioThis app is configured for deployment on Fly.io:
# Deploy to Fly.io
flyctl deployRequired environment variables:
DATABASE_URL: PostgreSQL connection string (with pooler)DIRECT_URL: Direct database connection (for migrations)JWT_SECRET: Secret for JWT tokens (min 32 chars)FRONTIER_CLIENT_ID: OAuth client IDFRONTIER_CLIENT_SECRET: OAuth client secret
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this for your own communities!