Skip to content

Releases: babayaga0x/CRAWRIX-v4.0.0

GRAND UPDATE - v4.0.0 🚀

Choose a tag to compare

@babayaga0x babayaga0x released this 30 Sep 16:52
1b6b1be

NEW GRAND UPDATE - v4.0.0 🚀

What's Changed?

  • Reorganized the frontend architecture.
  • Separated API communication from the main App.tsx component.
  • Added a dedicated search API layer at src/features/search/searchApi.ts.
  • Added structured TypeScript types for search results.
  • Added reusable URL truncation utility.
  • Improved separation between UI components, API communication, and result processing.
  • Added asynchronous search processing with asyncio.gather().
  • Added concurrent parsing across multiple search and knowledge sources.
  • Added support for Bing, Yahoo, DuckDuckGo, Wikipedia, Reddit, Qwant, and Stack Exchange.
  • Added automatic result classification:
    • news
    • technical
    • knowledge
    • discussion
    • general

CRAWRIX
  • Added URL normalization and duplicate result merging.
  • Added visual category badges to search results.
  • Improved search result layout and presentation.
  • Added Flask async view support.
  • Updated CORS configuration for the deployed frontend.
  • Updated frontend API communication with the deployed Flask backend.
  • Added Progressive Web App (PWA) support.
  • Added service worker registration and installable application support.

Backend

  • Reorganized the search processing pipeline.
  • Refactored the /parse endpoint for asynchronous parser execution.
  • Added concurrent execution of independent search parsers.
  • Added centralized URL normalization.
  • Added source detection and result merging.
  • Added request rate limiting.
  • Updated Flask configuration to support async views.

Frontend

  • Reorganized frontend responsibilities.
  • Moved API logic from App.tsx into searchApi.ts.
  • Added structured SearchResult and LinkResult types.
  • Added result category badges.
  • Improved result presentation.
  • Added reusable URL truncation logic.
  • Added PWA support with vite-plugin-pwa.
  • Added application installation support.

Architecture

The v4.0.0 update reorganizes the project into clearer layers:

  • UI components
  • Search API
  • Search parsers
  • Result processing
  • URL normalization
  • Source classification

This provides a cleaner foundation for future features such as smarter result ranking, AI-assisted classification, and additional search sources.

New Update - v3.1.0💥

Choose a tag to compare

@babayaga0x babayaga0x released this 06 Mar 15:33
4a7e08a

📦 New Updates - v3.1.0

🔍 What's Changed?

  • Fully redesigned UI - minimalist dark theme with #e8e8e8 accent
  • Replaced gold color palette with neutral soft-white system
  • Added animated search rings background (CSS-only, no JS)
  • Improved input and button UX for mobile and desktop
  • Rounded corners across all components (iPhone-style, 20px)
  • Removed scrollbar globally for cleaner look
  • Fixed search rings jitter on scroll using will-change and translateZ(0)
  • Applied modern CSS: @layer, @property, color-mix(), container queries, :has(), text-wrap: balance
  • Added env(safe-area-inset-bottom) support for iOS notch devices
  • Improved modal on tablet - now renders as bottom sheet
  • Added 100dvh for correct mobile viewport handling
  • Added touch-action: manipulation and min-height: 44px on all interactive elements

📋 Context

The previous UI used a gold/yellow palette with hard borders and basic styling. This update brings the design in line with modern UI/UX standards - clean, minimal, dark, and mobile-first. No third-party UI libraries were used; everything is pure CSS.

✅ Checklist

  • Code is formatted (e.g., with black, prettier)
  • Tested locally
  • No temporary or debug code remains
  • All new dependencies are documented
  • README.md is updated if needed

🧪 Testing

  • Tested on Chrome, Firefox, Safari (desktop)
  • Tested on iOS Safari and Android Chrome (mobile)
  • Verified modal bottom sheet behavior on tablet
  • Verified search rings stay fixed on scroll without jitter
  • Verified iOS zoom-on-focus is prevented (font-size: 16px on mobile input)

