- Deleted the NoData component to streamline the codebase as it is no longer needed.
- Refactored the SiteLayout component by removing unused NoData handling logic and commented-out code, enhancing clarity and maintainability.
- Introduced a new NoData component to display relevant messages when no data is available.
- Updated the Header component to include the NoData component for better user feedback.
- Refactored the SiteLayout component to remove the previous NoData handling logic, improving clarity.
- Replaced placeholder text in various components with the new NothingFound component for consistent empty state messaging.
- Removed the .env.example file as it is no longer needed.
- Added DISABLE_SIGNUP environment variable to docker-compose files for cloud and development environments.
- Updated setup script to include DISABLE_SIGNUP with a default value of false.
- Modified auth.ts to utilize DISABLE_SIGNUP for controlling signup functionality.
- Introduced DISABLE_SIGNUP constant in const.ts to manage its value from environment variables.
- Added domain property to site configuration in addSite and changeSiteDomain functions.
- Implemented domain retrieval and update methods in SiteConfig class.
- Introduced origin validation in trackEvent to ensure requests come from registered domains, improving security.
- Added a constant to disable origin checking for development environments.
- Added a new Logo component for consistent branding across the application.
- Updated the login page to include the logo at the top of the sign-in card.
- Enhanced the signup page with improved styling for input fields and buttons, including background colors and hover effects.
- Introduced background gradients and adjusted layout for a more visually appealing design.
- Refactored the TopBar component to utilize the new Logo component, improving code maintainability.
- Introduced a new docker-compose.cloud.yml file to support cloud deployment.
- Added services for Caddy, ClickHouse, Postgres, backend, and client with appropriate configurations.
- Updated environment variables for backend and client services to facilitate cloud integration.
- Removed cloud-related environment variables from the main docker-compose.yml for clarity.
- Added GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET to both docker-compose files for cloud support.
- Included GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET in the environment variables.
- Updated the auth.ts file to enable social login providers for cloud deployments.
- Changed all instances of demo.rybbit.io to app.rybbit.io in layout, page, and PricingSection components for consistency and to reflect the updated application URL.
- Ensured that the user experience remains seamless with updated links for sign-up and demo access.
- Removed "Cancel anytime" from the subscription checkout message for a more straightforward communication.
- Updated the main heading and introductory text on the documentation page to better reflect the service's value proposition.
- Changed button text to "Track your site now" to enhance user engagement.
- Simplified credit card requirement messaging across various components for improved user understanding.
- Simplified the SubscriptionData interface by reducing the number of subscription statuses to "expired", "active", and "trialing".
- Updated the pricing display in the Subscribe page and PricingSection component to show monthly pricing instead of annual, enhancing clarity for users.
- Removed redundant comments in globals.css to clean up the stylesheet.
- Renamed handleManageSubscription to createPortalSession for clarity and added flowType parameter to support different subscription actions.
- Introduced new handlers for changing, viewing, and canceling subscriptions, improving user interaction with the subscription management process.
- Updated UI to include separate buttons for changing plans, viewing subscription details, and canceling subscriptions, enhancing user experience and accessibility.
- Modified createPortalSession API to handle different flow types for subscription updates and cancellations, ensuring proper session management with Stripe.
- Deleted the subscription.ts file to streamline the codebase as it was no longer in use.
- Updated the useStripeSubscription hook to include additional subscription statuses for better handling of subscription states.
- Enhanced the Subscribe page to redirect users to the settings page if their subscription status is active.
- Cleaned up messaging in the pricing page to simplify user communication regarding event limits.
- Added the PricingSection component to the main page for improved visibility of pricing plans.
- Updated the FAQ section with new questions and answers regarding event limits and plan changes.
- Removed the outdated pricing metadata file to streamline the codebase.
- Adjusted button text for clarity and enhanced user messaging regarding trial terms.
- Deleted the PlanFeaturesCard component to streamline the subscription page.
- Updated ProPlan and TrialPlan components to remove references to PlanFeaturesCard.
- Refactored plan details handling in ProPlan to directly utilize STRIPE_PRICES for pricing information.
- Cleaned up unused imports and constants in planUtils and constants files for better maintainability.
- Changed button text from "Get Started for Free" to "Start 14 day free trial" for clarity.
- Removed the "No credit card required. Free plan available for small projects." text to simplify messaging.
- Improved the pricing page layout with background gradients for a more visually appealing design.
- Adjusted slider component styles for better user interaction and aesthetics.
- Cleaned up code formatting for consistency across components.
- Removed unused plan templates and related functions to streamline the subscription logic.
- Introduced a new feature list for the Pro plan, emphasizing key benefits for users.
- Updated the pricing display to improve clarity and user experience, including a more intuitive billing toggle.
- Added a FAQ section to address common user inquiries regarding event limits and plan changes.
- Enhanced the layout and styling for better responsiveness and visual appeal.
- Added @radix-ui/react-slider dependency to package.json and package-lock.json for improved UI components.
- Introduced a new pricing page metadata in _meta.js to enhance site navigation.
- Adjusted trial event limit in monthly-usage-checker.ts to better reflect user subscription tiers.
* events
* wip
* Remove standardsection
* Enhance EventList and EventProperties components with loading skeletons and size prop
- Added a loading skeleton to EventList and EventProperties components for improved user experience during data fetching.
- Introduced a size prop to both components to allow for flexible rendering of elements based on size (small or large).
- Updated EventsPage to pass the size prop to EventList for consistent styling.
* Implement pagination and filtering for event retrieval
- Enhanced the analytics API to support pagination and filtering for event data retrieval.
- Introduced a new endpoint for fetching events with pagination and filtering capabilities.
- Updated the `useGetEvents` hook to support infinite scrolling and real-time updates.
- Added a new `EventLog` component to the EventsPage for better event tracking.
- Refactored existing event fetching logic to accommodate new query parameters and maintain backward compatibility.
- Added 'city' field to UserInfo type and updated related API to include city data.
- Introduced getLanguageName utility function for improved language display in user and session details.
- Updated UserPage and SessionDetails components to display city and formatted language information.
- Refactored Countries component to remove redundant language name logic, utilizing the new utility function instead.
- Added a "No Data" message with an info icon in BaseStandardSection when no data is available.
- Improved layout in BaseStandardSectionDialog by adjusting alignment and overflow properties for better responsiveness.
- Updated the getLabel function in Pages component to truncate strings to 30 characters for improved display.
- Updated the analytics API to extract UTM parameters from a new structured `url_parameters` map instead of individual fields.
- Refactored SQL query generation to use a unified `getSqlParam` function for improved consistency and maintainability.
- Enhanced the `PageviewQueue` to capture all URL parameters, streamlining data collection for analytics.
- Introduced a new utility function, `getAllUrlParams`, to parse and manage URL parameters effectively.
- Updated the analytics API and data models to include UTM parameters: utm_source, utm_medium, utm_campaign, utm_term, and utm_content.
- Refactored the useGetGoals and useGetSessions functions to utilize filtered UTM parameters for improved data retrieval.
- Enhanced the Filters component to support UTM parameters, adding new filter options and updating the UI accordingly.
- Updated the Referrers section to include tabs for UTM parameters, allowing users to filter and analyze data based on UTM attributes.
- Improved documentation and type definitions to reflect the addition of UTM parameters across the application.
- Enhanced the introduction of Rybbit to emphasize its capabilities and updated the monthly event count from 10,000,000 to 15,000,000.
- Clarified the key features by specifying "web analytics" and added new features such as "cool visualizations" and "quick setup."
- Added a new section for the code repository and improved the community section with links for user engagement.
- Changed display property in _meta.js to use double quotes for consistency.
- Updated layout.jsx to point to the correct GitHub repository path for documentation.
- Added a roadmap entry in content metadata for future planning.
- Expanded the index.mdx file with a new community section, including links to Discord and X for user engagement.
- Removed animation classes from Card component for a cleaner design.
- Deleted the Showcase page as it was no longer needed.
- Added new sections and reorganized headings in documentation for clarity, including updates to 'Adding Users', 'Self Hosting', 'Track Events', and 'Tracker' pages.
- Updated the getSession function to derive session data from the events table, enhancing data accuracy and detail.
- Modified the getUserSessionCount function to count distinct session IDs from events instead of sessions, improving session tracking.
- Removed obsolete session table creation and materialized view definitions from Clickhouse initialization, streamlining the database setup.
- Changed all instances of the old demo link (tracking.tomato.gg) to the new demo link (demo.rybbit.io) in layout and page components.
- Updated the introduction in the documentation to reflect the new demo site URL.
- Replaced the deleteReport functionality with deleteFunnel, allowing for the deletion of funnels instead of reports.
- Updated the createFunnel API to reference the new funnels table and adjusted error handling for funnel existence and ownership checks.
- Modified the getFunnels API to fetch data from the funnels table, ensuring consistency in data retrieval.
- Removed the obsolete deleteReport file and updated schema to reflect the new funnels structure.
- Updated the Funnel component to include additional visual indicators for overall conversion and conversion from the previous step.
- Adjusted layout for better spacing and alignment of elements, enhancing readability.
- Simplified the rendering of funnel steps and drop-off metrics for improved user feedback.
- Incorporated percentage-based width for conversion bars to provide a clearer representation of user flow.
- Updated Funnel component to enhance the layout and spacing of elements for better visual clarity.
- Replaced bar height calculation with percentage-based width for a more responsive design.
- Added total conversion rate summary and improved user feedback on step metrics.
- Simplified the rendering of funnel steps and drop-off indicators for better readability.
- Added support for event property key and value in FunnelStep type to allow filtering based on event properties.
- Updated FunnelForm component to manage property filtering state and toggle functionality for event steps.
- Enhanced FunnelRow component to display event property information when applicable.
- Modified getFunnel API to include property matching in event queries, improving analytics capabilities.
- Adjusted grid layout for better spacing in the FunnelForm.
- Updated card padding for Funnel Steps and Filters sections to improve visual consistency.
- Enhanced input fields with additional styling and placeholder text for clarity.
- Implemented wildcard path matching support in the analytics API for funnel steps, improving flexibility in path definitions.
- Introduced FunnelRowSkeleton to provide a loading placeholder for funnel rows in the FunnelsPage, enhancing user experience during data fetching.
- Added GoalCardSkeleton to the GoalsPage for displaying loading states while goals data is being retrieved, improving visual feedback for users.
- Updated Sidebar component to reorder and reintroduce the Sessions, Users, and Retention links for better navigation.
- Modified the getRetentionColor function in the Retention component to enhance color handling, using consistent RGB values and blending techniques for improved visual representation based on retention percentage.
- Updated GoalCard to improve layout with additional margin for better spacing.
- Added a new visual indicator for the conversion rate at the bottom of the card, enhancing user feedback on goal performance.
- Updated GoalCard to include a visual representation of the goal's conversion rate, improving user feedback on goal performance.
- Adjusted padding in the layout for better visual consistency.
- Updated GoalCard to enhance goal type display with tooltips and improved layout for better user experience.
- Replaced icons for editing and deleting goals with updated versions for consistency.
- Modified GoalsList to use a flex layout for better responsiveness and spacing between goal cards.
- Changed the label from "Path Goal" to "Page Goal" in the GoalCard component for improved clarity.
- Enhanced the GoalFormModal to display goal types with icons and updated the UI for selecting goal types, allowing users to choose between "Page Goal" and "Event Goal" with better visual feedback.
- Refactored the goal type selection logic to improve user experience during goal creation and editing.
* Add goal management functionality in analytics
- Introduced goal creation, deletion, and updating capabilities in the analytics API, allowing users to define conversion goals based on path or event types.
- Implemented corresponding React hooks for managing goals, including fetching, creating, updating, and deleting goals.
- Enhanced the UI with a dedicated Goals page and components for listing and managing goals, improving user experience in tracking conversions.
- Updated package dependencies to include necessary libraries for form handling and validation.
* Enhance goals management with pagination and sorting
- Added pagination and sorting capabilities to the goals fetching logic in the analytics API, allowing users to navigate through goals more efficiently.
- Updated the GoalsPage component to manage current page state and handle page changes, improving user experience.
- Modified the GoalsList component to display pagination metadata and navigation controls, facilitating better goal management.
- Adjusted the server-side getGoals function to support pagination and sorting parameters, ensuring accurate data retrieval.
* Refactor GoalsPage and GoalCard components for improved UI and functionality
- Updated GoalsPage to include a SubHeader component and adjusted layout for better responsiveness.
- Enhanced loading and empty state handling in GoalsPage for a smoother user experience.
- Modified GoalCard to use icons for goal types, improving visual clarity and consistency in the UI.
* Refactor CreateGoalButton and GoalCard components for improved modal handling
- Updated CreateGoalButton to utilize a trigger prop for the GoalFormModal, simplifying modal state management.
- Refactored GoalCard to integrate GoalFormModal for editing goals, enhancing user interaction and reducing state complexity.
- Removed unnecessary state management and modal handling from both components, streamlining the codebase.
* Refactor GoalCard and Clickhouse initialization for improved code clarity
- Removed unnecessary imports in GoalCard component, streamlining the code.
- Updated Clickhouse initialization to include a new 'props' JSON field alongside 'properties', enhancing data structure for analytics.
- Added a utility function in PageviewQueue to parse properties, improving error handling and data integrity.
* enable clickhouse
* fix ch build
* fix ch build
* fix ch build
* wip
* wip
* wip
* Enable json
* add network
* add network
* Refactor Clickhouse configuration and remove unused properties from data models
* Refactor property value handling in analytics queries to utilize native JSON types in ClickHouse, improving type safety and performance.
- Modified the response of the deleteSite function to return a success message in the response body, enhancing clarity for the client regarding the operation's outcome.
- Added resetStore function to clear site-related state in the store, ensuring a fresh start when switching sites.
- Integrated resetStore call in SiteSelector component to trigger state reset upon site selection, improving user experience.
- Changed siteId in JourneyParams to be optional and updated its usage in the JourneysPage component to utilize siteMetadata for improved data retrieval.
- Added conditional checks for siteMetadata to ensure proper rendering and functionality.
- Enhanced link handling in the SVG rendering to include site domain, improving user navigation experience.
- Updated the countryPopulations record to include population figures for Serbia (6.7 million), Romania (19.1 million), and Bulgaria (6.8 million), enhancing the dataset for demographic analysis.
- Updated the getSite function to utilize getUserHasAccessToSitePublic for improved access control based on user permissions.
- Introduced a godMode boolean in the user schema to allow users with elevated privileges to access all sites.
- Enhanced the getSitesUserHasAccessTo function to check for godMode status, enabling users with this privilege to retrieve all sites directly.