Open-source project
Livinglist/Hacki avatar
Livinglist/Hacki

Hacki for Hacker News: Features, Platforms, and Project Constraints

A highly customizable, open-source Hacker News client.

1,633 stars133 forksDartGPL-3.0

At a glance

What is it?
Hacki is a Flutter-based Hacker News client for iOS and Android users who want account access, offline reading, thread search, notifications, and extensive visual customization. Its feature set is broad, but the repository documentation does not explain the underlying API or data architecture.
Who is it for?
Hacki suits mobile readers who value deep thread tools, account features, offline access, and interface customization. It is a poor fit for users who need a documented desktop client, transparent backend architecture, or a simple official-site-only reader.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 4 days ago.
What is it written in?
Mainly Dart, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Why Hacki Extends Mobile Hacker News Reading

Hacki targets people who read and participate in Hacker News on iOS or Android and want more control over the mobile experience than a basic link viewer provides. Its documented feature set includes Hacker News account login, favorites synchronization, replies, voting, filters, blocking, global Hacker News search, and search within a discussion thread. It also records where a reader left a thread, identifies newly added comments since the previous visit, and can send in-app notifications about replies to a reader's comments or stories.

Thread navigation is a particularly specific focus. The ancestor lookup feature is intended to recover context without repeatedly scrolling upward through a deep comment tree. The README also distinguishes global Hacker News search from local, in-thread search. These capabilities make Hacki more relevant to frequent discussion participants than to users who only want a quick view of the front page.

Hacki is positioned as a highly customizable client, and the repository includes several concrete customization controls: accent color, font settings, dark mode, tablet layouts, and configurable home-page story tiles. It can also turn a story or comment into an image for sharing. Favorites can be imported and exported, while offline mode is available. Those features define the project's audience more precisely than the broad label of "Hacker News client."

The client supports phones and tablets and is published through multiple channels. The README links to the App Store, Google Play, F-Droid, and GitHub releases. That distribution choice gives users more than one route for obtaining the app, although the README does not describe whether the store versions have identical feature sets or build settings.

Hacki's Flutter Structure and Visible Architecture

The repository identifies Dart as its primary language and describes Hacki as a Flutter application. Its top-level layout separates the usual mobile targets into `android/` and `ios/`, while application and reusable UI code resides mainly under `lib/` and `components/`. The repository also contains `assets/`, `integration_test/`, `test/`, and `test_driver/`, which indicates that the project includes both application assets and automated testing directories. These directory names are visible in the repository, but the README does not describe their internal implementation.

The topic list includes `flutter-bloc`, which associates the project with the Bloc pattern for Flutter state management. The repository also contains `pubspec.yaml` and `pubspec.lock`, the standard Dart and Flutter dependency manifests. The documentation does not enumerate dependencies, database packages, networking clients, background-execution packages, or synchronization services, so their exact roles cannot be confirmed.

At the product level, the documented flow is clearer than the code-level flow. A reader can open Hacker News content through Hacki, browse stories, enter threads, search either the wider service or a thread, log in to perform account actions, and receive notifications about relevant replies. Cached content is available through the documented offline mode. The README does not say whether data is fetched through the public Hacker News Firebase API, whether the client maintains a separate backend, how cached records expire, or how offline changes are reconciled. It also does not document conflict handling when the same item changes while the app is offline.

This missing architectural detail matters for contributors and operators. The repository provides release workflows for iOS publishing, Android APK builds, and parser checks, but it does not present a service deployment component or document external infrastructure. Based on the repository layout, Hacki appears to be a Flutter client repository rather than a documented end-to-end Hacker News service implementation.

Installing Hacki and Completing a First Reading Session

The README does not provide source-build instructions, a Flutter SDK version, or commands for running Hacki locally. It instead directs users to existing App Store, Google Play, F-Droid, and GitHub release links. As a result, the supported first-use tutorial is limited to obtaining the published client rather than cloning the repository and building it from source.

For iOS and Android users, the README points to Hacki's App Store and Google Play listings. F-Droid publishes the package as `com.jiaqifeng.hacki`, and the GitHub releases page is another stated distribution route. Users should compare the listing and version information in the channel they select, although the documentation does not promise that all channels receive identical builds.

After opening Hacki, the first documented tasks are to browse Hacker News stories, enter a discussion, and try the thread tools. Global search covers Hacker News search, while in-thread search is limited to discussion content. Ancestor lookup can be used when a reader loses the place of a nested reply. Dark mode, accent color, font settings, and story-tile customization are available if the default presentation is not preferred. The README does not specify exact menu labels or setup screens, so it would be misleading to invent a click-by-click path.

Account-dependent capabilities come later: login enables favorites synchronization and account actions such as replying and voting. The documentation also lists in-app reply notifications. Notifications are not guaranteed by the README to work when the application is closed, and it does not state what background permission or operating-system setup is required.

Customization, Offline Access, and Platform Boundaries

Customization is more than a cosmetic feature list in Hacki. The repository includes screenshots for home-page story tiles, thread presentation, comments, notifications, search, ancestor lookup, and image sharing. The README explicitly names accent color and font customization, along with true dark mode and tablet support. That makes Hacki relevant to readers who want a denser or more personalized thread interface, although it does not describe every available setting or theme value.