💬 Additional Notes

  • Search rings are implemented via CSS pseudoelements on body and two empty #rings, #rings2 divs in index.html - reviewers should be aware of these divs
  • @layer order: base → layout → components → states
  • color-mix() is used for hover states - check browser support if IE11 compatibility is needed (it's not supported there)
Example

🪐GRAND UPDATE v3.0.0 – Changes Overview

Choose a tag to compare

@babayaga0x babayaga0x released this 13 Sep 00:14
419e2bf

🪐GRAND UPDATE v3.0.0 – Changes Overview

Removed

  • Aggressive mode from both frontend and backend.
  • OpenLibrary API (no longer used for link fetching).
  • Any UI components related to aggressive mode (e.g., AggressiveModeToggle in React).
  • Yahoo search included only as a basic fallback; aggressive combined queries were removed.

Added

  • Integration with Qwant API (free search engine) for keyword-specific searches.
  • Integration with Hacker News API to fetch relevant posts.
  • Integration with StackExchange API to search questions and answers exactly matching keywords.
  • DuckDuckGo, Bing, Wikipedia, Reddit remain as search sources.
  • Frontend automatically sends keywords and language to backend without any aggressive mode parameters.
  • Exact keyword search for all APIs where possible to improve relevance.

Modified / Improved

  • Refactored backend to synchronous requests (removed async) to simplify fetching from multiple APIs.
  • Simplified frontend UI: removed aggressive mode toggle and related labels.
  • Improved URL safety checks:
    • Validate scheme (http/https)
    • Block private, reserved, loopback, multicast IPs
    • Block localhost domains
  • Standardized maximum links per keyword to 15 across all sources.
  • Backend enforces keywords list ≤10 and keyword length ≤50 characters.
  • Added safer requests.Session() usage for all API calls.
  • Improved error handling for fetch failures (returns empty list instead of crashing).
  • Limiting API calls: 10 requests per minute per client IP via Flask-Limiter.
  • Frontend now sends only safe parameters (keywords, lang) and uses Suspense for lazy-loaded components.
  • Reduced dependency on IP for safety (more focus on URL validity and safe parsing).
  • All previous aggressive mode CSS / UI classes removed.

🌀 GRAND UPDATE v2.0.0

Choose a tag to compare

@babayaga0x babayaga0x released this 14 Jul 01:06
07199e1

🌀 GRAND UPDATE v2.0.0

🔍 What’s Changed?

Security Improvements:

  • Implemented URL safety validation:

    • Blocked private IP ranges (192.168.x.x, 10.x.x.x, 172.16.x.x).
    • Blocked localhost addresses (127.0.0.1, localhost, ::1).
    • Blocked reserved, loopback, and multicast IPs.
    • Allowed only http and https URL schemes.
  • Added Input Validation:

    • keywords must be a list.
    • Limited to 10 keywords per request.
    • Each keyword must be a string and no longer than 50 characters.
  • Added Error Handling:

    • All HTTP requests are wrapped with try-except to catch connection and parsing issues.
    • Prevented unexpected crashes if DuckDuckGo or Yahoo changes their page structure.
  • Added Request Rate Limiting:

    • Global limit: 10 requests per minute.
    • /parse endpoint: 5 requests per minute.

Technical Stack Used:

Feature Library Purpose
SSRF Protection ipaddress, urllib Block unsafe network targets
Rate Limiting Flask-Limiter 3.12 Prevent DoS / abuse attacks
HTML Parsing BeautifulSoup Safe scraping of search results
HTTP Requests requests External requests with error handling
CORS Handling flask_cors Control allowed client origins

🧪 Testing

  • Verified SSRF protection with safe and unsafe URLs (e.g., private IPs, localhost).
  • Simulated search engine structure changes to ensure graceful failure.
  • Tested rate limiting behavior by sending rapid requests.
  • Validated keyword input constraints and error messages.

💬 Additional Notes

Reviewers should focus on:

  • URL safety logic correctness.
  • Rate limiting thresholds.
  • Keyword validation constraints.
  • Error message consistency for client-side handling.

v1.4.1 🔄 - Patch

Choose a tag to compare

@babayaga0x babayaga0x released this 14 Jul 01:31
07199e1
  • The project has been renamed to something more recognizable - Crawrix

v1.4.0 🌎 - Full Stack Launch & Mobile Readiness

Choose a tag to compare

@babayaga0x babayaga0x released this 29 May 01:21
688290a

v1.4.0 🌎 - Full Stack Launch & Mobile Readiness

  • ✅ Deployed the full-stack application to Render:

    • Frontend (React) and backend (Python on Flask) are now live and publicly accessible.
    • Configuration adjusted for seamless client-server communication.
  • 📱 Improved mobile experience:

    • Enhanced responsive design across key pages.
    • Layout and UI elements now adapt better to small screen devices.
  • Git logo Git version control:

    • Utilized Git for local version control and commit management.
    • Maintained structured commit history throughout development.
    • Project managed via a local Git repository.