Skip to main content

Welcome to MyDiary

MyDiary is a modern social diary application that combines the intimacy of personal journaling with the connectivity of social sharing. Built with Laravel and React, it empowers users to capture their daily moments, share them with loved ones, and build meaningful connections through shared experiences.

Quick start

Get started with MyDiary in minutes - from account creation to your first diary entry

Installation guide

Set up the development environment and deploy your own MyDiary instance

API reference

Explore the complete API documentation for developers

Development

Learn about the architecture and contribute to MyDiary

Key features

Privacy-focused diary entries

Create diary entries with flexible visibility controls. Each entry supports:
  • Public entries - Visible to all your friends
  • Private entries - Only visible to you
  • Shared entries - Choose specific friends to share with
  • Image attachments - Add photos to capture visual memories
$entry = new Entry();
$entry->body = $request->body;
$entry->visibility = $request->visibilityValue; // 'public', 'private', or 'friends'
$entry->creator_id = Auth::user()->id;
$entry->save();

Social connections

Build your network through a comprehensive friend system:
  • Send and receive friend requests
  • Accept or reject incoming requests
  • View friends’ public diary entries
  • Search for users by name or email
  • Manage your friend list
Friend requests support pending, accepted, and rejected states with timestamps for full audit trails.

Rich media support

Enhance your diary entries with images:
  • Upload photos with each entry
  • Automatic image storage and retrieval
  • Update or remove images from existing entries
  • Secure file handling through Laravel’s storage system

Interactive engagement

Engage with your friends’ content:
  • Like diary entries to show appreciation
  • View who liked your entries
  • Real-time feed of friends’ public entries
  • Chronological timeline of shared memories

Technology stack

MyDiary is built with modern web technologies:
  • Backend: Laravel 12 with PHP 8.2+
  • Frontend: React 19 with Inertia.js
  • Styling: Tailwind CSS 4.0
  • Database: MySQL with Eloquent ORM
  • Build Tool: Vite 6
  • Icons: HugeIcons React library
The application uses Inertia.js to create a seamless single-page application experience without building a separate API.

Database architecture

MyDiary uses a relational database structure with the following core tables:
TablePurpose
usersUser accounts and authentication
entriesDiary entries with body, visibility, and creator
friend_requestsFriend connections with status tracking
entry_usersPivot table for shared entries
image_entriesImage attachments for diary entries
image_usersProfile images for users
likesUser engagement on entries

Get started

Ready to begin? Choose your path:

I'm a user

Start creating diary entries and connecting with friends

I'm a developer

Set up the development environment and explore the codebase

Build docs developers (and LLMs) love