Offline mode is another documented distinction from a minimal external-link reader. A reader can presumably access stored content without a live connection, but the exact guarantee matters. The README does not state how many stories or comments remain available, whether cached media such as images are included, when the cache is populated, or whether every action can be deferred. These omissions prevent a firm statement about the depth of offline support.

Feature boundaries also differ by platform. Synced settings, Home Screen widgets, and Lock Screen widgets are explicitly marked as iOS-only. The README does not label equivalent Android features as unavailable, but it provides no replacement descriptions for them. Consequently, an Android adoption decision should focus on the common feature set: account login, favorites, search, thread tools, notifications, offline mode, replies, voting, filters, blocking, sharing, dark mode, and tablets.

Sharing extends beyond the platform share sheet. Hacki can receive a Hacker News link through the system share dialog and can share a story or comment as an image. These are separate mechanisms. The image-sharing path adds a presentation workflow, while the incoming share link provides an entry point into the client. The README does not document image dimensions, export formats, or storage locations.

Hacki Failure Modes and Cases Where It Is the Wrong Client

Hacki's dependency on a Hacker News account is the clearest boundary for privacy-sensitive users. Login unlocks documented account features such as favorites synchronization, replies, voting, and notifications. The README does not explain credential storage, token handling, or what remains local when an account is not used. A user who cannot accept account-based features should not assume that they receive the same synchronized behavior anonymously.

Notification behavior is another uncertainty. The client can identify new comments since the last visit and notify readers about replies, but the documentation does not describe delivery guarantees, offline queue behavior, retry handling, or whether alerts continue after the app is terminated. A reader who needs dependable background alerts should check those behaviors on the target operating system before relying on them.

Hacki is also the wrong choice when a build from source is mandatory. The repository contains Flutter project files, but the README does not give setup commands, Dart or Flutter constraints, platform prerequisites, signing instructions, or submodule initialization steps. It points to published distributions instead. Contributors therefore cannot use the documentation alone to reproduce a release build confidently.

The lack of architectural documentation also limits production assessment. The repository has Android and iOS application targets, but no documented backend deployment instructions are provided. This is not evidence that Hacki operates a backend, nor does it establish that it relies entirely on public APIs. It means that the data path, caching policy, and failure behavior cannot be evaluated from the documentation.

Hacki Compared with a Basic Hacker News Link Reader

A basic link reader opens an article or Hacker News page in a browser and adds little project-specific functionality. Hacki takes a different approach by rendering Hacker News content inside a Flutter client and exposing discussion-specific controls. Its in-thread search, ancestor lookup, new-comment lookup, account actions, and offline mode have no equivalent in a simple "open the link" workflow.

A browser-based approach may be preferable when transparency and low client overhead matter more than customization. Hacki instead centralizes reading and interaction in one mobile application and adds image sharing, widgets on iOS, synchronized favorites, and personal interface settings.

The trade-off is feature depth against documented transparency. Hacki offers more controls for frequent mobile readers, while the README leaves unanswered questions about networking, storage, cache retention, and notification processing. Users choosing between the two approaches should decide whether they value those controls enough to accept platform permissions and a separate client update cycle.

Hacki Release Cadence, Builds, and GPL-3.0 Obligations

Hacki is not archived. Its last push was on 2026-10-13, and the listed releases include v3.8.2 on 2026-10-11, v3.8.1 on 2026-09-03, and v3.8.0 on 2026-09-02. This release history indicates recent development activity, but the documentation does not define a fixed support window for older versions.

Upgrade cost appears primarily as client release management rather than server migration. Mobile users obtain a published build through an app store, F-Droid, or GitHub releases. The README does not document automatic migration, settings compatibility, or breaking changes between v3.8.0 and v3.8.2. Users who rely on favorites export or imported data may want to preserve those files before upgrading, although the README does not prescribe an upgrade procedure.

Contributor-facing release work is partially visible. The repository includes GitHub Actions workflows for iOS publishing, Android APK builds, and parser checks, plus `fastlane/` and `scripts/` directories. The README does not describe their required secrets, signing setup, test commands, or release gates, so a maintainer cannot determine the full publication process from the documentation alone.

Hacki is distributed under GPL-3.0. That license identifies the repository's licensing basis, but this review does not provide legal advice. Anyone distributing a modified binary or incorporating GPL-3.0-covered code into another product should review the actual `LICENSE` file and applicable obligations for that distribution.

Editorial conclusion

Hacki suits mobile readers who value deep thread tools, account features, offline access, and interface customization. It is a poor fit for users who need a documented desktop client, transparent backend architecture, or a simple official-site-only reader. Verify account permissions, offline behavior, notification delivery, and platform-specific feature support first, because Hacki distinguishes only some capabilities as iOS-only while the README does not document the underlying service design or release migration process.

Frequently asked questions

Is Hacki available for iOS and Android?

Yes. The README links to App Store and Google Play listings and describes Hacki as a Flutter client with `android/` and `ios/` repository directories.

Does Hacki support offline reading and Hacker News account features?

The README lists offline mode, account login, favorites synchronization, replies, voting, and reply notifications as supported features. It does not document cache-retention or offline-reconciliation details.

Can Hacki search and manage discussion threads?

Hacki supports global Hacker News search, in-thread search, ancestor lookup, new-comment lookup, replies, voting, filters, and blocking.

Official sources

  1. License: GPL-3.0
  2. Livinglist/Hacki on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/livinglist-hacki.svg)](https://hysenlabs.com/projects/livinglist-hacki)

Was this useful?