Convert Figma logo to code with AI

sindresorhus logoanatine

[DEPRECATED] :bird: Pristine Twitter app

1,084
77
1,084
25

Top Related Projects

Clone to try a simple Electron app

Make any web page a desktop application

6,804

:electron: A complete tool for building and publishing Electron applications

Explore the Electron APIs

A Foundation for Scalable Cross-Platform Apps

6,740

➖ high level way to create menubar desktop applications with electron

Quick Overview

Anatine is a desktop Twitter client built with Electron, offering a sleek and customizable interface for Twitter users. It aims to provide a more feature-rich and efficient Twitter experience compared to the web interface, while maintaining a clean and intuitive design.

Pros

  • Cross-platform compatibility (Windows, macOS, Linux)
  • Customizable interface with various themes and layout options
  • Enhanced features not available in the web version, such as keyboard shortcuts and multiple account support
  • Regular updates and active community support

Cons

  • Requires installation and takes up more system resources compared to using Twitter in a browser
  • May be affected by Twitter API changes or limitations
  • Some users may prefer the official Twitter app for consistency across devices
  • Limited to desktop use, not available on mobile platforms

Getting Started

To get started with Anatine:

  1. Visit the GitHub repository: https://github.com/sindresorhus/anatine
  2. Download the latest release for your operating system
  3. Install the application following the instructions for your platform
  4. Launch Anatine and log in with your Twitter account
  5. Explore the settings to customize the interface and features to your liking

Note: As of my knowledge cutoff in September 2021, the Anatine project may have been discontinued or renamed. Please check the repository for the most up-to-date information and alternative recommendations if necessary.

Competitor Comparisons

Clone to try a simple Electron app

Pros of minimal-repro

  • Designed specifically for creating minimal reproducible examples for Electron issues
  • Simpler structure, making it easier to isolate and demonstrate specific problems
  • Includes clear instructions for creating and submitting reproductions

Cons of minimal-repro

  • Limited functionality, not suitable for full-fledged applications
  • Lacks advanced features and customization options found in Anatine
  • May require more setup for complex scenarios compared to Anatine's ready-to-use structure

Code Comparison

Anatine (main process):

app.on('ready', () => {
  mainWindow = createMainWindow();
  tray.create(mainWindow);
  Menu.setApplicationMenu(appMenu);
});

minimal-repro (main process):

app.whenReady().then(() => {
  createWindow();
  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

Both repositories use Electron to create desktop applications, but Anatine is a full-featured Twitter client, while minimal-repro is a barebones template for reproducing issues. Anatine includes more complex features like tray integration and custom menus, whereas minimal-repro focuses on providing a clean slate for isolating and demonstrating specific Electron-related problems.

Make any web page a desktop application

Pros of Nativefier

  • More versatile: Can create desktop apps from any website, not limited to Twitter
  • Cross-platform support: Works on Windows, macOS, and Linux
  • Actively maintained with regular updates and improvements

Cons of Nativefier

  • Less specialized: Doesn't offer Twitter-specific features like Anatine
  • Larger app size: Generated apps may be bulkier than purpose-built alternatives
  • Potential performance overhead due to Electron wrapper

Code Comparison

Anatine (Twitter-specific functionality):

export function handleNewTweets(tweets) {
  for (const tweet of tweets) {
    if (tweet.isRetweet) {
      handleRetweet(tweet);
    } else {
      renderTweet(tweet);
    }
  }
}

Nativefier (Generic web app creation):

const nativefier = require('nativefier').default;

nativefier({
  name: 'My App',
  targetUrl: 'https://example.com',
  platform: 'darwin',
  arch: 'x64',
  out: '/path/to/build'
}, function(error, appPath) {
  if (error) {
    console.error(error);
    return;
  }
  console.log('App has been nativefied to', appPath);
});

While Anatine focuses on Twitter-specific functionality, Nativefier provides a more general-purpose solution for creating desktop applications from web content. Anatine offers a more tailored experience for Twitter users, while Nativefier allows for greater flexibility in creating desktop apps from various web sources.

6,804

:electron: A complete tool for building and publishing Electron applications

Pros of Forge

  • More comprehensive toolset for Electron app development
  • Active maintenance and regular updates
  • Extensive documentation and community support

Cons of Forge

  • Steeper learning curve for beginners
  • Potentially more complex setup for simple projects
  • Larger project footprint due to additional features

Code Comparison

Anatine (main process):

app.on('ready', () => {
  mainWindow = createMainWindow();
  tray.create(mainWindow);
  menu.set(mainWindow);
});

Forge (main process):

app.on('ready', () => {
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false,
    },
  });
  mainWindow.loadFile('index.html');
});

Anatine focuses on a streamlined approach for creating a Twitter client, while Forge provides a more robust framework for general Electron app development. Anatine's code is more specific to its use case, whereas Forge's example demonstrates a more generic setup for Electron applications.

Forge offers more flexibility and tools for various types of Electron projects, making it suitable for a wider range of applications. However, this comes at the cost of increased complexity and a potentially steeper learning curve compared to Anatine's more focused approach.

Explore the Electron APIs

Pros of electron-api-demos

  • Comprehensive showcase of Electron API features
  • Well-structured and documented codebase
  • Actively maintained with regular updates

Cons of electron-api-demos

  • Larger project size and complexity
  • Focused on demonstration rather than practical application
  • May require more setup time for new users

Code Comparison

electron-api-demos:

const { app, BrowserWindow } = require('electron')

function createWindow () {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  })
  win.loadFile('index.html')
}

Anatine:

const electron = require('electron');
const config = require('./config');

const app = electron.app;

