import { Footer } from "$components/layout/Footer";
import { Button } from "$components/ui/Button";
import { A } from "@solidjs/router";
import type { Component, JSX } from "solid-js";
import { createSignal, For, Show } from "solid-js";
import { Motion } from "solid-motionone";
type FAQItem = { question: string; answer: JSX.Element | string };
type FAQSection = { title: string; icon: string; items: FAQItem[] };
const faqSections: FAQSection[] = [{
title: "Getting Started",
icon: "i-bi-rocket-takeoff",
items: [{
question: "What is Malfestio?",
answer:
"Malfestio is a decentralized learning platform that combines flashcards with spaced repetition. Built on the AT Protocol, your content is portable and you maintain ownership of your data.",
}, {
question: "How do I create my first deck?",
answer:
"Click 'Create Deck' in your Library. Add a title, description, and tags, then add cards with questions and answers. You can also import content from articles or lectures.",
}, {
question: "What makes Malfestio different from other flashcard apps?",
answer:
"Malfestio is built on the AT Protocol, meaning your content is decentralized and portable. You can fork and remix others' decks, follow creators, and participate in a community-driven learning ecosystem.",
}],
}, {
title: "Spaced Repetition",
icon: "i-bi-arrow-repeat",
items: [{
question: "What is spaced repetition?",
answer:
"Spaced repetition is a learning technique that schedules reviews at optimal intervals. Cards you struggle with appear more often; cards you know well appear less frequently.",
}, {
question: "How does the grading system work?",
answer: (
1 (Again): Completely forgot — will review soon
2 (Hard): Struggled to remember
3 (Good): Remembered with some effort
4 (Easy): Remembered easily
5 (Perfect): Instant recall
),
}, {
question: "How are review intervals calculated?",
answer:
"We use the SM-2 algorithm, a proven spaced repetition method. Intervals grow exponentially for cards you know well, typically starting at 1 day and growing to weeks or months.",
}],
}, {
title: "AT Protocol & Privacy",
icon: "i-bi-globe",
items: [{
question: "What is the AT Protocol?",
answer:
"The AT Protocol (Authenticated Transfer Protocol) is an open, decentralized social networking protocol. It powers Bluesky and enables portable, user-owned data.",
}, {
question: "Is my study data private?",
answer:
"Yes! Your review history, grades, and learning progress are stored locally and never published to the network. Only content you explicitly choose to publish (decks, cards) becomes public.",
}, {
question: "Can I use my existing Bluesky account?",
answer:
"Yes! You can log in with your Bluesky handle and app password. Your decks can be published to your AT Protocol repository.",
}],
}, {
title: "Community & Sharing",
icon: "i-bi-people",
items: [{
question: "What does 'Fork' mean?",
answer:
"Forking creates a personal copy of someone else's deck. You can study, edit, and improve it. The original deck remains unchanged.",
}, {
question: "How do I discover new decks?",
answer:
"Use the Discovery page to browse trending decks and popular tags. You can also follow creators and see their latest decks in your feed.",
}, {
question: "Can I make my decks private?",
answer:
"Yes! Each deck has visibility settings: Private (only you), Unlisted (anyone with link), Public (discoverable by all), or Shared With (specific users).",
}],
}];
const AccordionItem: Component<{ item: FAQItem; index: number }> = (props) => {
const [open, setOpen] = createSignal(false);
return (
{props.item.answer}
);
};
const Help: Component = () => {
return (