Lifestory
A life-journal and an NFT world, running in the same tab.
- Vue.js
- Python / FastAPI
- PostgreSQL (self-hosted)
- Docker
Overview
Lifestory set out to blend two very different ideas into one platform: a personal life-journal, and a Web3 world where users could own a piece of it. On the journaling side, users organize memories into living categories — travel, fitness, food, art, career — each one a timeline of moments rather than a folder of files. On the Web3 side, that same identity extends into ownership: users mint, hold, and trade "planets" as NFTs, stake them for rewards, and manage everything through a token economy built around LIFC.
We built the full stack for Lifestory — Vue.js frontend and FastAPI backend. That meant the frontend had to hold two different mental models at once: a calm, personal archive in one tab, and a live trading dashboard with balances, charts, and countdown timers in the next — without either one feeling like it belonged to a different product.
- Engagement
- Frontend & Backend
- Timeline
- ~5 months
- Status
- In production
What we built
Frontend and backend, end to end
Frontend
The full authenticated app: email/Google/MetaMask/WalletConnect login, the dashboard (LIFC balance, claimable rewards, live ETH↔LIFC swap, price chart), the NFT marketplace, staking flows (planet selection, 1/2/3-year term selection, projected returns), a vesting schedule view, and the Timeline module for personal content — built in Vue.js.
Backend
The API layer powering account state, token balances, staking/vesting logic, and the data behind the timeline and marketplace views — FastAPI, containerized with Docker for consistent deployment, backed by a self-hosted PostgreSQL database running on Lifestory's own infrastructure. We built and launched the platform over roughly five months, from initial development through to public release.
Feature gallery
Screens from the shipped product
Sign in, everywhere
1 / 3
Dashboard
1 / 2
Marketplace
1 / 2
Staking & vesting
1 / 3
My Timeline
1 / 2
Profile
1 / 2
The harder parts
Where the engineering really lived
Staking and vesting aren't simple toggles
A staked planet has a term, an accrual rate, a claim window, and a countdown — all of which need to stay accurate whether the user is looking at the Dashboard, My Safe, or My NFT's tab. Getting that state to agree everywhere, all the time, was most of the real engineering work.
Two products in one shell
The journaling side (Timeline) and the trading side (Shop, Staking, Vesting) have opposite pacing — one is slow and personal, the other is live and numeric. The UI had to switch registers cleanly between them without feeling bolted together.
Wallet-based auth alongside conventional login
Supporting email/password and MetaMask/WalletConnect/Google in the same flow, with the same session model downstream, took care to get right.
Outcome
Launched · In productionLifestory — the platform we built — shipped and went live, running the wallet-connected NFT marketplace, staking system, and personal timeline in production.
Want something like this built? Get in touch