function createMainWindow() {
  const win = new electron.BrowserWindow({
    title: app.getName(),
    show: false,
    width: 500,
    height: 600
  });
  return win;
}

Both projects use Electron to create desktop applications, but electron-api-demos focuses on demonstrating various Electron APIs, while Anatine is a practical implementation of a Twitter client. The code snippets show similarities in window creation, but Anatine's approach is more tailored to its specific use case.

A Foundation for Scalable Cross-Platform Apps

Pros of electron-react-boilerplate

  • Comprehensive boilerplate with a well-structured project setup
  • Includes TypeScript support out of the box
  • Offers a more robust development environment with hot reloading and testing tools

Cons of electron-react-boilerplate

  • Larger initial project size due to included dependencies and tools
  • Steeper learning curve for beginners due to its comprehensive setup
  • May require more configuration for simpler projects

Code Comparison

electron-react-boilerplate:

import { MemoryRouter as Router, Routes, Route } from 'react-router-dom';
import './App.css';

export default function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Hello />} />
      </Routes>
    </Router>
  );
}

Anatine:

const electron = require('electron');
const config = require('./config');

const app = electron.app;

function createMainWindow() {
  const win = new electron.BrowserWindow({
    title: app.getName(),
    show: false,
    width: 600,
    height: 400
  });
}

The code snippets highlight the different approaches: electron-react-boilerplate uses React Router for navigation, while Anatine focuses on creating an Electron window. electron-react-boilerplate's setup is more complex but offers greater flexibility for larger applications, whereas Anatine's approach is simpler and more straightforward for smaller projects.

6,740

➖ high level way to create menubar desktop applications with electron

Pros of menubar

  • Simpler and more focused on creating menubar apps
  • Lighter weight with fewer dependencies
  • More actively maintained with recent updates

Cons of menubar

  • Less feature-rich compared to Anatine
  • Limited to menubar functionality, while Anatine is a full Twitter client
  • May require more custom code for advanced features

Code Comparison

Anatine (main app structure):

const electron = require('electron');
const config = require('./config');
const tray = require('./tray');

const app = electron.app;

app.on('ready', () => {
  electron.Menu.setApplicationMenu(appMenu);
  mainWindow = createMainWindow();
  tray.create(mainWindow);
});

menubar (main app structure):

const menubar = require('menubar');

const mb = menubar({
  dir: __dirname,
  index: `file://${__dirname}/index.html`,
  icon: `${__dirname}/Icon.png`,
  width: 400,
  height: 400
});

mb.on('ready', () => {
  console.log('Menubar app is ready');
});

The code comparison shows that menubar provides a more streamlined approach to creating menubar apps, while Anatine requires more setup for a full-featured application. menubar's API is more focused on the specific task of creating a menubar app, whereas Anatine's code structure is more complex due to its broader functionality as a Twitter client.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Deprecated

Me and others put a lot of work into this project to make the Mobile Twitter site great as a desktop app. I've chosen to deprecate it now, as it's impossible to keep up with the Mobile Twitter ever changing React class names. I don't have time to update a bunch of CSS-selectors every other week. Thanks for all the fish.

Happy to let anyone else take over if interested.


Anatine

Pristine Twitter app

This app is based the awesome Mobile Twitter site, but modifies a lot of things and makes it more usable on the desktop.


Features

Dark mode

You can toggle dark mode in the Anatine menu or with Cmd Shift D / Ctrl Shift D.

Background behavior

When closing the window, the app will continue running in the background, in the dock on macOS and the tray on Linux/Windows. Right-click the dock/tray icon and choose Quit to completely quit the app. On macOS, click the dock icon to show the window. On Linux, right-click the tray icon and choose Toggle to toggle the window. On Windows, click the tray icon to toggle the window.

Keyboard shortcuts

  • New tweet: n
  • New DM: m
  • Send tweet/DM: Cmd Enter or Ctrl Enter
  • Go to Home: g h or Ctrl 1 or Cmd 1
  • Go to Notifications: g n or Ctrl 2 or Cmd 2
  • Go to Messages: g m or Ctrl 3 or Cmd 3
  • Go to Search: / or Ctrl 4 or Cmd 4
  • Go to Profile: g p or Ctrl 5 or Cmd 5
  • Go to Likes: g l
  • Go to Lists: g i
  • Go to previous page: Delete or Backspace
  • Next tab: Ctrl Tab
  • Previous tab: Ctrl Shift Tab
  • Go to next tweet: j
  • Go to previous tweet: k
  • Go to next photo: →
  • Go to previous photo: ←
  • Page down: Ctrl d
  • Page up: Ctrl u
  • Scroll to top: g g
  • Scroll to bottom: G

Install

macOS 10.9+, Windows 7+ & Linux are supported.

macOS

Homebrew Cask

$ brew update && brew cask install anatine

Manually

Download, unzip, and move Anatine.app to the /Applications directory.

Linux

Download and unzip to some location.

To add a shortcut to the app, create a file in ~/.local/share/applications called anatine.desktop with the following contents:

[Desktop Entry]
Name=Anatine
Exec=/full/path/to/folder/Anatine
Terminal=false
Type=Application
Icon=/full/path/to/folder/Anatine/resources/app/static/Icon.png

Snap package

$ sudo snap install anatine

Read more...

Windows

Download and unzip to some location.


Dev

Built with Electron.

Commands
  • Init: $ npm install
  • Run: $ npm start
  • Build macOS: $ npm run build:macos
  • Build Linux: $ npm run build:linux
  • Build Windows: $ npm run build:windows
  • Build all: $ brew install wine and $ npm run build (macOS only)

Related

Created by

License

MIT © Sindre Sorhus