yshalsager's Channel
2.67K subscribers
74 photos
12 videos
6 files
832 links
A channel where you can find @yshalsager's projects and its updates.
https://yshalsager.com/en/
Download Telegram
If Next.js’s bundles are only 21 to 31% larger than TanStack Start (both using React), what are you actually getting for that extra 44 to 54 kB? And more importantly, do the dominant frameworks’ baselines (React at 100.7 to 118.2 kB compressed, Vue at 72.3 kB compressed, Angular at 103.9 kB compressed) buy you anything compared to alternatives that deliver 30.6 to 54.1 kB compressed?
❤1
For anyone starting a new project, the evaluation raises an important question: Is there any reason to make your app 25.9x heavier than necessary?
If you want to build a better product than your competitors, why would you build exactly like them? When everyone uses Next.js, winning on performance means fighting upstream against React’s design. When you use Marko, SolidStart, SvelteKit, or Nuxt instead, the advantage comes easily. Your app is faster by default. Your bundle is smaller without optimization work. Your users get a better experience without extra effort, giving you genuine differentiation.
❤1
yshalsager's Channel
https://www.lorenstew.art/blog/10-kanban-boards
Next-Gen Frameworks Deliver Instant Performance: Marko (39ms), SolidStart (35ms), SvelteKit (38ms), and Nuxt (38ms) all achieve essentially instant First Contentful Paint in the 35-39ms range. This is 11 to 12 times faster than Next.js at 444ms
This media is not supported in your browser
VIEW IN TELEGRAM
New project!
Mini-Baheth: cross-platform desktop GUI for searching files using ripgrep

- Streaming results realtime to the UI.
- Context lines (before/after) and matching text highlighting.
- Directory and file-pattern filtering.
- Fast first paint: only root-level directories initially; fetch more on demand.
- Preview files; DOCX/DOC are converted to text for readability.
- Search control with four modes:
-- Smart: Only expands base letters and turns spaces into gaps; no PCRE and no extra mark handling. If you type diacritics, they are treated literally.
-- Ignore diacritics: Matches with or without diacritics by allowing optional combining marks (and tatweel) after Arabic letters. Enables PCRE2.
-- Require diacritics: Enforces diacritics only where you typed them in your query (per-letter). Enables PCRE2.
-- Regex: Uses your regex pattern as-is.

Built using Python + Tauri + PyTauri + SvelteKit + Shadcn

Also available as self hosted Django web ui

https://github.com/yshalsager/mini-baheth/
❤2
yshalsager's Channel
New project! Mini-Baheth: cross-platform desktop GUI for searching files using ripgrep - Streaming results realtime to the UI. - Context lines (before/after) and matching text highlighting. - Directory and file-pattern filtering. - Fast first paint: only…
## v0.2.0

### Added
- Sort results by name (A→Z/Z→A) and by date (newest/oldest).
- File date column (uses filesystem mtime).
- PDF support via pdftotext integration.
- Expand file filter support for ePub, html, ODT, ...
- fix-path-env integration for desktop.

### Fixed
- Correct logo path in macos and Linux builds.
- Add missing lines count to rga command
- Ensure consistent encoding in file reading functions
- Improve performance of file preview of large files

### Changes
- Update ripgrep-all to support linux ARM.
- Increase FileViewerDialog width.

https://github.com/yshalsager/mini-baheth/releases/tag/v0.2.0
❤2
To stop macOS from shuffling fullscreen Spaces/desktops around, you need to turn off the “Automatically rearrange Spaces based on most recent use” option in Mission Control

On recent macOS versions (Ventura, Sonoma, Sequoia and similar)

- Open System Settings.
- Go to “Desktop & Dock” in the sidebar.
- Scroll down to the “Mission Control” section.
- Turn off “Automatically rearrange Spaces based on most recent use”.

On older macOS versions (with “System Preferences” instead of “System Settings”)
- Open System Preferences.
- Click “Mission Control”.
- Uncheck “Automatically rearrange Spaces based on most recent use”.

https://www.perplexity.ai/search/is-there-a-way-to-prevent-maco-5rcS45RrTt26J6itRz_6TA
❤3
@ebook_converter_bot is working fine now, docx conversion has been fixed.
❤1
https://tools.simonwillison.net/colophon

useful collection of web tools
❤2
Some people live a quiet, private life. No audience and no strangers. Just family, friends, and a small circle that understands them.

Then one day, they decide to go online. They open a social media account and begin speaking to the entire world, sharing opinions, stories, emotions, and personal experiences.

After one or two videos, the comments come in. Criticism, mockery and harsh words are hurled at them, and suddenly, insecurity sets in.

The next video isn’t a message anymore, it’s a defense, then tears, then explanations, then more pain.

And I ask, what for? Islam teaches us that not everything needs to be shared. Not everyone deserves access to your story.

The Quran teaches us the wisdom of selective sharing through the story of Prophet Yusuf عليه السلام.

قالَ يا بُنَيَّ لا تَقصُص رُؤياكَ عَلى إِخوَتِكَ فَيَكيدوا لَكَ كَيدًا إِنَّ الشَّيطانَ لِلإِنسانِ عَدُوٌّ مُبينٌ
“He said, ‘O my son, do not relate your dream to your brothers, or they will plot against you. Indeed, the devil is a clear enemy to man.” (Surah Yusuf: 5)

This wasn’t about hiding the truth, it was about protecting it. Because not everyone who hears your story will make Dua for you. Some will envy you, some will misunderstand you and some will use it against you.

The online world is not built on gentleness. It is not obligated to sympathize with you. And it will not change for your sensitivity. If you are sensitive, and there is nothing wrong with that, then protect yourself.

Not every story, pain and emotion needs an audience and comments. Some things are meant to stay offline, where they are safer, purer, and better cared for.

Keeping things private is not shameful nor is it weakness. And staying offline can sometimes be the wisest decision of all. Choose wisely.

https://quranreflect.com/posts/1766823931107372
❤8🔥1
Compare and see best LLM model for OCR

https://www.ocrarena.ai/battle
👍4
yshalsager's Channel
Shamela EPUB Exporter A tool to download books from the Shamela Library into EPUB files locally. Available as browser extenstion, desktop app, and Android app. https://github.com/yshalsager/shamela-epub-exporter
Four years ago I worked on a command-line tool and a graphical interface to download books from Shamela (Al-Maktaba Al-Shamela) as EPUB e-books from the official site so I could download the latest books and read them on any device or reader without being tied to the website or the desktop program.

https://github.com/yshalsager/shamela2epub

About six months ago I made a simpler, web-based version of the tool that runs in Google Colab notebooks so anyone can use the tool and download books easily.

https://t.me/ysh_alsager/5970

Then about a month ago I rebuilt the project using web technologies after it had been written in Python.

The result: Chrome and Firefox browser extensions, a desktop app for Windows, Linux, and Mac, and an Android app using the same codebase, available in both Arabic and English!

Technologies used
TypeScript + Svelte 5 (UI)
WXT + Vite (extension tooling)
Tauri (desktop app)
Tailwind CSS (styling)
JSZip (EPUB creation)
Wuchale (localization)

As always, the new software is free and open source; you can view and download it from the code repository

https://github.com/yshalsager/shamela-epub-exporter

And for those who need to run Shamela’s tools on non-Windows desktop operating systems, here is how to run version 4 on:
- Linux
- Mac
❤7👍2