29127d7ed51e1f8f9fd91ed4e12f59a17bb756e0
Root cause 1: hydration mismatch — SSR rendered collapsed=true but client useState initializer read localStorage synchronously, causing an immediate state change and visual flash. Fix: always initialize collapsed=true, read localStorage in useEffect so the transition is smooth (collapsed→expanded animates cleanly). Root cause 2: three-phase badge rendering (skeleton→letter→favicon) caused visible state changes. Fix: just show the empty orange badge until the favicon arrives. No skeleton, no letter fallback. One state transition: empty→favicon.
Pulse
Pulse is a privacy-first analytics platform by Ciphera. Use it as a hosted service—no self-hosting required.
Get Pulse
Pulse is available as a commercial product. Hosted in Switzerland, it gives you real-time analytics and insights without compromising your visitors' privacy.
Features
- Privacy-First Dashboard: Simple, clean interface for viewing analytics
- Site Management: Create, edit, and delete sites
- Real-time Stats: Live visitor counts and real-time updates
- Analytics Views: Pageviews, visitors, top pages, referrers, countries
- Dark Mode: Full dark mode support
- Responsive Design: Works on desktop and mobile
Technology Stack
- Framework: Next.js 16+ (App Router)
- Styling: Tailwind CSS with Ciphera design tokens
- Charts: Recharts for data visualization
- Authentication: OAuth flow with ciphera-auth
- UI Components: @ciphera-net/ui for shared components
- Hosting: Swiss infrastructure
Contributing
This repository is open source. If you want to contribute (bug fixes, features, docs), see CONTRIBUTING.md for setup and workflow.
Releasing
Changelog and release process (who updates it, when, how to tag, deploy) are documented in docs/releasing.md. Versions use 0.x.y while in initial development; the single product changelog is CHANGELOG.md.
Design System
The frontend follows the Ciphera design language:
- Brand Color: Orange (#FD5E0F) - used as accent only
- Neutral Colors: Full scale (50-900) for UI elements
- Dark Mode: Full support with class-based switching
- Font: Plus Jakarta Sans
- Design Patterns:
- Rounded corners (rounded-xl, rounded-3xl)
- Smooth transitions (duration-200, duration-300)
- Shadow effects with brand-orange accents
License
AGPL-3.0
Description
Pulse is a privacy-first web analytics dashboard. A simple, lightweight Google Analytics alternative with no cookies, GDPR compliant, and open source.
https://pulse.ciphera.net
Readme
AGPL-3.0
25 MiB
Languages
TypeScript
96.5%
MDX
1.7%
JavaScript
1.6%
CSS
0.2%