- Replaced direct usage of STRIPE_PRICES with a new getStripePrices function for improved flexibility in pricing retrieval.
- Updated pricing details in the STRIPE_PRICES constant to reflect new price IDs.
- Enhanced subscription handling in various components to utilize the updated pricing structure.
- Changed subscription cancellation message from "Ends on" to "Cancels on" for clarity.
- Updated subscription data structure to require `cancelAtPeriodEnd` field.
- Adjusted Stripe pricing for various plans, increasing monthly and annual prices.
- Modified pricing display logic in the PricingSection component to reflect new prices.
- Increased default event limit for users without an active subscription from 10,000 to 100,000.
- Enhanced subscription retrieval to include `cancelAtPeriodEnd` status.
- Introduced NEXT_PUBLIC_DEMO environment variable in docker-compose for demo mode configuration.
- Updated EventList component to display a "No Data" message when in small size mode.
- Enhanced TopBar component to show a sign-up link when in demo mode.
- Added IS_DEMO constant to manage demo mode state in the application.
- Updated CORS origin validation to use a new `normalizeOrigin` function, ensuring consistent handling of incoming requests.
- Introduced `normalizeOrigin` utility to standardize URLs by removing the 'www.' prefix.
- Adjusted allowed domains loading to directly use domain names without adding 'https://' prefix, improving flexibility.
- 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.