Start the rebuild: note schema, vault kit and data migration

Phase 1 of the functional design plan.

- Move the old site into legacy/, unchanged, for reference. It still
  builds from there until cutover.
- Add packages/schema: the one definition of all 20 note types, with
  field titles and descriptions, note and vault checks, and JSON Schema
  export so later editing tools and the MCP server share it.
- Add vault-kit: Obsidian templates generated from the schema, and the
  Site guide for 24.01_PersonalWebsite.
- Add tools/migrate: turns the legacy JSON, collections, store data and
  page text into 545 Site folder notes and 84 images, and checks the
  result with the schema.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
Claude
2026-10-11 18:40:55 +00:00
parent 4ded4b277b
commit a2f723ca2d
324 changed files with 11538 additions and 7556 deletions
+302
View File
@@ -0,0 +1,302 @@
[
{
"name": "Wyrmspan",
"bggId": 410201,
"note": "Engine-building with dragons. A Wingspan reimplementation with slightly more complex mechanics.",
"image": "https://cf.geekdo-images.com/original/pic7947338.png"
},
{
"name": "Spirit Island",
"bggId": 162886,
"note": "Cooperative area control. Play as spirits defending an island from invaders. Highly complex and strategic.",
"image": "https://cf.geekdo-images.com/original/pic7013651.jpg"
},
{
"name": "Codenames",
"bggId": 178900,
"note": "Party word game. Teams compete to find their agents using one-word clues.",
"image": "https://cf.geekdo-images.com/original/pic2856478.jpg"
},
{
"name": "Codenames: Duet",
"bggId": 224037,
"note": "Two-player cooperative version of Codenames. Work together to find all the agents.",
"image": "https://cf.geekdo-images.com/original/pic3550436.jpg"
},
{
"name": "Coup",
"bggId": 131357,
"note": "Deduction and bluffing game. Each player has two roles; claim actions and challenge others.",
"image": "https://cf.geekdo-images.com/original/pic1892875.jpg"
},
{
"name": "The Resistance",
"bggId": 41114,
"note": "Social deduction hidden roles game. Resistance members vs spies trying to sabotage missions.",
"image": "https://cf.geekdo-images.com/cAPTkL2BR3snLO71dkH8rw__imagepage/img/IOY562LZXFjsmcVioY5c_r70Ebc=/fit-in/900x600/filters:no_upscale():strip_icc()/pic2576459.jpg"
},
{
"name": "Ticket to Ride",
"bggId": 9209,
"note": "Route-building set collection. Collect train cards to claim railway routes across the country.",
"image": "https://cf.geekdo-images.com/original/pic1000656.jpg"
},
{
"name": "7 Wonders",
"bggId": 68448,
"note": "Card-drafting civilization building. Build one of the seven wonders through three ages.",
"image": "https://cf.geekdo-images.com/original/pic869179.jpg"
},
{
"name": "Pandemic",
"bggId": 30549,
"note": "Cooperative strategy. Work together to stop global disease outbreaks before they spread too far.",
"image": "https://cf.geekdo-images.com/original/pic398633.jpg"
},
{
"name": "King of Tokyo",
"bggId": 70323,
"note": "Dice-rolling monster combat. Be the monster who earns 20 points or eliminates the competition.",
"image": "https://cf.geekdo-images.com/original/pic1142193.jpg"
},
{
"name": "Carcassonne",
"bggId": 822,
"note": "Tile-placement medieval city building. Place tiles to build the city and claim features for points.",
"image": "https://cf.geekdo-images.com/original/pic830344.jpg"
},
{
"name": "Sagrada",
"bggId": 199561,
"note": "Dice-drafting stained glass window building. Draft colored dice to complete patterns on your window.",
"image": "https://cf.geekdo-images.com/original/pic3297563.jpg"
},
{
"name": "Small World",
"bggId": 40692,
"note": "Area control fantasy civilization. Races rise and fall as you compete for territory across the map.",
"image": "https://cf.geekdo-images.com/original/pic699500.jpg"
},
{
"name": "Dead of Winter",
"bggId": 150376,
"note": "Cooperative survival with betrayal. Survive the zombie apocalypse while completing secret objectives.",
"image": "https://cf.geekdo-images.com/g4mV4BH-ZrhMUVgil-yV1A__imagepage/img/CJ6erNGmKfFGhR6ZbxXbBI7XaoE=/fit-in/900x600/filters:no_upscale():strip_icc()/pic3016500.jpg"
},
{
"name": "Betrayal at the House on the Hill",
"bggId": 10547,
"note": "Traitor horror exploration. Explore a haunted mansion until one betrays the others in a unique haunt.",
"image": "https://cf.geekdo-images.com/original/pic302310.jpg"
},
{
"name": "Betrayal at Baldur's Gate",
"bggId": 228660,
"note": "Traitor D&D horror. Betrayal set in the Forgotten Realms with fantasy-themed haunts.",
"image": "https://cf.geekdo-images.com/O6TfqmDWCkJvZPZw6pcxpg__imagepage/img/Zif6XP4Ij1qxBH2vHB6V2jBXFHk=/fit-in/900x600/filters:no_upscale():strip_icc()/pic6552099.png"
},
{
"name": "Lords of Waterdeep",
"bggId": 110327,
"note": "Worker placement D&D city management. Assign adventurers to quests to score points for your secret lord.",
"image": "https://cf.geekdo-images.com/original/pic1204394.jpg"
},
{
"name": "Mysterium",
"bggId": 181304,
"note": "Cooperative murder mystery. One ghost communicates clues through abstract art; others guess the murderer.",
"image": "https://cf.geekdo-images.com/1nQ3ZKudtDeAP7IiKE-kNg__imagepage/img/scbgJc5EdSpHJGxGbV9dgpxj9hQ=/fit-in/900x600/filters:no_upscale():strip_icc()/pic8625343.jpg"
},
{
"name": "Hanabi",
"bggId": 98778,
"note": "Cooperative card game where you see everyone's cards but your own. Work together to build the perfect firework display.",
"image": "https://cf.geekdo-images.com/original/pic1598898.jpg"
},
{
"name": "Forbidden Island",
"bggId": 65244,
"note": "Cooperative adventure survival. Work together to collect treasures from a sinking island before it's too late.",
"image": "https://cf.geekdo-images.com/original/pic711958.jpg"
},
{
"name": "Sushi Go Deluxe",
"bggId": 192291,
"note": "Card-drafting sushi set collection. Pick sushi cards to build the best meal; deluxe version with more cards.",
"image": "https://cf.geekdo-images.com/2f9uTicUSXkdPp2Yks6zFw__imagepage/img/BeU9AH0pcKCbXi7ViuC87zS1WfI=/fit-in/900x600/filters:no_upscale():strip_icc()/pic5885689.jpg"
},
{
"name": "Evolution (with climate)",
"bggId": 182134,
"note": "Species evolution strategy. Build species with traits to adapt to changing food sources and climate.",
"image": "https://cf.geekdo-images.com/original/pic2696435.jpg"
},
{
"name": "Quacks of Quedlinburg (Deluxe)",
"bggId": 244521,
"note": "Push-your luck potion brewing. Draw ingredient chips from your bag without exploding your cauldron.",
"image": "https://cf.geekdo-images.com/original/pic3953887.jpg"
},
{
"name": "Dragonfire",
"bggId": 226501,
"note": "D&D deck-building cooperative. Build your deck and defend the North from dragons and monsters.",
"image": "https://cf.geekdo-images.com/ETvzoSRh-UuJJbdSt3ZiCA__imagepage/img/u0qsox3zSpjQpaf_PlsgFUkaJvA=/fit-in/900x600/filters:no_upscale():strip_icc()/pic4022104.jpg"
},
{
"name": "Mistborn: The Deckbuilding Game",
"bggId": 422780,
"note": "Cosmere deck-building strategy. Burn metals in fast-paced allomantic battles in the Final Empire.",
"image": "https://cf.geekdo-images.com/original/pic8148911.jpg"
},
{
"name": "Doomlings",
"bggId": 324413,
"note": "Card game set collection with extinction events. Build species traits through ages until doomsday arrives.",
"image": "https://cf.geekdo-images.com/v3c8Z12rTB_0lHndnnKZIw__imagepage/img/Lagw12YQdebM_YXbyCyAUPGyo1w=/fit-in/900x600/filters:no_upscale():strip_icc()/pic8493673.jpg"
},
{
"name": "Dragonology Gems",
"bggId": 26617,
"note": "Dragon-themed set collection. Collect gems to complete dragon research sets.",
"image": "https://cf.geekdo-images.com/6_Bkzj3aJL-A-tDU0TsJjw__imagepage/img/mfZSMBTnW_l-qrpxSrKzxi4e3kM=/fit-in/900x600/filters:no_upscale():strip_icc()/pic174922.jpg"
},
{
"name": "Heroes of Barcadia",
"bggId": 341027,
"note": "Dungeon crawl party game. Progress through arcade-themed dungeon rooms and drink along the way.",
"image": "https://cf.geekdo-images.com/htK1yU55RTMFIpT2ivdN2w__imagepage/img/kQBLS2DHkRtJfR0MgrhsNdvGBlU=/fit-in/900x600/filters:no_upscale():strip_icc()/pic8505535.jpg"
},
{
"name": "Icarus",
"bggId": 374025,
"note": "Storytelling civilization collapse. Build a civilization through history, then try to prevent its fall.",
"image": "https://cdn11.bigcommerce.com/s-kftzvkkgjv/images/stencil/1280x1280/products/172/826/Icarus_3D_2000px_x_2000px__57865.1615050805.jpg?c=1"
},
{
"name": "Epic Spellwars of the Battle Wizards: Mt. Skullzfire",
"bggId": 112686,
"note": "Over-the-top card combat wizard battle. Combine spell cards to attack other wizards in gory absurdity.",
"image": "https://cf.geekdo-images.com/Da8TXGBq3UjKINgTRIZY9A__imagepage/img/RHaGhriDSnGO1KwYugXqWJevDRE=/fit-in/900x600/filters:no_upscale():strip_icc()/pic1170265.jpg"
},
{
"name": "Lost Cities: Duel",
"bggId": 50,
"note": "Two-player expedition card game. Compete to complete expeditions worth more than your opponent's.",
"image": "https://cf.geekdo-images.com/AL5D-dXabY-Lk3PqIFk_0g__imagepage/img/co0J-4Ll2G4zRgAsA6BeneHb8Oc=/fit-in/900x600/filters:no_upscale():strip_icc()/pic4597095.jpg"
},
{
"name": "The Fox in the Forest",
"bggId": 221965,
"note": "Two-player trick-taking. Win tricks to score points, but too many wins can hurt your total.",
"image": "https://cf.geekdo-images.com/spcy6nvsfq-hxYgwEpmidQ__imagepage/img/Z1bf4RMtxWZwVmu_WWyjQ5CBE98=/fit-in/900x600/filters:no_upscale():strip_icc()/pic3496085.jpg"
},
{
"name": "One Night Werewolf",
"bggId": 147949,
"note": "Fast-paced social deduction. Single night of werewolf chaos; vote to eliminate the werewolf.",
"image": "https://cf.geekdo-images.com/rqLju4uaZq-G9z4g91aPPQ__imagepage/img/dPOMB-k_9xeqFMIhWT6uut3t4ug=/fit-in/900x600/filters:no_upscale():strip_icc()/pic8783294.png"
},
{
"name": "What Do You Meme?",
"bggId": 226610,
"note": "Party game matching caption cards to meme photos. Create the funniest meme combinations.",
"image": "https://cf.geekdo-images.com/5Pmk8PrpMHPMg0hG8fJz9w__imagepage/img/cCVLnA23lUzKCb3FvkdHVJhN0XU=/fit-in/900x600/filters:no_upscale():strip_icc()/pic3749720.png"
},
{
"name": "If You Know You Know",
"bggId": 404056,
"note": "Pop culture trivia party game. Guess phrases from partial information in categories.",
"image": "https://cf.geekdo-images.com/LW2HSiE2smy8rPQCispd6A__imagepage/img/OjRMfXUc8GVaGU47N69OO5uejII=/fit-in/900x600/filters:no_upscale():strip_icc()/pic7804814.jpg"
},
{
"name": "Cards Against Humanity",
"bggId": 50381,
"note": "Offensive humor party game. Fill in the blank with the most inappropriate card from your hand.",
"image": "https://cf.geekdo-images.com/original/pic899330.jpg"
},
{
"name": "Hues and Cues",
"bggId": 302520,
"note": "Color communication party game. Give one- or two-word cues for others to guess a specific color.",
"image": "hhttps://cf.geekdo-images.com/jdR8WW75HkaoHGMTCIx9lA__imagepage/img/n2OeBC_N0lqSHG_0_fbta1jgeWs=/fit-in/900x600/filters:no_upscale():strip_icc()/pic5390676.jpg"
},
{
"name": "Wavelength",
"bggId": 262543,
"note": "Telepathy party game. Give clues to help your team locate a hidden concept on a spectrum.",
"image": "https://cf.geekdo-images.com/z4fbPdmJg_5yphJEvql4ZA__imagepage/img/V_3GqWteqDmL8C3ZLRoDXbJKKRo=/fit-in/900x600/filters:no_upscale():strip_icc()/pic4552862.png"
},
{
"name": "Lost in Translation",
"bggId": 271305,
"note": "Word communication party game. Describe words while avoiding forbidden translations and synonyms.",
"image": "https://cf.geekdo-images.com/xLJq_px7T4YRjsnFdXsFCQ__imagepage/img/h6FAV9n-FE5lcsCUijw5X_Mpr0o=/fit-in/900x600/filters:no_upscale():strip_icc()/pic4824635.jpg"
},
{
"name": "Risk Legacy",
"bggId": 105134,
"note": "Legacy strategy global conquest. Write on the board, open sealed packets, and evolve the game over plays.",
"image": "https://cf.geekdo-images.com/LxKu8_oihOQftb2npGvWMw__imagepage/img/hcbhN16q2weOA-OsaD-F7iJyNtk=/fit-in/900x600/filters:no_upscale():strip_icc()/pic1196938.jpg"
},
{
"name": "Risk",
"bggId": 181,
"note": "Classic strategy global domination. Conquer territories and eliminate opponents in military world conquest.",
"image": "https://cf.geekdo-images.com/original/pic1059899.jpg"
},
{
"name": "Age of Mythology: The Board Game",
"bggId": 6707,
"note": "Area control mythological warfare. Recruit armies, build structures, and invoke gods' favor.",
"image": "https://cf.geekdo-images.com/1WIWJ8FPafupWGPOJzWglA__imagepage/img/0H-mabGido-zuUL8PuM56GuBYto=/fit-in/900x600/filters:no_upscale():strip_icc()/pic31542.jpg"
},
{
"name": "Tsuro",
"bggId": 16992,
"note": "Tile placement path following. Lay tiles to create paths; stay on the board while others fall off.",
"image": "https://cf.geekdo-images.com/2V3d4ryhxkS3RoPtDrvpUw__imagepage/img/GMhJZek8dZtWNXZr9fF0OXhSC2c=/fit-in/900x600/filters:no_upscale():strip_icc()/pic875761.jpg"
},
{
"name": "Kings Cup",
"bggId": 359076,
"note": "Drinking game with card-based rules. Draw cards and follow the associated drinking challenges.",
"image": "https://cf.geekdo-images.com/RZkEtStNVOBO18_Mnuo8mA__imagepage/img/jsXYONDRNqbgAGOOkdry3DzzBrE=/fit-in/900x600/filters:no_upscale():strip_icc()/pic6755735.jpg"
},
{
"name": "Pocket Farkle",
"bggId": 3181,
"note": "Dice game push your luck. Roll dice to score points, but risk losing everything if you push too far.",
"image": "https://cf.geekdo-images.com/CKRu4CRpDan3G2tgvEEVrA__imagepage/img/FddbnLCq0lP8Ww7VKCgASR1cAmE=/fit-in/900x600/filters:no_upscale():strip_icc()/pic3624966.jpg"
},
{
"name": "Pokertiles",
"bggId": 13327,
"note": "Abstract tile strategy game. Form poker hands using numbered tiles on a board.",
"image": "https://cf.geekdo-images.com/original/pic113334.jpg"
},
{
"name": "The Perilous Parlor Game",
"bggId": 6235,
"note": "Victorian mystery party game. Deduce the culprit through clues and interactions in a parlor setting.",
"image": "https://cf.geekdo-images.com/XwoUZLCHvSdNE2CD_qCSTA__imagepage/img/qXd6ewvgo8IyoCdm4VE6_YVCMIs=/fit-in/900x600/filters:no_upscale():strip_icc()/pic308160.jpg"
},
{
"name": "Deception: Murder in Hong Kong",
"bggId": 156129,
"note": "Social deduction murder mystery. Forensic scientists identify the killer while one investigator secretly helps.",
"image": "https://cf.geekdo-images.com/original/pic2037351.jpg"
},
{
"name": "Deception: Undercover Allies",
"bggId": 227748,
"note": "Expansion for Deception: Murder in Hong Kong. Adds new roles and additional investigator options.",
"image": "https://cf.geekdo-images.com/Q0ymbSxvWcA7_g55ns96Yg__imagepage/img/Jt7h-vdjkp0ZvFYWMH1p8O7ifZ4=/fit-in/900x600/filters:no_upscale():strip_icc()/pic4199680.jpg"
},
{
"name": "Settlers of Catan (expansion)",
"bggId": 13,
"note": "Expansion for Settlers of Catan. Adds additional gameplay content to the base Catan experience.",
"image": "https://cf.geekdo-images.com/0XODRpReiZBFUffEcqT5-Q__imagepage/img/enC7UTvCAnb6j1Uazvh0OBQjvxw=/fit-in/900x600/filters:no_upscale():strip_icc()/pic9156909.png"
}
]
+683
View File
@@ -0,0 +1,683 @@
[
{
"title": "Demon Slayer",
"favorite": true,
"blurb": "Ufotable's animation is on another planet and the Tanjiro/Nezuko bond at the center actually earns the spectacle. Every fight is a showcase. All four seasons down and I'd rewatch tomorrow.",
"image": "/images/anime/kimetsu-no-yaiba.jpg"
},
{
"title": "Demon Slayer",
"category": "Major Modern Hits",
"status": "Completed",
"note": "All 4 seasons. Ufotable's animation is legendary. Tanjiro and Nezuko's relationship is the emotional core."
},
{
"title": "Jujutsu Kaisen",
"category": "Major Modern Hits",
"status": "Completed",
"note": "Through Season 2. The Shibuya Incident arc redefined what shonen anime can do: dark, unpredictable, devastating."
},
{
"title": "Attack on Titan",
"category": "Major Modern Hits",
"status": "Completed",
"note": "Full series. Dark fantasy with political themes and shocking twists. The basement reveal redefined the series."
},
{
"title": "My Hero Academia",
"category": "Major Modern Hits",
"favorite": true,
"status": "Caught up",
"note": "Through Season 6. Character-driven with incredible growth arcs. The war arc is darker.",
"image": "/images/anime/my-hero-academia.jpg",
"blurb": "The superhero school I didn't know I wanted. Deku's growth is the engine, and the war arc goes hard. Caught up through Season 6 and still rooting for these kids."
},
{
"title": "Chainsaw Man",
"category": "Major Modern Hits",
"status": "Completed",
"note": "Full series. Dark, chaotic, unique. Denji's journey from poverty to hope is compelling."
},
{
"title": "Black Clover",
"category": "Major Modern Hits",
"status": "Completed",
"note": "Full series. Underdog shonen that gets better as it develops."
},
{
"title": "Dragon Ball",
"category": "Classics",
"status": "Completed",
"note": "Original series."
},
{
"title": "Dragon Ball Z",
"category": "Classics",
"status": "Completed",
"note": "Legendary shonen. Saiyans, Frieza, Cell, Buu."
},
{
"title": "Naruto",
"category": "Classics",
"status": "Completed",
"note": "Ninja, friendship, power."
},
{
"title": "Naruto Shippuden",
"category": "Classics",
"status": "Completed",
"note": "Mature sequel with war arc."
},
{
"title": "YuYu Hakusho",
"category": "Classics",
"status": "Completed",
"note": "Classic 90s shonen with Yusuke becoming Spirit Detective."
},
{
"title": "Sailor Moon",
"category": "Classics",
"status": "Completed",
"note": "Classic magical girl."
},
{
"title": "Death Note",
"category": "Classics",
"status": "Completed",
"note": "Detective thriller with supernatural death note."
},
{
"title": "Cowboy Bebop",
"category": "Classics",
"status": "Completed",
"note": "Space western bounty hunters. Style, jazz, melancholy. Watched both anime and Netflix live-action."
},
{
"title": "One Piece",
"category": "Classics",
"status": "Caught up",
"note": "Caught up through current episodes. Epic adventure spanning 1,100+ episodes."
},
{
"title": "Bleach",
"category": "Classics",
"favorite": true,
"status": "Completed",
"note": "Completed including Thousand-Year Blood War arc.",
"image": "/images/anime/bleach.jpg",
"blurb": "My comfort shonen. The Soul Society arc is peak, and the Thousand-Year Blood War comeback proved this series still had it. Completed the whole run."
},
{
"title": "Gundam (All Series)",
"category": "Classics",
"favorite": true,
"status": "Completed",
"note": "All timelines, all series. War, politics, humanity through mecha.",
"image": "/images/anime/gundam-all-series.jpg",
"blurb": "Every timeline, every series. I'm a sucker for the politics, the moral gray, and the mecha spectacle. Picking a favorite timeline feels like picking a favorite kid."
},
{
"title": "Evangelion",
"category": "Classics",
"status": "Completed",
"note": "Psychological mecha deconstruction. Trauma, depression, identity."
},
{
"title": "Code Geass",
"category": "Classics",
"favorite": true,
"status": "Completed",
"note": "Strategy, rebellion, moral questions. The ending is legendary.",
"image": "/images/anime/code-geass.jpg",
"blurb": "Lelouch is the scheming antihero blueprint. The chess battles, the twists, and that ending. THE ending. Still the gold standard for me."
},
{
"title": "Fullmetal Alchemist: Brotherhood",
"category": "Classics",
"status": "Completed",
"note": "Perfection in shonen storytelling."
},
{
"title": "Hunter x Hunter",
"category": "Classics",
"status": "Completed",
"note": "Complex battle shonen with Nen power system. The Chimera Ant arc is philosophical."
},
{
"title": "Saint Seiya",
"category": "Classics",
"status": "Completed",
"note": "Classic shonen with saints and cloths."
},
{
"title": "That Time I Got Reincarnated as a Slime",
"category": "Isekai & Fantasy",
"favorite": true,
"status": "Completed",
"note": "Nation-building focus over battles. Also reading light novels (21/23 volumes).",
"image": "/images/anime/that-time-i-got-reincarnated-as-a-slime.jpg",
"blurb": "Started as a joke premise and turned into the best nation-building power fantasy in the genre. Rimuru's crew is pure comfort. Also 21/23 light novels deep."
},
{
"title": "Overlord",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Protagonist becomes actual overlord. Political intrigue and power fantasy. Also reading light novels (16/18 volumes)."
},
{
"title": "Re:Zero",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Time-loop psychological thriller. Subaru's growth is compelling. Also reading light novels (26-28/44+ volumes)."
},
{
"title": "Ascendance of a Bookworm",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Unique isekai with commerce and innovation focus rather than combat."
},
{
"title": "Solo Leveling",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Korean webnovel turned anime/manhwa. Protagonist gains power through system. Consumed in all formats."
},
{
"title": "Log Horizon",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Thousands trapped in MMORPG become reality. Focus on politics and society building."
},
{
"title": "No Game No Life",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Everything decided by games. Vibrant colors, clever strategies."
},
{
"title": "Yona of the Dawn",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Princess exiled, gathers allies. Character-driven fantasy romance."
},
{
"title": "Kakegurui",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Gambling school where status determined by gambling. Psychological, dark humor."
},
{
"title": "Rising of the Shield Hero",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Summoned as Shield Hero, faces betrayal. Darker isekai."
},
{
"title": "How a Realist Hero Rebuilt the Kingdom",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Isekai focusing on kingdom management and economics."
},
{
"title": "The Strongest Sage with the Weakest Crest",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Reincarnated with low stats, technique overcomes limits."
},
{
"title": "Plunderer",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Post-apocalyptic fantasy with unique power system."
},
{
"title": "A Returner's Magic Should Be Special",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Magical academy with regression trope."
},
{
"title": "Knights and Magic",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Mecha fantasy."
},
{
"title": "The Unwanted Undead Adventurer",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Supporting character becomes main. Short, sweet, complete."
},
{
"title": "Black Summoner",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Dungeon fantasy with overpowered protagonist."
},
{
"title": "The Irregular at Magic High School",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Magic school where student has uncommon power."
},
{
"title": "Fire Force",
"category": "Battle & Action",
"status": "Completed",
"note": "Firefighters fighting flames from human combustion."
},
{
"title": "Psycho-Pass",
"category": "Battle & Action",
"status": "Completed",
"note": "Cyberpunk dystopia where potential for crime measured. Philosophical, dark."
},
{
"title": "Parasyte",
"category": "Battle & Action",
"status": "Completed",
"note": "Alien parasites taking over human bodies. Body horror, philosophy."
},
{
"title": "World Trigger",
"category": "Battle & Action",
"status": "Completed",
"note": "Invaders and defense force using \"triggers.\" Tactical, strategic."
},
{
"title": "Aldnoah.Zero",
"category": "Battle & Action",
"status": "Completed",
"note": "Mecha war between Earth and Vers. Political, tactical."
},
{
"title": "Blood Blockade Battlefront",
"category": "Battle & Action",
"status": "Completed",
"note": "Supernatural city with unusual powers. Stylish, action-packed."
},
{
"title": "Hellsing",
"category": "Battle & Action",
"status": "Completed",
"note": "Vampire hunters fighting vampires. Over-the-top, violent."
},
{
"title": "Goblin Slayer",
"category": "Battle & Action",
"status": "Completed",
"note": "Dark fantasy adventurer whose focus is killing goblins. Trauma-informed."
},
{
"title": "Berserk of Gluttony",
"category": "Battle & Action",
"status": "Completed",
"note": "Fantasy with unique power system involving eating."
},
{
"title": "Blue Exorcist",
"category": "Battle & Action",
"status": "Completed",
"note": "Protagonist is son of Satan but becomes exorcist."
},
{
"title": "Fate/Stay Night: Unlimited Blade Works",
"category": "Battle & Action",
"status": "Completed",
"note": "Visual novel adaptation with Holy Grail War."
},
{
"title": "Fate/Zero",
"category": "Battle & Action",
"status": "Completed",
"note": "Prequel exploring previous Holy Grail War. Complex, philosophical."
},
{
"title": "The God of High School",
"category": "Battle & Action",
"status": "Completed",
"note": "Tournament fighting. Watched in anime and webtoon."
},
{
"title": "Noblesse",
"category": "Battle & Action",
"status": "Completed",
"note": "Vampire nobility in modern setting. Watched in anime and webtoon."
},
{
"title": "Tower of God",
"category": "Battle & Action",
"status": "Completed",
"note": "Climbing mysterious tower. Watched in anime and manhwa."
},
{
"title": "Vinland Saga",
"category": "Battle & Action",
"status": "Completed",
"note": "Vikings, war, pacifism, redemption. Thorfinn's journey is complex and mature."
},
{
"title": "Magi: The Labyrinth of Magic",
"category": "Isekai & Fantasy",
"favorite": true,
"status": "Completed",
"note": "Adventure fantasy inspired by the Arabian Nights. Dungeons, djinn, and a sprawling world that grows more political as it goes.",
"image": "/images/anime/magi-the-labyrinth-of-magic.jpg",
"blurb": "Arabian Nights inspired adventure that grows up as it goes. Dungeons, djinn, and a world that opens into real politics. Doesn't get enough love."
},
{
"title": "Witch Hat Atelier",
"category": "Isekai & Fantasy",
"status": "Completed",
"note": "Beautifully drawn fantasy about a girl who discovers magic is drawn, not born. The art alone is worth it."
},
{
"title": "Erased",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Time travel to prevent murders. Emotional, compelling."
},
{
"title": "Death Parade",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Afterlife bar where games determine souls. Emotional, philosophical."
},
{
"title": "So I'm a Spider, So What?",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Isekai from spider perspective. Clever, funny, surprisingly deep."
},
{
"title": "Tokyo Ghoul",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Half-ghoul navigating two worlds. Dark, violent, explores prejudice."
},
{
"title": "Bungo Stray Dogs",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Detectives with powers based on literary figures."
},
{
"title": "86",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Discriminated soldiers fighting war. Mature, powerful, heartbreaking."
},
{
"title": "Akame ga Kill!",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Dark fantasy rebellion with high casualties."
},
{
"title": "Tanya the Evil",
"category": "Dark & Psychological",
"status": "Completed",
"note": "Salaryman reincarnated as magical girl officer in WWI. (Also known as Youjo Senki.)"
},
{
"title": "Your Lie in April",
"category": "Character & Romance",
"status": "Completed",
"note": "Music and romance. Emotional, beautiful, devastating."
},
{
"title": "Spy x Family",
"category": "Character & Romance",
"status": "Caught up",
"note": "Spy, assassin, telepath form fake family. Charming comedy with heart."
},
{
"title": "Ancient Magus Bride",
"category": "Character & Romance",
"status": "Completed",
"note": "Mature apprentice learning from ancient mage. Beautiful world-building."
},
{
"title": "To Your Eternity",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Immortal being learning humanity across time. Beautiful, devastating."
},
{
"title": "Ranking of Kings",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Fantasy kingdom with deaf prince protagonist."
},
{
"title": "Dr. Stone",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Stone petrification, scientific reconstruction, kingdom building."
},
{
"title": "The Promised Neverland",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Children's orphanage hiding dark secret. First arc excellent."
},
{
"title": "Food Wars",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Cooking battles with elaborate descriptions and fanservice."
},
{
"title": "Wise Man's Grandchild",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Isekai with powerful but socially inept protagonist."
},
{
"title": "Reincarnated as the World's Strongest Exorcist",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Fantasy exorcism."
},
{
"title": "Noragami",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Minor god doing odd jobs. Character-driven fantasy."
},
{
"title": "Lord of Mysteries",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Cthulhu-esque mystery, power system."
},
{
"title": "Fruits Basket",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Sohma family curse, emotional, heartwarming."
},
{
"title": "Kuroko's Basketball",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Sports anime with shadow player and light player partnership."
},
{
"title": "Haikyu!!",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Volleyball anime with incredible team dynamics. Character work elevates beyond sports."
},
{
"title": "Digimon Adventure Tri",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Digimon reboot/remix."
},
{
"title": "Zatch Bell",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Battle mamodo with spell books. (Also known as Zak Bell.)"
},
{
"title": "Konosuba",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Isekai comedy with dysfunctional party."
},
{
"title": "Guilty Crown",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Apocalypse, music, power systems."
},
{
"title": "Record of Grancrest War",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Fantasy war and unions."
},
{
"title": "SerVamp",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Vampires and servants."
},
{
"title": "Prince of Tennis",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Sports anime."
},
{
"title": "MAR",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Adventure fantasy."
},
{
"title": "Tokyo Revengers",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Time gang time travel. Watched anime, finished manga as well."
},
{
"title": "Darling in the FranXX",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Mecha fantasy romance."
},
{
"title": "SK8 the Infinity",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Skateboard racing anime."
},
{
"title": "Soul Eater",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Weapon/meister academy."
},
{
"title": "Wistoria: Wand and Sword",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Magic academy anime."
},
{
"title": "Reign of the Seven Spellblades",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Magic academy."
},
{
"title": "The Unaware Atelier Meister",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Isekai atelier fantasy."
},
{
"title": "Kabaneri of the Iron Fortress",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Zombies with trains."
},
{
"title": "Classroom of the Elite",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Elite school mystery with hidden genius protagonist."
},
{
"title": "Charlotte",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Students with powers."
},
{
"title": "Sword Art Online",
"category": "Unique & Specialized",
"status": "Completed",
"note": "All seasons and movies."
},
{
"title": "The King's Avatar",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Pro gamer returns. Watched fully, read light novel, seen all animation and live-action shows. Completed all formats."
},
{
"title": "Fairy Tail",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Guild-based fantasy."
},
{
"title": "Bofuri",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Defensive build in VRMMO."
},
{
"title": "Kaiju No. 8",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Kaiju defense forces."
},
{
"title": "Welcome to Demon School! Iruma-Kun",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Demon school fantasy."
},
{
"title": "JoJo's Bizarre Adventure",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Up to Steel Ball Run."
},
{
"title": "Black Butler",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Demon butler."
},
{
"title": "Frieren: Beyond Journey's End",
"category": "Unique & Specialized",
"status": "Completed",
"note": "Post-adventure elf fantasy."
},
{
"title": "One Piece",
"favorite": true,
"category": "Long-Running Ongoing",
"status": "Caught up",
"note": "Caught up through current episodes (1,100+ episodes and ongoing).",
"image": "/images/anime/one-piece.jpg",
"blurb": "The commitment is the point. 1,100+ episodes and still catching me off guard. Oda planted seeds decades ago that pay off today. Fully caught up."
}
]
+792
View File
@@ -0,0 +1,792 @@
[
{
"title": "The Princess Bride",
"category": "Standalone",
"year": 1987,
"favorite": true,
"blurb": "The most quotable movie ever made and I will fight anyone who disagrees. Fantasy, romance, comedy, and Rodents Of Unusual Size. As you wish.",
"image": "/images/movies/the-princess-bride.jpg"
},
{
"title": "Contact",
"category": "Standalone",
"year": 1997,
"favorite": true,
"blurb": "Sci-fi that sits with the big questions instead of dodging them. The faith versus reason thread stuck with me long after the credits. Underrated favorite.",
"image": "/images/movies/contact.jpg"
},
{
"title": "Howl's Moving Castle",
"category": "Ghibli",
"year": 2004,
"favorite": true,
"blurb": "Peak Ghibli warmth and Miyazaki doing what he does best: building a world you want to live in. The art alone is worth it.",
"image": "/images/movies/howls-moving-castle.jpg"
},
{
"title": "The Matrix",
"category": "The Matrix",
"year": 1999,
"favorite": true,
"blurb": "Red pill, bullet time, green digital rain. It bent my brain as a kid and it still holds up. The philosophy isn't window dressing, it's the whole movie.",
"image": "/images/movies/the-matrix.jpg"
},
{
"title": "The Matrix Reloaded",
"category": "The Matrix",
"year": 2003
},
{
"title": "The Matrix Revolutions",
"category": "The Matrix",
"year": 2003
},
{
"title": "The Matrix Resurrections",
"category": "The Matrix",
"year": 2021
},
{
"title": "Kiki's Delivery Service",
"category": "Ghibli",
"year": 1989
},
{
"title": "Spirited Away",
"category": "Ghibli",
"year": 2001
},
{
"title": "My Neighbor Totoro",
"category": "Ghibli",
"year": 1988
},
{
"title": "Porco Rosso",
"category": "Ghibli",
"year": 1992
},
{
"title": "Iron Man",
"category": "Marvel Cinematic Universe",
"year": 2008
},
{
"title": "The Incredible Hulk",
"category": "Marvel Cinematic Universe",
"year": 2008
},
{
"title": "Iron Man 2",
"category": "Marvel Cinematic Universe",
"year": 2010
},
{
"title": "Thor",
"category": "Marvel Cinematic Universe",
"year": 2011
},
{
"title": "Captain America: The First Avenger",
"category": "Marvel Cinematic Universe",
"year": 2011
},
{
"title": "The Avengers",
"category": "Marvel Cinematic Universe",
"year": 2012
},
{
"title": "Iron Man 3",
"category": "Marvel Cinematic Universe",
"year": 2013
},
{
"title": "Thor: The Dark World",
"category": "Marvel Cinematic Universe",
"year": 2013
},
{
"title": "Captain America: The Winter Soldier",
"category": "Marvel Cinematic Universe",
"year": 2014
},
{
"title": "Guardians of the Galaxy",
"category": "Marvel Cinematic Universe",
"year": 2014
},
{
"title": "Avengers: Age of Ultron",
"category": "Marvel Cinematic Universe",
"year": 2015
},
{
"title": "Ant-Man",
"category": "Marvel Cinematic Universe",
"year": 2015
},
{
"title": "Captain America: Civil War",
"category": "Marvel Cinematic Universe",
"year": 2016
},
{
"title": "Doctor Strange",
"category": "Marvel Cinematic Universe",
"year": 2016
},
{
"title": "Spider-Man: Homecoming",
"category": "Marvel Cinematic Universe",
"year": 2017
},
{
"title": "Thor: Ragnarok",
"category": "Marvel Cinematic Universe",
"year": 2017
},
{
"title": "Black Panther",
"category": "Marvel Cinematic Universe",
"year": 2018
},
{
"title": "Avengers: Infinity War",
"category": "Marvel Cinematic Universe",
"year": 2018,
"favorite": true,
"blurb": "The MCU at its operatic peak. Thanos is the engine and that ending is still a gut punch. Ten years of setup, paid off in one movie.",
"image": "/images/movies/avengers-infinity-war.jpg"
},
{
"title": "Ant-Man and the Wasp",
"category": "Marvel Cinematic Universe",
"year": 2018
},
{
"title": "Captain Marvel",
"category": "Marvel Cinematic Universe",
"year": 2019
},
{
"title": "Avengers: Endgame",
"category": "Marvel Cinematic Universe",
"year": 2019,
"favorite": true,
"blurb": "The decade-long payoff. The Portals scene is the closest thing my generation has to a shared cultural moment. Worth every post-credit scene it took to get there.",
"image": "/images/movies/avengers-endgame.jpg"
},
{
"title": "Spider-Man: Far From Home",
"category": "Marvel Cinematic Universe",
"year": 2019
},
{
"title": "Black Widow",
"category": "Marvel Cinematic Universe",
"year": 2021
},
{
"title": "Shang-Chi and the Legend of the Ten Rings",
"category": "Marvel Cinematic Universe",
"year": 2021
},
{
"title": "Eternals",
"category": "Marvel Cinematic Universe",
"year": 2021
},
{
"title": "Spider-Man: No Way Home",
"category": "Marvel Cinematic Universe",
"year": 2021
},
{
"title": "Doctor Strange in the Multiverse of Madness",
"category": "Marvel Cinematic Universe",
"year": 2022
},
{
"title": "Thor: Love and Thunder",
"category": "Marvel Cinematic Universe",
"year": 2022
},
{
"title": "Black Panther: Wakanda Forever",
"category": "Marvel Cinematic Universe",
"year": 2022
},
{
"title": "Ant-Man and the Wasp: Quantumania",
"category": "Marvel Cinematic Universe",
"year": 2023
},
{
"title": "Guardians of the Galaxy Vol. 3",
"category": "Marvel Cinematic Universe",
"year": 2023
},
{
"title": "The Marvels",
"category": "Marvel Cinematic Universe",
"year": 2023
},
{
"title": "Deadpool & Wolverine",
"category": "Marvel Cinematic Universe",
"year": 2024
},
{
"title": "Captain America: Brave New World",
"category": "Marvel Cinematic Universe",
"year": 2025
},
{
"title": "Thunderbolts*",
"category": "Marvel Cinematic Universe",
"year": 2025
},
{
"title": "The Fantastic Four: First Steps",
"category": "Marvel Cinematic Universe",
"year": 2025
},
{
"title": "Avengers: Doomsday",
"category": "Marvel Cinematic Universe",
"year": 2026
},
{
"title": "Avatar",
"category": "Avatar",
"year": 2009
},
{
"title": "Avatar: The Way of Water",
"category": "Avatar",
"year": 2022
},
{
"title": "Pacific Rim",
"category": "Pacific Rim",
"year": 2013
},
{
"title": "Pacific Rim: Uprising",
"category": "Pacific Rim",
"year": 2018
},
{
"title": "Knives Out",
"category": "Knives Out",
"year": 2019
},
{
"title": "Glass Onion: A Knives Out Mystery",
"category": "Knives Out",
"year": 2022
},
{
"title": "Wake Up Dead Man: A Knives Out Mystery",
"category": "Knives Out",
"year": 2025
},
{
"title": "The Fast and the Furious",
"category": "Fast & Furious",
"year": 2001
},
{
"title": "2 Fast 2 Furious",
"category": "Fast & Furious",
"year": 2003
},
{
"title": "The Fast and the Furious: Tokyo Drift",
"category": "Fast & Furious",
"year": 2006
},
{
"title": "Fast & Furious",
"category": "Fast & Furious",
"year": 2009
},
{
"title": "Fast Five",
"category": "Fast & Furious",
"year": 2011
},
{
"title": "Fast & Furious 6",
"category": "Fast & Furious",
"year": 2013
},
{
"title": "Furious 7",
"category": "Fast & Furious",
"year": 2015
},
{
"title": "The Fate of the Furious",
"category": "Fast & Furious",
"year": 2017
},
{
"title": "F9: The Fast Saga",
"category": "Fast & Furious",
"year": 2021
},
{
"title": "Fast X",
"category": "Fast & Furious",
"year": 2023
},
{
"title": "Hobbs & Shaw",
"category": "Fast & Furious",
"year": 2019
},
{
"title": "Star Wars: Episode IV - A New Hope",
"category": "Star Wars",
"year": 1977
},
{
"title": "Star Wars: Episode V - The Empire Strikes Back",
"favorite": true,
"category": "Star Wars",
"year": 1980,
"image": "/images/movies/star-wars-episode-v-the-empire-strikes-back.jpg",
"blurb": "The one that made Star Wars mean something. The twist, the cliffhanger, Hoth, the training. The blueprint for a great sequel."
},
{
"title": "Star Wars: Episode VI - Return of the Jedi",
"category": "Star Wars",
"year": 1983
},
{
"title": "Star Wars: Episode I - The Phantom Menace",
"category": "Star Wars",
"year": 1999
},
{
"title": "Star Wars: Episode II - Attack of the Clones",
"category": "Star Wars",
"year": 2002
},
{
"title": "Star Wars: Episode III - Revenge of the Sith",
"category": "Star Wars",
"year": 2005
},
{
"title": "Star Wars: Episode VII - The Force Awakens",
"category": "Star Wars",
"year": 2015
},
{
"title": "Rogue One: A Star Wars Story",
"category": "Star Wars",
"year": 2016
},
{
"title": "Star Wars: Episode VIII - The Last Jedi",
"category": "Star Wars",
"year": 2017
},
{
"title": "Solo: A Star Wars Story",
"category": "Star Wars",
"year": 2018
},
{
"title": "Star Wars: Episode IX - The Rise of Skywalker",
"category": "Star Wars",
"year": 2019
},
{
"title": "Saw",
"category": "Saw",
"year": 2004
},
{
"title": "Saw II",
"category": "Saw",
"year": 2005
},
{
"title": "Saw III",
"category": "Saw",
"year": 2006
},
{
"title": "Saw IV",
"category": "Saw",
"year": 2007
},
{
"title": "Saw V",
"category": "Saw",
"year": 2008
},
{
"title": "Saw VI",
"category": "Saw",
"year": 2009
},
{
"title": "Saw 3D: The Final Chapter",
"category": "Saw",
"year": 2010
},
{
"title": "Jigsaw",
"category": "Saw",
"year": 2017
},
{
"title": "Spiral: From the Book of Saw",
"category": "Saw",
"year": 2021
},
{
"title": "Saw X",
"category": "Saw",
"year": 2023
},
{
"title": "Mission: Impossible",
"category": "Mission: Impossible",
"year": 1996
},
{
"title": "Mission: Impossible 2",
"category": "Mission: Impossible",
"year": 2000
},
{
"title": "Mission: Impossible III",
"category": "Mission: Impossible",
"year": 2006
},
{
"title": "Mission: Impossible - Ghost Protocol",
"category": "Mission: Impossible",
"year": 2011
},
{
"title": "Mission: Impossible - Rogue Nation",
"category": "Mission: Impossible",
"year": 2015
},
{
"title": "Mission: Impossible - Fallout",
"category": "Mission: Impossible",
"year": 2018
},
{
"title": "Mission: Impossible - Dead Reckoning",
"category": "Mission: Impossible",
"year": 2023
},
{
"title": "Mission: Impossible - The Final Reckoning",
"category": "Mission: Impossible",
"year": 2025
},
{
"title": "Jurassic Park",
"favorite": true,
"category": "Jurassic Park / World",
"year": 1993,
"image": "/images/movies/jurassic-park.jpg",
"blurb": "The movie that made dinosaurs feel real. The T. rex paddock scene is flawless and the John Williams score lives in my head rent-free. Saw it too young and never recovered."
},
{
"title": "The Lost World: Jurassic Park",
"category": "Jurassic Park / World",
"year": 1997
},
{
"title": "Jurassic Park III",
"category": "Jurassic Park / World",
"year": 2001
},
{
"title": "Jurassic World",
"category": "Jurassic Park / World",
"year": 2015
},
{
"title": "Jurassic World: Fallen Kingdom",
"category": "Jurassic Park / World",
"year": 2018
},
{
"title": "Jurassic World Dominion",
"category": "Jurassic Park / World",
"year": 2022
},
{
"title": "Transformers",
"category": "Transformers",
"favorite": true,
"year": 2007,
"image": "/images/movies/transformers.jpg",
"blurb": "Giant robots punching each other and somehow it rules. Optimus Prime on screen for the first time hit younger me hard. Pure spectacle, zero apologies. One of very few movies I saw in theatres more than once"
},
{
"title": "Transformers: Revenge of the Fallen",
"category": "Transformers",
"year": 2009
},
{
"title": "Transformers: Dark of the Moon",
"category": "Transformers",
"year": 2011
},
{
"title": "Transformers: Age of Extinction",
"category": "Transformers",
"year": 2014
},
{
"title": "Transformers: The Last Knight",
"category": "Transformers",
"year": 2017
},
{
"title": "Bumblebee",
"category": "Transformers",
"year": 2018
},
{
"title": "Transformers: Rise of the Beasts",
"category": "Transformers",
"year": 2023
},
{
"title": "Spider-Man",
"category": "Spider-Man (All Versions)",
"year": 2002
},
{
"title": "Spider-Man 2",
"category": "Spider-Man (All Versions)",
"year": 2004
},
{
"title": "Spider-Man 3",
"category": "Spider-Man (All Versions)",
"year": 2007
},
{
"title": "The Amazing Spider-Man",
"category": "Spider-Man (All Versions)",
"year": 2012
},
{
"title": "The Amazing Spider-Man 2",
"category": "Spider-Man (All Versions)",
"year": 2014
},
{
"title": "Spider-Man: Into the Spider-Verse",
"category": "Spider-Man (All Versions)",
"year": 2018
},
{
"title": "Spider-Man: Across the Spider-Verse",
"category": "Spider-Man (All Versions)",
"year": 2023
},
{
"title": "Batman Begins",
"category": "The Dark Knight Trilogy",
"year": 2005
},
{
"title": "The Dark Knight",
"category": "The Dark Knight Trilogy",
"year": 2008
},
{
"title": "The Dark Knight Rises",
"category": "The Dark Knight Trilogy",
"year": 2012
},
{
"title": "X-Men",
"category": "X-Men / Fox Marvel",
"year": 2000
},
{
"title": "X2: X-Men United",
"category": "X-Men / Fox Marvel",
"year": 2003
},
{
"title": "X-Men: The Last Stand",
"category": "X-Men / Fox Marvel",
"year": 2006
},
{
"title": "X-Men Origins: Wolverine",
"category": "X-Men / Fox Marvel",
"year": 2009
},
{
"title": "X-Men: First Class",
"category": "X-Men / Fox Marvel",
"year": 2011
},
{
"title": "The Wolverine",
"category": "X-Men / Fox Marvel",
"year": 2013
},
{
"title": "X-Men: Days of Future Past",
"category": "X-Men / Fox Marvel",
"year": 2014
},
{
"title": "Deadpool",
"category": "X-Men / Fox Marvel",
"year": 2016
},
{
"title": "X-Men: Apocalypse",
"category": "X-Men / Fox Marvel",
"year": 2016
},
{
"title": "Logan",
"category": "X-Men / Fox Marvel",
"year": 2017
},
{
"title": "Deadpool 2",
"category": "X-Men / Fox Marvel",
"year": 2018
},
{
"title": "X-Men: Dark Phoenix",
"category": "X-Men / Fox Marvel",
"year": 2019
},
{
"title": "The New Mutants",
"category": "X-Men / Fox Marvel",
"year": 2020
},
{
"title": "Raiders of the Lost Ark",
"category": "Indiana Jones",
"year": 1981
},
{
"title": "Indiana Jones and the Temple of Doom",
"category": "Indiana Jones",
"year": 1984
},
{
"title": "Indiana Jones and the Last Crusade",
"category": "Indiana Jones",
"year": 1989
},
{
"title": "Indiana Jones and the Kingdom of the Crystal Skull",
"category": "Indiana Jones",
"year": 2008
},
{
"title": "Indiana Jones and the Dial of Destiny",
"category": "Indiana Jones",
"year": 2023
},
{
"title": "Godzilla",
"category": "MonsterVerse",
"year": 2014
},
{
"title": "Kong: Skull Island",
"category": "MonsterVerse",
"year": 2017
},
{
"title": "Godzilla: King of the Monsters",
"category": "MonsterVerse",
"year": 2019
},
{
"title": "Godzilla vs. Kong",
"category": "MonsterVerse",
"year": 2021
},
{
"title": "Godzilla x Kong: The New Empire",
"category": "MonsterVerse",
"year": 2024
},
{
"title": "The Bourne Identity",
"category": "Bourne",
"year": 2002
},
{
"title": "The Bourne Supremacy",
"category": "Bourne",
"year": 2004
},
{
"title": "The Bourne Ultimatum",
"category": "Bourne",
"year": 2007
},
{
"title": "The Bourne Legacy",
"category": "Bourne",
"year": 2012
},
{
"title": "Jason Bourne",
"category": "Bourne",
"year": 2016
},
{
"title": "Ocean's Eleven",
"favorite": true,
"category": "Ocean's",
"year": 2001,
"image": "/images/movies/oceans-eleven.jpg",
"blurb": "The smoothest movie ever made. The cast, the plan, the vibe. Everything a heist movie should be and impossibly rewatchable."
},
{
"title": "Ocean's Twelve",
"category": "Ocean's",
"year": 2004
},
{
"title": "Ocean's Thirteen",
"category": "Ocean's",
"year": 2007
},
{
"title": "Ocean's 8",
"category": "Ocean's",
"year": 2018
},
{
"title": "Venom",
"category": "Venom",
"year": 2018
},
{
"title": "Venom: Let There Be Carnage",
"category": "Venom",
"year": 2021
}
]
+607
View File
@@ -0,0 +1,607 @@
[
{
"title": "Breaking Bad",
"favorite": true,
"blurb": "The character study of a decade. Watching Walter White transform is devastating, and the craftsmanship is meticulous top to bottom. One of the best shows ever made, full stop.",
"image": "/images/tv/breaking-bad.jpg"
},
{
"title": "Brooklyn Nine-Nine",
"favorite": true,
"blurb": "The found-family comedy with the perfect ensemble. Andre Braugher's deadpan Captain Holt is comedy royalty. Rewatches never get old.",
"image": "/images/tv/brooklyn-nine-nine.jpg"
},
{
"title": "Parks and Recreation",
"favorite": true,
"blurb": "A show about people who actually care. Leslie Knope is everything, and the optimism is genuine, not forced. My comfort rewatch.",
"image": "/images/tv/parks-and-recreation.jpg"
},
{
"title": "The Bear",
"favorite": true,
"blurb": "Anxiety and grief in a kitchen, filmed like a panic attack. It's frenetic and emotionally devastating in the best way. Hard to watch, impossible to stop.",
"image": "/images/tv/the-bear.jpg"
},
{
"title": "WandaVision",
"favorite": true,
"blurb": "The MCU at its strangest and most experimental. Sitcom pastiche hiding real grief, and it actually landed. Brilliant.",
"image": "/images/tv/wandavision.jpg"
},
{
"title": "Suits",
"favorite": true,
"blurb": "Sharp dialogue and the Harvey and Mike dynamic are the whole pitch. And Louis Litt's growth sneaks up on you. Pure comfort TV.",
"image": "/images/tv/suits.jpg"
},
{
"title": "30 Rock",
"image": "/images/tv/30-rock.jpg"
},
{
"title": "House",
"image": "/images/tv/house.jpg"
},
{
"title": "Arcane",
"favorite": true,
"blurb": "One of the best animated shows made, period. The art is staggering and it earns every emotional beat without leaning on you to know the game.",
"image": "/images/tv/arcane.jpg"
},
{
"title": "The Wire",
"image": "/images/tv/the-wire.jpg"
},
{
"title": "The Sopranos",
"image": "/images/tv/the-sopranos.jpg"
},
{
"title": "Succession",
"image": "/images/tv/succession.jpg"
},
{
"title": "The Crown",
"image": "/images/tv/the-crown.jpg"
},
{
"title": "The Queen's Gambit",
"image": "/images/tv/the-queens-gambit.jpg"
},
{
"title": "Ozark",
"image": "/images/tv/ozark.jpg"
},
{
"title": "Peaky Blinders",
"image": "/images/tv/peaky-blinders.jpg"
},
{
"title": "Breaking Bad",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "The Wire",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "The Sopranos",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Succession",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "The Crown",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Game of Thrones",
"favorite": true,
"category": "Prestige Drama",
"status": "Completed",
"image": "/images/tv/game-of-thrones.jpg",
"blurb": "When it hit, nothing else was close. The political scheming and the sheer scale set the bar for a decade. I watched every week."
},
{
"title": "House of the Dragon",
"category": "Prestige Drama",
"status": "Watching",
"note": "Watching Season 2"
},
{
"title": "The Last of Us",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Westworld",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Big Little Lies",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "True Detective",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "House of Cards",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Ozark",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "The Queen's Gambit",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Peaky Blinders",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Mindhunter",
"category": "Prestige Drama",
"status": "Completed"
},
{
"title": "Stranger Things",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Dark",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "You",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "The OA",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Russian Doll",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Warrior Nun",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Black Mirror",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Altered Carbon",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Alice in Borderland",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Lupin",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Wednesday",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Shadow and Bone",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Fate: The Winx Saga",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "The Order",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Cobra Kai",
"favorite": true,
"category": "Streaming Originals",
"status": "Completed",
"image": "/images/tv/cobra-kai.jpg",
"blurb": "Turns a nostalgia property into something genuinely good. The Johnny and Daniel rivalry actually has legs, and it's more fun than it has any right to be."
},
{
"title": "Squid Game",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "The Boys",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "Invincible",
"favorite": true,
"category": "Streaming Originals",
"status": "Completed",
"image": "/images/tv/invincible.jpg",
"blurb": "Takes the superhero thing seriously in the ways the movies can't. When it goes, it GOES. Brutal in the best way."
},
{
"title": "Severance",
"category": "Streaming Originals",
"status": "Completed"
},
{
"title": "The Office (US)",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Parks and Recreation",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "30 Rock",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Brooklyn Nine-Nine",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Friends",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Community",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Arrested Development",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Veep",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Curb Your Enthusiasm",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Silicon Valley",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "The Big Bang Theory",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Modern Family",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Abbott Elementary",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Never Have I Ever",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "Sex Education",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "BoJack Horseman",
"category": "Workplace & Sitcom Comedies",
"status": "Completed"
},
{
"title": "House",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "The West Wing",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "The Closer",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "Doctor Who",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "NCIS",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "Criminal Minds",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "Law & Order: SVU",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "Rizzoli & Isles",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "Bodyguard",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "Designated Survivor",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "The Recruit",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "The Night Agent",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "The Lincoln Lawyer",
"category": "Procedural & Long-Running",
"status": "Watching"
},
{
"title": "A Man on the Inside",
"category": "Procedural & Long-Running",
"status": "Completed"
},
{
"title": "Daredevil",
"favorite": true,
"category": "Marvel Universe",
"status": "Completed",
"image": "/images/tv/daredevil.jpg",
"blurb": "The Netflix Marvel high water mark. Charlie Cox is born for this role and the hallway fights are legendary. Still the benchmark."
},
{
"title": "Jessica Jones",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Luke Cage",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Iron Fist",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "The Punisher",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "The Defenders",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "WandaVision",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Loki",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "What If...?",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Hawkeye",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Moon Knight",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Ms. Marvel",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "She-Hulk",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Secret Invasion",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Wonder Man",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Agatha All Along",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "The Flash",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Supergirl",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Arrow",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "Legends of Tomorrow",
"category": "Marvel Universe",
"status": "Completed"
},
{
"title": "The Mandalorian",
"favorite": true,
"category": "Star Wars Universe",
"status": "Completed",
"image": "/images/tv/the-mandalorian.jpg",
"blurb": "Star Wars finally felt small and personal again. Grogu is the obvious hook but the western framework is what kept me. Andor gets the prestige love but this is my comfort watch."
},
{
"title": "The Book of Boba Fett",
"category": "Star Wars Universe",
"status": "Completed"
},
{
"title": "Ahsoka",
"category": "Star Wars Universe",
"status": "Completed"
},
{
"title": "Obi-Wan Kenobi",
"category": "Star Wars Universe",
"status": "Completed"
},
{
"title": "Andor",
"category": "Star Wars Universe",
"status": "Completed"
},
{
"title": "Arcane",
"category": "Animation (Non-Anime)",
"status": "Completed"
},
{
"title": "Castlevania",
"favorite": true,
"category": "Animation (Non-Anime)",
"status": "Completed",
"image": "/images/tv/castlevania.jpg",
"blurb": "Gothic, violent, and surprisingly literary. Trevor Belmont's crew and the Dracula grief storyline are top tier. Animation that doesn't pull punches."
},
{
"title": "Blood of Zeus",
"category": "Animation (Non-Anime)",
"status": "Completed"
},
{
"title": "Rick and Morty",
"category": "Animation (Non-Anime)",
"status": "Completed"
},
{
"title": "Archer",
"category": "Animation (Non-Anime)",
"status": "Completed"
},
{
"title": "Futurama",
"category": "Animation (Non-Anime)",
"status": "Completed"
},
{
"title": "Cyberpunk: Edgerunners",
"category": "Animation (Non-Anime)",
"status": "Completed"
},
{
"title": "The Great British Baking Show",
"favorite": true,
"category": "Reality & Competition",
"status": "Completed",
"image": "/images/tv/the-great-british-baking-show.jpg",
"blurb": "The antidote to everything else on this list. Pure comfort. I put it on when I need the world to be gentle for an hour."
},
{
"title": "Hell's Kitchen",
"category": "Reality & Competition",
"status": "Completed"
},
{
"title": "MasterChef",
"category": "Reality & Competition",
"status": "Completed"
},
{
"title": "Kitchen Nightmares",
"category": "Reality & Competition",
"status": "Completed"
}
]
+165
View File
@@ -0,0 +1,165 @@
[
{
"title": "Brandon Sanderson — Cosmere",
"category": "Books",
"status": "Complete",
"favorite": true,
"blurb": "The gold standard for me. Every novel, every era, all consumed. The way the shared universe quietly connects across worlds is something no one else is doing at this scale. Eagerly waiting the next era.",
"image": "/images/reading/brandon-sanderson-cosmere.jpg"
},
{
"title": "Frank Herbert — Dune",
"category": "Books",
"status": "Complete",
"favorite": true,
"blurb": "Books 1 through 3 complete. Dune reshaped how I think about worldbuilding: the politics, the religion, the ecology all woven together. The original is untouchable.",
"image": "/images/reading/frank-herbert-dune.jpg"
},
{
"title": "J.R.R. Tolkien — The Lord of the Rings",
"category": "Books",
"status": "Listening",
"favorite": true,
"blurb": "The foundation. Currently rereading via the Andy Serkis audiobooks, which are fantastic. Tolkien invented the modern fantasy map and no one has topped the depth since.",
"image": "/images/reading/j-r-r-tolkien-the-lord-of-the-rings.jpg"
},
{
"title": "Douglas Preston & Lincoln Child — Pendergast",
"category": "Books",
"favorite": true,
"status": "Rereading",
"blurb": "The series that proved to me a great thriller doesn't need dragons. Agent Pendergast is one of a kind. Currently rereading, up to Cabinet of Curiosities.",
"image": "/images/reading/douglas-preston-lincoln-child-pendergast.jpg"
},
{
"title": "Sarah J. Maas — Throne of Glass",
"category": "Books",
"status": "Reading"
},
{
"title": "Emily Rodda — Deltora Quest",
"category": "Books",
"favorite": true,
"status": "Reread-pending",
"blurb": "A childhood favorite I'm planning to revisit via the audiobooks. Don't let the middle-grade label fool you, the worldbuilding stuck with me for decades.",
"image": "/images/reading/emily-rodda-deltora-quest.jpg"
},
{
"title": "Fonda Lee — Green Bone Saga",
"category": "Books",
"status": "Next"
},
{
"title": "The Hobbit",
"category": "Books",
"status": "Complete"
},
{
"title": "That Time I Got Reincarnated as a Slime",
"category": "Light Novels",
"status": "Reading",
"note": "Read up to Volume 13 before, planning to finish now that it is complete. 21/23 volumes."
},
{
"title": "Overlord",
"category": "Light Novels",
"status": "Reading",
"note": "16/18 volumes."
},
{
"title": "Re:Zero",
"category": "Light Novels",
"status": "Reading",
"note": "26-28/44+ volumes."
},
{
"title": "The King's Avatar",
"category": "Light Novels",
"favorite": true,
"status": "Complete",
"blurb": "A pro gamer gets forced out of his team and climbs back to the top from scratch. I've consumed it in every format: novel, animation, live-action. The esports scene is immaculately detailed.",
"note": "Read fully. Also seen all animation and live-action shows.",
"image": "/images/reading/the-king-s-avatar.jpg"
},
{
"title": "Solo Leveling",
"category": "Webnovels",
"favorite": true,
"status": "Complete",
"blurb": "The weakest hunter gets a system and refuses to waste it. The 'level up' loop is pure dopamine and the manhwa art is gorgeous. Gobbled it up in every format.",
"note": "Korean webnovel turned manhwa. Consumed in all formats.",
"image": "/images/reading/solo-leveling.jpg"
},
{
"title": "The God of High School",
"category": "Webtoons",
"status": "Complete",
"note": "Also watched the anime."
},
{
"title": "Noblesse",
"category": "Webtoons",
"status": "Complete",
"note": "Also watched the anime."
},
{
"title": "Tower of God",
"category": "Webtoons",
"status": "Complete",
"note": "Also watched the anime."
},
{
"title": "Tokyo Revengers",
"category": "Manga & Manhwa",
"status": "Complete",
"note": "Finished the manga. Also watched the anime."
},
{
"title": "Wistoria: Wand and Sword",
"category": "Manga & Manhwa",
"status": "New",
"note": "Recently added to the reading list. After finishing season 2."
},
{
"title": "Omniscient Reader's Viewpoint",
"category": "Webnovels",
"status": "Complete",
"favorite": true,
"blurb": "The sole reader of a dying webnovel watches it become reality, and he's the only one who knows how the story ends. It's about stories, friendship, and what you'd sacrifice to keep a narrative alive. One of the best things I've read, full stop.",
"image": "/images/reading/omniscient-reader-s-viewpoint.jpg"
},
{
"title": "Overgeared",
"category": "Webnovels",
"status": "Complete",
"favorite": true,
"image": "/images/reading/overgeared.jpg",
"blurb": "Started rough and became an obsession. Grid is the most frustratingly lovable lead; watching the 'worst legendary class' snowball into something absurd never gets old. The crafting and base-building scratch my optimization itch hard and limitless blacksmith is my kind of power fantasy."
},
{
"title": "Desolate Era (I Eat Tomatoes)",
"category": "Webnovels",
"status": "Complete",
"favorite": true,
"image": "/images/reading/desolate-era.jpg",
"blurb": "Classic xianxia cultivation done right. Ji Ning's rebirth into a brutal cultivation world hooked me immediately. The power progression actually feels earned, and the world just keeps opening up."
},
{
"title": "Lord Xue Ying (I Eat Tomatoes)",
"category": "Webnovels",
"status": "Complete",
"note": "Same author as Desolate Era. Spear-wielding prodigy in a cultivation world."
},
{
"title": "Stellar Transformation (I Eat Tomatoes)",
"category": "Webnovels",
"status": "Complete",
"note": "Same universe as Coiling Dragon. Cultivation through stellar tiers."
},
{
"title": "Coiling Dragon (I Eat Tomatoes)",
"category": "Webnovels",
"status": "Complete",
"note": "The breakout hit. Linley's rise through a cultivation world. Where I started with I Eat Tomatoes."
}
]
+16
View File
@@ -0,0 +1,16 @@
{
"ordersOpen": false,
"lastUpdated": "2026-08-06",
"turnaround": "Estimated turnaround: ~2 weeks once a list is confirmed.",
"maxNote": "I take a limited number of orders at a time so each one gets full attention. Slots reopen as current orders finish.",
"slots": {
"cards": {
"open": 1,
"total": 3
},
"deckBoxes": {
"open": 2,
"total": 3
}
}
}
+39
View File
@@ -0,0 +1,39 @@
/**
* store-availability.ts
* ---------------------------------------------------------------------------
* Typed reader for store-availability.json. Both the storefront pages and the
* /api/order endpoint read through here, so the hard order gate (ordersOpen)
* is enforced from a single source of truth.
*
* To open orders: edit `./store-availability.json` and set `"ordersOpen": true`,
* then (optionally) bump the `slots.*.open` counts and `lastUpdated`.
*/
import raw from './store-availability.json';
export interface SlotStatus {
open: number;
total: number;
}
export interface StoreAvailability {
/** Master gate. false => order form hidden + /api/order returns 403. */
ordersOpen: boolean;
/** Free-form date string shown as "Updated <date>". */
lastUpdated: string;
/** Turnaround estimate shown on storefront + order page. */
turnaround: string;
/** Note explaining the limited-capacity model. */
maxNote: string;
slots: {
cards: SlotStatus;
deckBoxes: SlotStatus;
};
}
/** The parsed availability, asserted to the shape above. */
export const storeAvailability = raw as StoreAvailability;
/** True when at least one slot is open in a category. */
export function categoryOpen(slot: SlotStatus): boolean {
return slot.open > 0;
}
+299
View File
@@ -0,0 +1,299 @@
/**
* store-products.ts
* ---------------------------------------------------------------------------
* Typed product + pricing data for the store. This is version-controlled source
* (not the user-editable availability file) so the storefront and pricing stay
* in sync with the components that render them.
*
* - Availability (orders open/closed, slot counts, turnaround) lives in
* `./store-availability.json`, which is the simple file Greg edits.
* - Product specs and pricing tiers live HERE.
*
* Prices and concrete specs are deliberately left as [Greg to fill] placeholders
* so real numbers can be dropped in without touching component code.
*/
export interface SpecRow {
/** Label, e.g. "Size". */
label: string;
/** Value, e.g. "63 x 88 mm (standard MTG)". */
value: string;
}
/**
* A single example image for a product. Rendered in the product-page carousel;
* `label` is shown as a caption on/under the image.
*/
export interface ProductImage {
/** Public path, e.g. "/images/proxies.jpg". */
src: string;
/** Alt text for accessibility. */
alt: string;
/** Caption shown on the slide, e.g. "Front finish \u2014 matte". */
label: string;
}
export interface PriceTier {
/** Quantity band label, e.g. "1-9 cards". */
band: string;
/** Price for that band. Placeholder until Greg sets real prices. */
price: string;
/** Optional note, e.g. "per card". */
note?: string;
}
/**
* A selectable filament/print color for a printed product. Rendered as a
* swatch on the product page and offered in the order form. Flip `inStock` to
* false when a color runs out — it shows as "Out of stock" and is removed from
* the order-form color list.
*/
export interface ColorOption {
/** Display name, e.g. "Midnight Black". */
name: string;
/** Hex swatch color shown in the grid + form, e.g. "#1b1730". */
hex: string;
/** Whether the color is currently available to order. */
inStock: boolean;
}
export interface Product {
/** mdi icon used as the decorative mark. */
icon: string;
/** Product name. */
title: string;
/** One-line summary shown on cards + the storefront. */
summary: string;
/**
* Which availability slot category this product belongs to. Used so the
* product page can show the matching SlotMeter at the top.
*/
slotKey: 'cards' | 'deckBoxes';
/**
* Example images for the product-page carousel, in display order. Each slide
* shows the image plus its `label` caption. Add/remove entries here to
* manage the carousel from the server side.
*/
images: ProductImage[];
/** Detailed spec list rendered as a definition list. */
specs: SpecRow[];
/** Pricing tiers rendered as a pricing table. */
pricing: PriceTier[];
/**
* Optional selectable print colors (filament). Rendered as a swatch grid on
* the product page and offered in the order form. Add/remove entries here to
* manage available colors; toggle `inStock` per color. Omit for products that
* have no color choice (e.g. proxy cards).
*/
colors?: ColorOption[];
}
/**
* Proxy MTG card product line. Sizes/finishes are standard for the format; the
* exact cardstock weights and finish names are Greg's to fill.
*/
export const cardProduct: Product = {
icon: 'cards-playing',
title: 'Proxy MTG Cards',
summary:
'High-quality printed proxy cards for casual play, sized to match real Magic cards and clearly marked as proxies intended for use sleeved.',
slotKey: 'cards',
images: [
{
src: '/images/store/cards/proxies.jpg',
alt: 'Example printed proxy MTG cards, front faces',
label: 'Card fronts \u2014 full-color print',
},{
src: '/images/store/cards/proxies2.jpg',
alt: 'Example printed foil proxy MTG cards, front faces',
label: 'Card fronts \u2014 foil print',
},{
src: '/images/store/cards/foil_cloud_measured.jpg',
alt: 'Example printed foil cloud proxy card with measurements',
label: 'Rainbow foil card front with measurements',
},{
src: '/images/store/cards/disclosure.jpg',
alt: 'Example printed deck disclosure card',
label: 'Deck disclosure card',
},{
src: '/images/store/cards/sleeved.jpg',
alt: 'Example printed proxy cards in sleeves',
label: 'Proxy cards in sleeves',
},{
src: '/images/store/cards/ravenous_duo.jpg',
alt: 'Example printed Ravenous TRex foil and non-foil proxy cards',
label: 'Ravenous TRex foil and non-foil proxy cards',
},{
src: '/images/store/cards/ghalta_duo.jpg',
alt: 'Example printed Ghalta foil and non-foil proxy cards',
label: 'Ghalta foil and non-foil proxy cards',
},
],
specs: [
{ label: 'Size', value: '63 x 88 mm (standard MTG card size)' },
{ label: 'Thickness', value: '0.37mm laminated photo cardstock' },
{ label: 'Back', value: 'Solid white back (clearly not tournament-legal)' },
{
label: 'Finishes',
value: 'Default matte finish, available in glossy on request (Foil cards are always glossy finish)',
},
{
label: 'Double-sided cards',
value: 'Printed as two separate cards and count as 2 card slots',
},
{ label: 'Art', value: 'Official card art only. No offensive art (custom cards usable if fully provided)' },
],
pricing: [
{ band: 'Individual cards', price: '$1.00', note: 'per card' },
{ band: 'Individual foil cards', price: '$2.00', note: 'per card' },
{ band: '36 card set', price: '$20.00', note: 'per set of cards' },
{ band: '60 card deck', price: '$30.00', note: 'per set of cards' },
{ band: '100 card deck', price: '$40.00', note: 'per set of cards' },
{ band: 'Deck Disclosure Card', price: '$2.00', note: 'per card' },
],
};
/**
* 3D-printed deck box + counters product line.
*/
export const deckBoxProduct: Product = {
icon: 'printer-3d-nozzle',
title: '3D-Printed Deck Boxes & Counters',
summary:
'Custom 3D-printed deck boxes, life counters, and tokens to store and track your games.',
slotKey: 'deckBoxes',
images: [
{
src: '/images/deckboxes.jpg',
alt: 'Example 3D-printed deck boxes',
label: 'Deck boxes - Marble, Nebula, and Sparkle Black with Metallic Gold Accents',
},
{
src: '/images/store/deckboxes/ff_front.jpg',
alt: 'Deck Box front view - Fantastic Four',
label: 'Deck Box front view - Fantastic Four - Matte Blue with Metallic Black Accents',
},
{
src: '/images/store/deckboxes/ff_side.jpg',
alt: 'Deck Box side view - Fantastic Four',
label: 'Deck Box side view - Fantastic Four - Matte Blue with Metallic Black Accents',
},
{
src: '/images/store/deckboxes/ff_back.jpg',
alt: 'Deck Box back view - Fantastic Four',
label: 'Deck Box back view - Fantastic Four - Matte Blue with Metallic Black Accents',
},
{
src: '/images/store/deckboxes/ff_open.jpg',
alt: 'Deck Box open view - Fantastic Four',
label: 'Deck Box open view - Fantastic Four - Matte Blue with Metallic Black Accents',
}
],
specs: [
{ label: 'Capacity', value: '100 double-sleeved card bay / 82mm depth and tray 67 mm x 76 mm x 24 mm (width x depth x height)' },
{ label: 'Material', value: 'PLA with 2x4 magnets and top-loader protection pane' },
{ label: 'Finish', value: 'as-printed' },
{ label: 'Sizing', value: '86 mm x 109 mm x 143 mm (width x depth x height)' },
{ label: 'Customization', value: 'Color selection from available filament. Default pages uses Matte Bone White. Default strap uses Matte Light Leather Brown.' },
],
pricing: [
{ band: 'Single deck box', price: '$30.00', note: 'per print' },
{ band: 'Deck box + counter set', price: 'Coming Soon', note: 'per set' },
{ band: 'Counter / token only', price: 'Coming Soon', note: 'per print' },
],
/**
* Available filament colors. Toggle `inStock` to reflect what's loaded on
* the printer; out-of-stock colors show a label and drop out of the order
* form. Add a new { name, hex, inStock } entry to offer a new color.
*/
colors: [
{ name: 'Charcoal Matte Black', hex: '#1d1d1d', inStock: true },
{ name: 'Sparkle Black', hex: '#242424', inStock: true },
{ name: 'Metallic Black', hex: '#242424', inStock: true },
{ name: 'Metallic Gold', hex: '#96793b', inStock: true },
{ name: 'Metallic Blue', hex: '#21356b', inStock: true },
{ name: 'Metallic Silver', hex: '#b1b1b1', inStock: true },
{ name: 'Silver', hex: '#d8d8d8', inStock: true },
{ name: 'Copper', hex: '#61462d', inStock: true },
{ name: 'Orange', hex: '#f77b28', inStock: true },
{ name: 'Shiny Red', hex: '#af0505', inStock: true },
{ name: 'Glossy Red', hex: '#cc2a17', inStock: true },
{ name: 'Scarlet', hex: '#6e140b', inStock: true },
{ name: 'Matte Bone White', hex: '#f4f1e8', inStock: true },
{ name: 'Matte Light Leather Brown', hex: '#bea072', inStock: true },
{ name: 'Basic White', hex: '#ffffff', inStock: true },
{ name: 'Basic Cyan', hex: '#2ba8ce', inStock: true },
{ name: 'Matte Blue', hex: '#365ecc', inStock: true },
{ name: 'Royal Blue', hex: '#2247ac', inStock: true },
{ name: 'Blue Grey', hex: '#46535f', inStock: true },
{ name: 'Purple', hex: '#3a0961', inStock: true },
{ name: 'Marble', hex: '#b9b9b9', inStock: true },
{ name: 'Coffee Brown', hex: '#36241c', inStock: true },
{ name: 'Sunflower Yellow', hex: '#e6e332', inStock: true },
{ name: 'Basic Green', hex: '#24da00', inStock: true },
{ name: 'Matte Leaf Green', hex: '#a6d19d', inStock: true },
{ name: 'Army Green', hex: '#3e611d', inStock: true },
{ name: 'Sparkle Green', hex: '#0b662e', inStock: true },
{ name: 'Sparkle Nebula', hex: '#104568', inStock: true },
],
};
/** Both product lines, for storefront iteration. */
export const products = [cardProduct, deckBoxProduct];
/**
* The store requirements / rules. Rendered on the storefront and repeated on
* the order page; the order form requires an explicit acknowledgment of these.
* Wording mirrors what Greg asked to state clearly.
*/
export interface Requirement {
/** mdi icon: 'check' for a rule, 'alert' for a hard limit/warning. */
icon: 'check-decagram' | 'alert' | 'close-circle' | 'information';
/** Short title. */
title: string;
/** One-to-two sentence explanation. */
body: string;
}
export const requirements: Requirement[] = [
{
icon: 'information',
title: 'Card list is final',
body: 'You must provide a complete card list up front. Once the list is received, the cards in that order cannot be changed.',
},
{
icon: 'alert',
title: 'Double-sided cards = 2 slots',
body: 'Double-sided cards are printed as two separate cards (front and back) and count as 2 card slots in your order.',
},
{
icon: 'close-circle',
title: 'All sales are final',
body: 'Payment is final. Because each order is printed to spec, refunds and exchanges are not available.',
},
{
icon: 'alert',
title: 'These are proxies, not counterfeits',
body: 'All cards are clearly marked as proxies with a solid white back. They are not tournament-legal and are not made to pass as genuine.',
},
{
icon: 'close-circle',
title: 'No affiliation with Wizards of the Coast',
body: 'I am not associated with Wizards of the Coast or any game company. Magic: The Gathering and all related properties belong to their respective owners.',
},
{
icon: 'close-circle',
title: 'No counterfeiting',
body: 'I will not counterfeit cards. Every card is produced as a clearly identifiable proxy for casual play.',
},
{
icon: 'alert',
title: 'No offensive art',
body: 'I will not print custom art or any cards I find to be offensive. Only official card art is used unless card art fully provided by the customer.',
},
{
icon: 'information',
title: 'Limited capacity',
body: 'I can only take a limited number of orders at a time. Slots are shown live on the order page and reopen as orders finish.',
},
];