How Flathub.org is made
Hey, I'm Kolja (he/him)

- Part of the XBMC/Kodi Team
- Wrote my own language server
- Got involved in flathub
- Father
- Musican
- Developer

What is flathub.org?



Why flathub.org is important
-
Onboarding
-
Discoverability
-
Convenience
-
Generate News
Onboarding


Getting flatpak & flathub installed
- Solved for many distros
- Some need instructions

Documentation
Flatpak and flathub docs go hand in hand



Discoverability

SEO optimization
- Not exciting for most app devs
- Some apps don't have websites
- Get's us mindshare
- Flathub already has a good standing


Social images
- Used for embedding on social platforms
- Language specific



Good quality data
- SEO needs good data
- We have a basic feedback loop in place

Convenience
Browsing on mobile

- Discover an app while on the go
- Sending apps you want to try to your desktop
Search
- Finding apps via search is fast
- Filters

Generate News

Help people and outlets to discover new apps


Help tell success stories


Announcements

How did we do it?

- Fastly
- Nginx
- Frontend
- next.js / react
- Backend
- python
- Backend Queue Service
- Email Service
- Node.js
- Postgres
- Redis
- Meilisearch
The stack
App uploaded/changed
- Backend consumes latest version of Appstream Catalogue
- Feed all changes into redis and meilisearch
- Regenerate the Frontend pages
<?xml version="1.0" encoding="UTF-8"?>
<components version="0.8" origin="flatpak">
<component type="desktop">
<id>app.authpass.AuthPass</id>
<name>AuthPass</name>
<summary>Password Manager: Keep your passwords safe across all platforms and devices</summary>
<developer_name>Herbert Poul</developer_name>
<description><p>Easily and securely keep track of all your Passwords!</p><p>AuthPass is a stand alone password manager with support for the popular and proven KeePass (kdbx 3.x AND kdbx 4.x) format. Store your passwords, share across all your devices and easily find them whenever you need to login.</p><ul><li>All your passwords in one place.</li><li>Generate secure random passwords for each of your accounts.</li><li>Keep track of your accounts across the web.</li><li>App available for Mac, iPhone, iPad, Android Phones and Tablets, Linux and Windows.</li><li>Open multiple password files at the same time (e.g. one for work, one for personal - or even share your password files with coworkers)</li><li>Open Source available on https://github.com/authpass/authpass/</li><li>Dark Theme</li></ul><p><em>=== UNDER YOUR CONTROL ===</em></p><p>AuthPass stores all your passwords in the open Keepass format, exactly where you want it. It does not send your passwords to our servers. But AuthPass supports saving to:</p><ul><li>Any local content provider from Android</li><li>Native Google Drive Integration</li><li>Native Dropbox Integation</li><li>Native WebDAV support to store in your own NextCloud or OwnCloud (or similar)</li><li>Native Microsoft OneDrive integration</li></ul><p><em>=== FULL FEATURED, NO ADS, NO SUBSCRIPTION ===</em></p><p>As an open source project there are no artificial feature restrictions, no ads and no requirement for payments.</p><p><em>Contributions welcome and encouraged</em> ;-) (Always looking for developers, translators, documentation writers, UI designer, etc. :) ), just join our discord channel: https://authpass.app/go/discord</p><p><em>=== UNDER ACTIVE DEVELOPMENT ===</em></p><p>This is an open source project which is still under heavy development, adding features. We would love your feedback via email or on the issue tracker at https://github.com/authpass/authpass/issues/</p><p>Also join the community on our discord channel at https://authpass.app/go/discord</p></description>
<icon height="64" type="cached" width="64">app.authpass.AuthPass.png</icon>
<icon height="128" type="cached" width="128">app.authpass.AuthPass.png</icon>
<categories>
<category>Security</category>
<category>Utility</category>
</categories>
<kudos>
<kudo>HiDpiIcon</kudo>
</kudos>
<project_license>GPL-3.0-or-later</project_license>
<url type="bugtracker">https://github.com/authpass/authpass/issues</url>
<url type="donation">https://github.com/sponsors/hpoul</url>
<url type="homepage">https://authpass.app/</url>
<url type="translate">https://translate.authpass.app</url>
<screenshots>
<screenshot type="default">
<image type="source">https://data.authpass.app/data/screenshot_composition_small.png</image>
<image height="351" type="thumbnail" width="624">https://dl.flathub.org/repo/screenshots/app.authpass.AuthPass-stable/624x351/app.authpass.AuthPass-8e73a9934daf432df01694fc5aa494e5.png</image>
<image height="702" type="thumbnail" width="1248">https://dl.flathub.org/repo/screenshots/app.authpass.AuthPass-stable/1248x702/app.authpass.AuthPass-8e73a9934daf432df01694fc5aa494e5.png</image>
<image height="63" type="thumbnail" width="112">https://dl.flathub.org/repo/screenshots/app.authpass.AuthPass-stable/112x63/app.authpass.AuthPass-8e73a9934daf432df01694fc5aa494e5.png</image>
<image height="126" type="thumbnail" width="224">https://dl.flathub.org/repo/screenshots/app.authpass.AuthPass-stable/224x126/app.authpass.AuthPass-8e73a9934daf432df01694fc5aa494e5.png</image>
<image height="423" type="thumbnail" width="752">https://dl.flathub.org/repo/screenshots/app.authpass.AuthPass-stable/752x423/app.authpass.AuthPass-8e73a9934daf432df01694fc5aa494e5.png</image>
</screenshot>
</screenshots>
<content_rating type="oars-1.1"/>
<releases>
<release timestamp="1654819200" version="1.9.6_1904"/>
</releases>
<launchable type="desktop-id">app.authpass.AuthPass.desktop</launchable>
<metadata><value key="flathub::build::build_log_url">https://buildbot.flathub.org/#/builders/6/builds/97962</value>
</metadata>
<bundle type="flatpak" runtime="org.freedesktop.Platform/x86_64/23.08" sdk="org.freedesktop.Sdk/x86_64/23.08">app/app.authpass.AuthPass/x86_64/stable</bundle>
Statistic update
- Happens less frequently
- Consume logs for each day
- Do some aggregation
- Save to redis/meilisearch

A glimpse into Meilisearch

Mailing

- Queued mails
- Processed by worker
- Nice tool to preview/test mails
Translations
- ~55 Languages
- 591 strings
- Using weblate

Many more...
Completely open source

What's next?

Ideas
- Translated setup instructions
- Country statistics per app
- Improve xdg category spec
- Review handling
- Seasonal Lists/App campaigns
- Age ratings
- Payment
Questions?

Thanks
@razze@osna.social


Flathub
By Kolja Lampe
Flathub
- 218