tinyblog is a lightweight, open-source microblogging platform that allows users to share short posts, follow other users, and engage in simple social interactions. It's designed to be easy to set up, lightweight, and accessible for developers and users alike.
- π Microblogging: Share short posts with your followers.
- π« User Profiles: Create profiles, follow other users, and grow your network.
- π¬ Real-Time Interaction: Users can like, comment, and interact with posts.
- π Authentication: User sign-up and login functionality.
- π» Responsive Design: Optimized for mobile and desktop users.
At tinyblog, we are committed to transparency, privacy, and creating a feed driven by genuine social connections. Our core principles are:
- π No Algorithm-Driven Feeds: Users will only see posts from the accounts they follow, displayed in chronological order.
- π₯ Follower-Driven Experience: All content is based on who you follow, with no content promotions or algorithmic suggestions.
- π’ Ads, but No Tracking: We will show ads to support the platform, but no user tracking or behavioral data collection will be involved.
- π« No Personalized Ads: Ads are non-intrusive and not tailored based on user profiles or activity.
- π Transparency: Our platform will always operate with full transparency about how content and ads are displayed.
- ποΈ Historical Integrity: Feed data will always be chronological and historically accurateβno curated or manipulated posts.
- π Data Privacy: User data will not be sold or shared with third parties. You control your data.
- π± Community-Driven Growth: Organic growth will be encouraged through genuine user interactions, not artificial engagement techniques.
While decentralized networks have their appeal, we believe they pose significant challenges for the average user. Here are the key disadvantages:
- π οΈ Complex Setup: Users must find and join a node, which requires technical knowledge.
- π Difficult to Discover: Itβs hard for users to discover the right communities or instances without a centralized directory.
- ποΈ Trust Issues with Nodes: Users need to place trust in smaller node providers, which may not be reliable or secure.
- βοΈ Fragmented Experience: Different nodes can have different rules, moderation standards, and features, leading to inconsistent user experiences.
- π Scaling Problems: Decentralized networks struggle with scaling, which can result in slower performance or node overloads.
- π€ Interoperability Challenges: Communication between different instances or networks is not always smooth, leading to isolation or incomplete connectivity.
To see tinyblog in action, check out the live demo here.
This repository contains two projects;
app
: React application for frontend with TypeScript, Vite and Tailwind.api
: Node.js API application for backend with Axe API
The backend uses MySQL and Redis.
Frontend application
$ cd app
$ npm install
$ npm run dev
You should have MySQL and Redis instance on your machine. Also, you should provide the correct information for the .env
file.
NODE_ENV=development
APP_PORT=3005
DB_CLIENT=mysql2
DB_DATABASE=tinyblog
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=
LOG_LEVEL=warn
LOG_TRANSPORT=pino-pretty
DOCS=true
APP_SECRET=12345678
DOMAIN=http://localhost:5173
REDIS_URL=redis://default@localhost:6379
TURNSTILE_SITEKEY=1x0000000000000000000000000000000AA
After the .env configuration you can run your application.
$ cd api
$ npm install
$ npm run dev
We have an exciting vision for tinyblog, and weβre working hard to bring new features and improvements to the platform. Below is a rough roadmap of whatβs to come:
- User Authentication (Sign-up, Login, Logout)
- Basic User Profiles
- Create, Edit, Delete Posts (up to 240 characters)
- Follow/Unfollow Users
- View Feed with posts from followed users
- Like and Comment on posts
- Private Messaging between users
- Hashtags and tagging system for posts
- Link system on posts
- User Analytics (Followers count, post engagement stats)
- Bot protection (Cloudflare turnstile)
- Rate limiting
- Progressive Web App (PWA) support
- Notifications for follows, likes, and comments
- User Settings (Update Profile, Change Password)
- Search functionality for posts and users
- Advanced moderation tools (content flagging, spam detection)
- Multi-language support
Made with contrib.rocks.