Locked Initial release
Added
Core forum
- Flat-file architecture — all content stored as JSON files, no database required
- Projects as top-level containers, each with five boards: dev log, general, bugs, features, and releases
- Thread creation with title, body, optional tags, and status
- Threaded post replies with full Markdown support (via
marked) - Post editing for authors and the owner
- Post and thread deletion (owner only)
- Pin threads to keep them at the top of the board
- Lock threads to prevent further replies
- Thread status tracking — bugs: open / confirmed / fixed / won't fix · features: open / planned / shipped
- Board stats (thread count, post count, last post time and author) auto-updated on every write
Users and auth
- Registration and login with bcrypt-hashed passwords
- Session-based auth via
express-session - First registered user automatically becomes the owner
- Role system:
owner(full admin) andmember - User post count tracked and incremented on each post
User profiles
- Profile pages at
/users/:username - Avatar upload (JPG, PNG, GIF, WebP — max 2MB) via
multer - Bio field (max 300 characters)
- Recent activity feed showing last 10 posts across all projects
Search
- Full-text search across all thread titles and post bodies
- Search bar in the site header on every page
- Dedicated search page at
/search - Results sorted by most recent activity
RSS feeds
- Site-wide feed at
/feed— 20 most recent posts across all projects - Per-project feed at
/feed/:projectId - Auto-discovery
<link>tag in every page<head>
Projects
- Create, edit, and manage projects (owner only)
- Project status: active, paused, archived
- Tag support with comma-separated input
- URL slugs auto-generated from project title via
slugify - nanoid (length 10) used for thread folder names — URL-safe, collision-resistant
Design
- Dark terminal aesthetic with IBM Plex Mono and Inter
- Fully responsive down to mobile
prefers-reduced-motionrespected- Status dot indicators on thread lists
- Breadcrumb navigation on all sub-pages
Infrastructure
dotenvfor environment config —PORTandSESSION_SECRETvia.envfs-extrafor safe atomic JSON reads/writes- Data directory auto-created on first run
.gitignoreset up —node_modules,.env, andpublic/uploadsexcluded
Dependencies
| Package | Version | Purpose |
|---|---|---|
express |
^5.2.1 | HTTP server and routing |
ejs |
^6.0.1 | Server-side templating |
express-session |
^1.19.0 | Session management |
bcrypt |
^6.0.0 | Password hashing |
nanoid |
^3.3.16 | Thread ID generation |
marked |
^18.0.7 | Markdown rendering |
fs-extra |
^11.3.6 | Enhanced file system helpers |
slugify |
^1.6.9 | Project URL slug generation |
multer |
^2.2.0 | Avatar file uploads |
dotenv |
^17.4.2 | Environment variable loading |