Skip to content

N3koSempai/klia-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

213 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

KliaStore

A modern desktop application for browsing and managing Flatpak applications from Flathub

Features

  • Browse Flathub applications
  • View app of the day and apps of the week
  • Browse by categories
  • Smart caching system for images and app data
  • Install Flatpak applications directly
  • List your flatpak apps and updates capcities
  • Built with Tauri, React, and TypeScript

Tech Stack

  • Tauri 2: Desktop application framework
  • React 19: UI library
  • TypeScript: Type safety
  • Material UI v7: Component library
  • TanStack Query: Data fetching and caching
  • pnpm: Package manager

Development

Prerequisites

  • Node.js 20+
  • Rust
  • pnpm (corepack enable pnpm)

Setup

# Install dependencies
pnpm install

# Run development server (IMPORTANT: use tauri dev, not just dev)
pnpm tauri dev

# Build for production
pnpm tauri build

Important: Always use pnpm tauri dev instead of pnpm dev. The Tauri context is required for the app to function properly.

Building and Distribution

For detailed instructions on building Flatpak packages and troubleshooting common build issues, see:

πŸ“– Build Documentation

Quick Build Commands

Flatpak:

flatpak-builder --user --install --force-clean build-dir com.gatorand.klia-store.yml
flatpak run com.gatorand.klia-store

# Create distributable bundle
flatpak build-bundle ~/.local/share/flatpak/repo klia-store.flatpak com.gatorand.klia-store

Debian Package:

pnpm tauri build --bundles deb
sudo dpkg -i src-tauri/target/release/bundle/deb/klia-store_*.deb

Automated Releases

To create an automated release with both .deb and .flatpak packages:

  1. Update the version in package.json
  2. Commit with [release] in the message:
    git commit -m "[release] Version 1.0 - Added new features"
    git push
  3. GitHub Actions will automatically:
    • Build .deb and .flatpak packages
    • Create a new release with tag v{version}
    • Upload both packages as Klia-Store-beta{version}.deb and Klia-Store-beta{version}.flatpak

Crypto Donations Integration

Klia Store supports crypto donations (Bitcoin and Ethereum tokens) for app developers. Developers can add donation URLs to their Flathub apps to receive direct support from users.

How to Add Crypto Donations to Your App

Follow these steps to enable crypto donations for your Flathub application:

1. Prepare Your Wallet Addresses

You'll need one or both of the following:

  • Bitcoin (BTC) wallet address
  • Ethereum (ETH) wallet address (supports all ERC-20 tokens)

2. Add Donation URL to Your Flathub Manifest

Important: Flathub only accepts one <url type="donation"> entry per app. If you add more than one, the submission will be rejected. Choose the cryptocurrency you prefer to receive donations in.

Edit your app's .metainfo.xml file and add a single donation URL in the <url> section:

For Bitcoin:

<url type="donation">https://n3kosempai.github.io/KliaStore/bitcoin/donate?wallet=bc1qaq220dfa4dwc2eg0s76t4uzmrf28med2nr3fz0</url>

For Ethereum (any ERC-20 token):

<url type="donation">https://kliastore.gatorand.com/ethereum/?wallet=YOUR_ETH_ADDRESS</url>

Example (Klia Store configuration β€” Bitcoin only):

<component>
  <id>io.github.N3kosempai.klia-store</id>
  <name>Klia Store</name>
  <!-- ... other metadata ... -->
  <url type="homepage">https://github.com/N3koSempai/kliaStore</url>
  <url type="donation">https://kliastore.gatorand.com/bitcoin/?wallet=bc1q5y8are6m9r946h3ut7c3hxtuf6nm67rgz7ume7</url>
</component>

3. Supported Cryptocurrencies

Currently supported:

  • βœ… Bitcoin (BTC) - Native Bitcoin network
  • βœ… USDT (Tether) - Ethereum network (ERC-20)

Coming soon:

  • πŸ”œ USDC, DAI, and other ERC-20 tokens
  • πŸ”œ Other blockchains

4. How It Works

  1. Users browse your app in Klia Store
  2. They click the donation button (⚑ icon)
  3. Select cryptocurrency and enter amount
  4. Scan QR code or copy wallet address
  5. Send the exact amount from their wallet
  6. Click "Verify" to confirm the transaction on-chain
  7. Donation is recorded in local database

5. Features

  • On-chain verification: Transactions are verified using blockchain APIs (Blockstream/Mempool for BTC, Ethereum RPC nodes for USDT)
  • QR code generation: Automatic QR codes for easy mobile wallet scanning
  • BIP-21 support: Bitcoin URIs include amount for auto-fill in wallets
  • Local tracking: All donations are stored in SQLite database
  • Privacy-focused: No external tracking, only blockchain verification

6. Important Notes

  • Replace YOUR_BTC_ADDRESS and YOUR_ETH_ADDRESS with your actual wallet addresses
  • A single Ethereum address can receive all ERC-20 tokens (USDT, USDC, DAI, etc.)
  • Ensure your wallet addresses are correct before publishing
  • Users must send the exact amount specified for verification to work
  • Transactions typically take a few minutes to appear on-chain

Documentation

Recommended IDE Setup

License

LICENSE

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors