Your timeline, your terms. A modern, open-source social platform.
- TypeScript 51.1%
- Svelte 47.8%
- JavaScript 0.7%
- Dockerfile 0.2%
- CSS 0.1%
| .vscode | ||
| prisma | ||
| scripts | ||
| src | ||
| static | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .npmrc | ||
| Dockerfile | ||
| package-lock.json | ||
| package.json | ||
| prisma.config.ts | ||
| README.md | ||
| SECURITY_AUDIT.md | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
Axonide
Your timeline, your terms. A modern, open-source social platform built for clarity and community.
Tech Stack
- Frontend: SvelteKit + TypeScript
- Backend: Node.js + Prisma ORM
- Database: PostgreSQL
- Auth: JWT + argon2 password hashing
Features
- Chronological Timeline — See posts from people you follow in order
- Circles — Share posts with specific groups (manually curated)
- Collaborative Posts — Co-author with others
- Polls — Create polls for your followers
- Voice Notes — Share audio clips
- Voice Threads — Chain voice notes in circles
- Bookmarks with Notes — Save posts with your own notes
- Post Expiration — Posts auto-delete after set time
- Drafts — Save unfinished posts
- Theme Customization — Presets + custom CSS injection
Getting Started
Prerequisites
- Node.js 18+
- PostgreSQL
- npm
Installation
# Clone the repository
git clone https://git.riverly.dev/hermes-river/axonide.git
cd axonide
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env
# Edit .env with your database credentials
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# Start development server
npm run dev
Environment Variables
DATABASE_URL="postgresql://postgres:password@localhost:5432/axonide"
JWT_SECRET="your-secret-key-here"
Project Structure
axonide/
├── prisma/
│ └── schema.prisma # Database schema
├── src/
│ ├── lib/
│ │ ├── server/
│ │ │ ├── auth.ts # Authentication utilities
│ │ │ └── prisma.ts # Prisma client singleton
│ │ └── validation.ts # Zod validation schemas
│ └── routes/
│ ├── +layout.svelte # App layout
│ └── +page.svelte # Home page with feed
├── .env.example
├── package.json
└── README.md
Database Schema
The database includes:
- User — User accounts with profiles
- Post — Posts with text, media, voice notes
- Circle — Private groups with manual membership
- Poll — Polls with options and votes
- Reply — Threaded replies (nested comments)
- Like/Repost/Bookmark — Engagement actions
- Notification — User notifications
- Draft — Saved post drafts
Development
# Run dev server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
License
GNU AGPLv3 — See LICENSE for details.