A living document of my journey building and rebuilding my personal corner of the internet
This repository contains multiple iterations of my digital garden โ from early experiments to the current production version. Each version taught me something new about web development, design, and what it means to maintain a personal site.
The latest iteration is in the /copresence folder. It's a Next.js 16 app featuring:
- Real-time cursor visualization (PartyKit WebSockets)
- RAG-powered AI assistant (talk to my content!)
- Semantic network graph (D3.js visualization of connections)
- Projects, writings, library, goals, resume
- Spotify integration (top track of the week)
- Like button (Firebase-powered)
Live: tarat.space
โ See full README for setup, architecture, and features
The "copresence" version โ focused on connection and intelligence.
Key Features:
- Real-time visitor presence (heat-map effect)
- RAG AI trained on all my content
- Semantic network visualization
- Client-side embedding search (no backend!)
- Paginated projects & writings
- Tag-based filtering
Tech: Next.js 16, TailwindCSS 4, PartyKit, @xenova/transformers, D3.js, Firebase
Philosophy: "Show presence. Enable discovery. Let people talk to my work."
Focused on performance and minimalism.
Learnings:
- PPR (Partial Pre-Rendering) in Next.js
- Streaming React components
- Optimizing for Core Web Vitals
- Markdown rendering pipelines
The "my garden" version โ experimenting with structure.
Learnings:
- MDX for rich content
- Dynamic routing patterns
- Custom design systems
- Content organization at scale
The first version โ learning the basics.
Learnings:
- Next.js fundamentals
- API routes
- Static generation vs. SSR
- Deploying to Vercel
A Tanstack Start experiment โ trying new frameworks.
Learnings:
- File-based routing alternatives
- Client-side state management
- Different meta-framework philosophies
| Version | Framework | Styling | Deployment | Notable Features |
|---|---|---|---|---|
| v1 | Next.js 13 | CSS Modules | Vercel | Basic blog |
| v2 | Next.js 14 | TailwindCSS 3 | Vercel | MDX, Custom fonts |
| v3 | Next.js 14 | TailwindCSS 3 | Vercel | PPR, Performance focus |
| v4 (Current) | Next.js 16 | TailwindCSS 4 | Vercel | RAG AI, Real-time features |
- Markdown-based content โ Easy to write, version control, and migrate
- Static generation โ Fast, cheap, and simple to host
- Incremental complexity โ Start simple, add features as needed
- Local-first AI โ Client-side embeddings remove infrastructure overhead
- Start with a design system โ Consistency is hard to retrofit
- Plan content structure early โ Moving files between
/projectsand/writingsis tedious - Embrace edge functions โ Could've used them earlier for API routes
- Document as you go โ This README should've existed from day one
tarats-garden/
โโโ copresence/ # Current version (v4)
โ โโโ src/
โ โโโ projects/
โ โโโ writings/
โ โโโ public/
โ โโโ README.md
โโโ v3/
โ โโโ faster-digital-garden/
โโโ v2/
โ โโโ my-garden/
โโโ start-basic/ # Tanstack Start experiment
โโโ README.md # This file
cd copresence
npm install
npm run devSee copresence/README.md for full setup instructions.
Each version has its own package.json and can be run independently:
cd v2/my-garden # or v3/faster-digital-garden
npm install
npm run dev"A garden, not a blog. A conversation, not a broadcast."
Principles:
- Show, don't just tell (real-time presence, semantic networks)
- Make content discoverable (AI search, graph visualization, tags)
- Optimize for browsing, not just reading
- Use AI to enhance, not replace, human connection
- v1: "Just ship something"
- v2: "Make it look good"
- v3: "Make it fast"
- v4: "Make it interactive and intelligent"
Build logs and experiments โ things I've made.
Examples:
- Lumi (AI-powered todo app)
- Tarat AI (RAG for digital garden)
- Collaborative RL Agents
- Tiny model experiments
Essays, thoughts, and explorations.
Examples:
- Technical deep-dives
- Reflections on building
- Trip reports
- Career thoughts
Books I've read with ratings and status.
Life goals and bucket list.
Things I'm considering for v5:
- Bi-directional links (Obsidian-style)
- Version control UI (show edit history inline)
- Comments (maybe? still thinking about this)
- Newsletter integration (Substack/Buttondown)
- ActivityPub support (Fediverse integration)
- Local LLM option (replace Groq with Ollama)
- Mobile app (React Native? Flutter?)
Because iteration is how you learn.
Each version taught me something:
- v1 taught me Next.js basics
- v2 taught me content architecture
- v3 taught me performance optimization
- v4 taught me AI/ML integration and real-time systems
I could've kept "perfecting" v1, but rebuilding forces you to question assumptions and try new things.
MIT License
Feel free to fork, learn from, or use as inspiration for your own digital garden.
If you do build something based on this, I'd love to see it! Tag me @tarat_211 on X.
- Website: tarat.space
- Twitter/X: @tarat_211
- GitHub: @TarunTomar122
- LinkedIn: Tarun Tomar
Last Updated: December 2024
This README is a living document. It grows as the garden grows.