import './welcome.css'; import boostsCarouselUrl from '../assets/features/boosts-carousel.jpg'; import groupedNotificationsUrl from '../assets/features/grouped-notifications.jpg'; import multiColumnUrl from '../assets/features/multi-column.jpg'; import multiHashtagTimelineUrl from '../assets/features/multi-hashtag-timeline.jpg'; import nestedCommentsThreadUrl from '../assets/features/nested-comments-thread.jpg'; import logoText from '../assets/logo-text.svg'; import logo from '../assets/logo.svg'; import Link from '../components/link'; import states from '../utils/states'; import useTitle from '../utils/useTitle'; const { PHANPY_DEFAULT_INSTANCE: DEFAULT_INSTANCE, PHANPY_WEBSITE: WEBSITE, PHANPY_PRIVACY_POLICY_URL: PRIVACY_POLICY_URL, PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL: DEFAULT_INSTANCE_REGISTRATION_URL, } = import.meta.env; const appSite = WEBSITE ? WEBSITE.replace(/https?:\/\//g, '').replace(/\/$/, '') : null; const appVersion = __BUILD_TIME__ ? `${__BUILD_TIME__.slice(0, 10).replace(/-/g, '.')}${ __COMMIT_HASH__ ? `.${__COMMIT_HASH__}` : '' }` : null; function Welcome() { useTitle(null, ['/', '/welcome']); return (

Phanpy

A minimalistic opinionated Mastodon web client.

{DEFAULT_INSTANCE ? 'Log in' : 'Log in with Mastodon'}

{DEFAULT_INSTANCE && DEFAULT_INSTANCE_REGISTRATION_URL && (

Sign up

)} {!DEFAULT_INSTANCE && (

Connect your existing Mastodon/Fediverse account.
Your credentials are not stored on this server.

)}
{(appSite || appVersion) && (

{appSite} {appVersion}

)}

Built {' '} by{' '} { e.preventDefault(); states.showAccount = 'cheeaun@mastodon.social'; }} > @cheeaun .{' '} Privacy Policy .

Screenshot of Boosts Carousel

Boosts Carousel

Visually separate original posts and re-shared posts (boosted posts).

Screenshot of nested comments thread

Nested comments thread

Effortlessly follow conversations. Semi-collapsible replies.

Screenshot of grouped notifications

Grouped notifications

Similar notifications are grouped and collapsed to reduce clutter.

Screenshot of multi-column UI

Single or multi-column

By default, single column for zen-mode seekers. Configurable multi-column for power users.

Screenshot of multi-hashtag timeline with a form to add more hashtags

Multi-hashtag timeline

Up to 5 hashtags combined into a single timeline.

); } export default Welcome;